diff --git a/Gruntfile.js b/Gruntfile.js index c0da0e90cf983c21adc836c401f5ecebf408651a..dbdca189e092fa0511bd2f2ca710b34cf7cfb2b5 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -66,14 +66,6 @@ module.exports = function (grunt) { 'less:luma', 'less:backend' ], - /** - * Styles for backend theme - */ - backend: [ - 'less:backend', - 'replace:escapeCalc', - 'less:override' - ], /** * Documentation */ diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml index 86e2a73f94da5de9cfb192dc31dedd9ce1a70639..cfe907830dbc3ef629b28d5ae790d40024836cb8 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml +++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml @@ -12,7 +12,7 @@ * @see \Magento\AdminNotification\Block\Window */ ?> -<div data-mage-init='{"modalPopup": {}}' class="fade critical-notification admin__scope"> +<div data-mage-init='{"modalPopup": {}}' class="fade critical-notification"> <div class="popup popup-<?php echo preg_replace('#[^a-z0-9]+#', '-', strtolower($block->getSeverityText())) ?>"> <div class="popup-inner"> <div class="popup-header"> diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages.phtml index 7526b9ae78842382b13b2986bfbdcca0800e582c..784e229f9a57f1f49ea4d29a244e3a4e97d2c551 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages.phtml +++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages.phtml @@ -10,7 +10,7 @@ <?php /** @var $block \Magento\AdminNotification\Block\System\Messages */ ?> <?php $lastCritical = $block->getLastCritical();?> -<div id="system_messages" class="message-system<?php if ($lastCritical): ?> message-system-unread<?php endif; ?> admin__scope"> +<div id="system_messages" class="message-system<?php if ($lastCritical): ?> message-system-unread<?php endif; ?>"> <div class="message-system-inner"> <?php if ($lastCritical): ?> <ul class="message-system-list"> 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 4bb035acbb5eec6c130ed20c2549d5710288831f..c0818bb7a81f90528bcc6d8093d4010b8e274f1b 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" class="admin__scope" title="<?php echo $block->escapeHtml($block->getPopupTitle()); ?>"> +<div id="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 echo $block->getItemClass($message);?>"> 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 9dcc83c737acfe83c6c7c32d84b4eb572da44a91..95a228c6fa99c671f144664535cc076d6923ff4b 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js +++ b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js @@ -20,9 +20,7 @@ define([ }, open: function (severity) { - var superMethod = $.proxy(this._super, this), - listTemplate, - fullTemplate; + var superMethod = $.proxy(this._super, this); $.ajax({ url: this.options.ajaxUrl, @@ -38,12 +36,12 @@ define([ }); tmpl = $(tmpl); - listTemplate = $('<ul class="message-system-list"></ul>').append(tmpl); - fullTemplate = $('<div class="admin__scope"></div>').append(listTemplate); - this.element - .html(fullTemplate) - .trigger('contentUpdated'); + this.element.html( + $('<ul />', { + 'class': 'message-system-list' + }).append(tmpl) + ).trigger('contentUpdated'); superMethod(); }, this)); diff --git a/app/code/Magento/Backend/Block/Menu.php b/app/code/Magento/Backend/Block/Menu.php index a8d6e31c13dd8cd54336a901599577625cf32b2a..6eaed8e5b16344608d8b4672b933ca2b013c284d 100644 --- a/app/code/Magento/Backend/Block/Menu.php +++ b/app/code/Magento/Backend/Block/Menu.php @@ -191,7 +191,7 @@ class Menu extends \Magento\Backend\Block\Template $output = ($this->_isItemActive( $menuItem, $level - ) ? '_active' : '') . + ) ? '_current _active' : '') . ' ' . ($menuItem->hasChildren() ? 'parent' : '') . ' ' . diff --git a/app/code/Magento/Backend/Block/System/Design/Edit/Tab/General.php b/app/code/Magento/Backend/Block/System/Design/Edit/Tab/General.php index ccd84b6474c572c64e21c0d04a2a840fef989b57..8faf54ba10bceb25a20fdd81e85c924bc1f72f84 100644 --- a/app/code/Magento/Backend/Block/System/Design/Edit/Tab/General.php +++ b/app/code/Magento/Backend/Block/System/Design/Edit/Tab/General.php @@ -100,7 +100,6 @@ class General extends \Magento\Backend\Block\Widget\Form\Generic 'label' => __('Date From'), 'title' => __('Date From'), 'name' => 'date_from', - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'date_format' => $dateFormat //'required' => true ] @@ -112,7 +111,6 @@ class General extends \Magento\Backend\Block\Widget\Form\Generic 'label' => __('Date To'), 'title' => __('Date To'), 'name' => 'date_to', - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'date_format' => $dateFormat //'required' => true ] diff --git a/app/code/Magento/Backend/Block/Widget/Form.php b/app/code/Magento/Backend/Block/Widget/Form.php index ea31a1e977abc43380c65f169dba9f7575ceec67..7c3154c1ebcc8737ff5dd20b2c5754b9f25b1f31 100644 --- a/app/code/Magento/Backend/Block/Widget/Form.php +++ b/app/code/Magento/Backend/Block/Widget/Form.php @@ -226,7 +226,6 @@ class Form extends \Magento\Backend\Block\Widget $element->setCanBeEmpty(true); break; case 'date': - $element->setImage($this->getViewFileUrl('images/grid-cal.png')); $element->setDateFormat($this->_localeDate->getDateFormatWithLongYear()); break; case 'multiline': diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Date.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Date.php index f2def2a456fc56fd472e9a9d380057674be03327..9288cf5df470c94f2e56476e18c8152dab986d40 100644 --- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Date.php +++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Date.php @@ -95,10 +95,6 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt dateFormat: "' . $format . '", - buttonImage: "' . - $this->getViewFileUrl( - 'images/grid-cal.png' - ) . '", buttonText: "' . $this->escapeHtml(__('Date selector')) . '", from: { diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php index 3d2f0110dfc279e2cf8b6c04774db94d4f194cff..4d5255c93cd4187907d0873697444b7d2203af2f 100644 --- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php +++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php @@ -129,7 +129,6 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date dateFormat: "' . $format . '", timeFormat: "' . $timeFormat . '", showsTime: ' . ($this->getColumn()->getFilterTime() ? 'true' : 'false') . ', - buttonImage: "' . $this->getViewFileUrl('images/grid-cal.png') . '", buttonText: "' . $this->escapeHtml(__('Date selector')) . '", from: { id: "' . $htmlId . '_from" diff --git a/app/code/Magento/Backend/Model/Auth.php b/app/code/Magento/Backend/Model/Auth.php index 427ac932f515ff4ee9f90d0f09ef72d0b2983fc6..a15f8e1526e0708180402d9d9c9295d2b28ce890 100644 --- a/app/code/Magento/Backend/Model/Auth.php +++ b/app/code/Magento/Backend/Model/Auth.php @@ -93,6 +93,7 @@ class Auth * If auth storage was not defined outside - returns default object of auth storage * * @return \Magento\Backend\Model\Auth\StorageInterface + * @codeCoverageIgnore */ public function getAuthStorage() { @@ -126,6 +127,7 @@ class Auth * Return credential storage object * * @return null|\Magento\Backend\Model\Auth\Credential\StorageInterface + * @codeCoverageIgnore */ public function getCredentialStorage() { diff --git a/app/code/Magento/Backend/Model/Auth/Session.php b/app/code/Magento/Backend/Model/Auth/Session.php index 6d0965dc1bbbefdb31093fceccc029e5c75d9d90..fec438f70c744d7b7cc9999d8574f3e4deef862c 100644 --- a/app/code/Magento/Backend/Model/Auth/Session.php +++ b/app/code/Magento/Backend/Model/Auth/Session.php @@ -253,6 +253,7 @@ class Session extends \Magento\Framework\Session\SessionManager implements \Mage * @param string $path * @return bool * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * @codeCoverageIgnore */ public function isValidForPath($path) { diff --git a/app/code/Magento/Backend/Model/Search/Order.php b/app/code/Magento/Backend/Model/Search/Order.php index f25de8f9881e108572b247ef3de2dbccaf4cd062..314b6a375ee686fcaa2a929aec29265ddafe4856 100644 --- a/app/code/Magento/Backend/Model/Search/Order.php +++ b/app/code/Magento/Backend/Model/Search/Order.php @@ -76,12 +76,7 @@ class Order extends \Magento\Framework\Object 'id' => 'order/1/' . $order->getId(), 'type' => __('Order'), 'name' => __('Order #%1', $order->getIncrementId()), - 'description' => $order->getBillingFirstname() . ' ' . $order->getBillingLastname(), - 'form_panel_title' => __( - 'Order #%1 (%2)', - $order->getIncrementId(), - $order->getBillingFirstname() . ' ' . $order->getBillingLastname() - ), + 'description' => $order->getFirstname() . ' ' . $order->getLastname(), 'url' => $this->_adminhtmlData->getUrl('sales/order/view', ['order_id' => $order->getId()]), ]; } diff --git a/app/code/Magento/Backend/Test/Unit/Model/Auth/SessionTest.php b/app/code/Magento/Backend/Test/Unit/Model/Auth/SessionTest.php index 68b5d21f85416fdd874179162000c651d3f91e5c..3e41177e72c0cae37f1f4324caa310d63e471e2c 100644 --- a/app/code/Magento/Backend/Test/Unit/Model/Auth/SessionTest.php +++ b/app/code/Magento/Backend/Test/Unit/Model/Auth/SessionTest.php @@ -38,6 +38,11 @@ class SessionTest extends \PHPUnit_Framework_TestCase */ protected $storage; + /** + * @var \Magento\Framework\Acl\Builder | \PHPUnit_Framework_MockObject_MockObject + */ + protected $aclBuilder; + /** * @var Session */ @@ -61,7 +66,13 @@ class SessionTest extends \PHPUnit_Framework_TestCase '', false ); - $this->storage = $this->getMock('Magento\Framework\Session\Storage', ['getUser'], [], '', false); + $this->storage = $this->getMock( + 'Magento\Framework\Session\Storage', + ['getUser', 'getAcl', 'setAcl'], + [], + '', + false + ); $this->sessionConfig = $this->getMock( 'Magento\Framework\Session\Config', ['getCookiePath', 'getCookieDomain', 'getCookieSecure', 'getCookieHttpOnly'], @@ -69,6 +80,9 @@ class SessionTest extends \PHPUnit_Framework_TestCase '', false ); + $this->aclBuilder = $this->getMockBuilder('Magento\Framework\Acl\Builder') + ->disableOriginalConstructor() + ->getMock(); $objectManager = new ObjectManager($this); $this->session = $objectManager->getObject( 'Magento\Backend\Model\Auth\Session', @@ -77,7 +91,8 @@ class SessionTest extends \PHPUnit_Framework_TestCase 'sessionConfig' => $this->sessionConfig, 'cookieManager' => $this->cookieManager, 'cookieMetadataFactory' => $this->cookieMetadataFactory, - 'storage' => $this->storage + 'storage' => $this->storage, + 'aclBuilder' => $this->aclBuilder ] ); } @@ -89,6 +104,40 @@ class SessionTest extends \PHPUnit_Framework_TestCase $this->session = null; } + /** + * @dataProvider refreshAclDataProvider + * @param $isUserPassedViaParams + */ + public function testRefreshAcl($isUserPassedViaParams) + { + $aclMock = $this->getMockBuilder('Magento\Framework\Acl')->disableOriginalConstructor()->getMock(); + $this->aclBuilder->expects($this->any())->method('getAcl')->willReturn($aclMock); + $userMock = $this->getMockBuilder('Magento\User\Model\User') + ->setMethods(['getReloadAclFlag', 'setReloadAclFlag', 'unsetData', 'save']) + ->disableOriginalConstructor() + ->getMock(); + $userMock->expects($this->any())->method('getReloadAclFlag')->willReturn(true); + $userMock->expects($this->once())->method('setReloadAclFlag')->with('0')->willReturnSelf(); + $userMock->expects($this->once())->method('save'); + $this->storage->expects($this->once())->method('setAcl')->with($aclMock); + $this->storage->expects($this->any())->method('getAcl')->willReturn($aclMock); + if ($isUserPassedViaParams) { + $this->session->refreshAcl($userMock); + } else { + $this->storage->expects($this->once())->method('getUser')->willReturn($userMock); + $this->session->refreshAcl(); + } + $this->assertSame($aclMock, $this->session->getAcl()); + } + + public function refreshAclDataProvider() + { + return [ + 'User set via params' => [true], + 'User set to session object' => [false] + ]; + } + public function testIsLoggedInPositive() { $lifetime = 900; @@ -176,4 +225,58 @@ class SessionTest extends \PHPUnit_Framework_TestCase $this->assertLessThanOrEqual(time(), $this->session->getUpdatedAt()); } + + /** + * @dataProvider isAllowedDataProvider + * @param bool $isUserDefined + * @param bool $isAclDefined + * @param bool $isAllowed + * @param true $expectedResult + */ + public function testIsAllowed($isUserDefined, $isAclDefined, $isAllowed, $expectedResult) + { + $userAclRole = 'userAclRole'; + if ($isAclDefined) { + $aclMock = $this->getMockBuilder('Magento\Framework\Acl')->disableOriginalConstructor()->getMock(); + $this->storage->expects($this->any())->method('getAcl')->willReturn($aclMock); + } + if ($isUserDefined) { + $userMock = $this->getMockBuilder('Magento\User\Model\User')->disableOriginalConstructor()->getMock(); + $this->storage->expects($this->once())->method('getUser')->willReturn($userMock); + } + if ($isAclDefined && $isUserDefined) { + $userMock->expects($this->any())->method('getAclRole')->willReturn($userAclRole); + $aclMock->expects($this->once())->method('isAllowed')->with($userAclRole)->willReturn($isAllowed); + } + + $this->assertEquals($expectedResult, $this->session->isAllowed('resource')); + } + + public function isAllowedDataProvider() + { + return [ + "Negative: User not defined" => [false, true, true, false], + "Negative: Acl not defined" => [true, false, true, false], + "Negative: Permission denied" => [true, true, false, false], + "Positive: Permission granted" => [true, true, false, false], + ]; + } + + /** + * @dataProvider firstPageAfterLoginDataProvider + * @param bool $isFirstPageAfterLogin + */ + public function testFirstPageAfterLogin($isFirstPageAfterLogin) + { + $this->session->setIsFirstPageAfterLogin($isFirstPageAfterLogin); + $this->assertEquals($isFirstPageAfterLogin, $this->session->isFirstPageAfterLogin()); + } + + public function firstPageAfterLoginDataProvider() + { + return [ + 'First page after login' => [true], + 'Not first page after login' => [false], + ]; + } } diff --git a/app/code/Magento/Backend/view/adminhtml/templates/admin/page.phtml b/app/code/Magento/Backend/view/adminhtml/templates/admin/page.phtml index 1015ad460f45f306e85ef6dfc2fff114aadf9d79..6ace15eb6afff7f8698c8c26db70371e23706dce 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/admin/page.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/admin/page.phtml @@ -27,10 +27,8 @@ <main class="page-content" id="anchor-content"> <?php echo $block->getChildHtml('main-top'); ?> - <div class="admin__scope"> - <div class="messages" id="messages" data-container-for="messages"> - <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?> - </div> + <div class="messages" id="messages" data-container-for="messages"> + <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?> </div> <?php echo $block->getChildHtml('page_main_actions'); ?> <?php if ($block->getChildHtml('left')): ?> diff --git a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/grid.phtml b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/grid.phtml index 966f1d251a519c782246764d100fd67127f6619f..f87b7ee84a1a475492ceaaf87f74c943a2749bc2 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/grid.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/grid.phtml @@ -14,7 +14,7 @@ $numColumns = sizeof($block->getColumns()); <?php if ($block->getCollection()): ?> <div class="dashboard-item-content"> <?php if ($block->getCollection()->getSize()>0): ?> - <table class="dashboard-data" id="<?php echo $block->getId() ?>_table"> + <table class="table dashboard-data" id="<?php echo $block->getId() ?>_table"> <?php /* This part is commented to remove all <col> tags from the code. */ /* foreach ($block->getColumns() as $_column): ?> diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/js/calendar.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/js/calendar.phtml index b99dd72072dba4f6fadde9c5e03a075018468762..8de8c93ee6391cb44406a0c2f611bb3712edc058 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/page/js/calendar.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/page/js/calendar.phtml @@ -41,7 +41,8 @@ require([ showAnim: "", changeMonth: true, changeYear: true, - buttonImageOnly: true, + buttonImageOnly: null, + buttonImage: null, showButtonPanel: true, showOtherMonths: true, showWeek: false, diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset.phtml index 03f4d7c5e2432f3237578d058cc9492fdc7252c1..59dfc9db6b35d6b50d2aa02b1d1ed8b0808cfa47 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset.phtml @@ -61,9 +61,13 @@ if ($isField) { <?php endif; ?> <?php endif; ?> - <?php if ($element->getComment() && !$isField): ?> - <div class="comment"><?php echo $block->escapeHtml($element->getComment()) ?></div> - <?php endif; ?> + + <div class="messages"> + <?php if ($element->getComment() && !$isField): ?> + <div class="message message-notice"><?php echo $block->escapeHtml($element->getComment()) ?></div> + <?php endif; ?> + </div> + <?php echo($isField) ? '<div class="control">' : ''; ?> diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/tabs.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/tabs.phtml index 764db4e07732c623a1f0458bbeefe6aed1c9b755..2b5d4b4b35892e66d774ebee5ba58ee99f54ad30 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/widget/tabs.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/tabs.phtml @@ -9,30 +9,57 @@ /** @var $block \Magento\Backend\Block\Widget\Tabs */ ?> <?php if (!empty($tabs)): ?> -<div id="<?php echo $block->getId() ?>"> + +<div class="admin__page-nav" data-role="container" id="<?php echo $block->getId() ?>"> <?php if ($block->getTitle()): ?> - <h3 <?php echo $block->getUiId('title') ?>><?php echo $block->getTitle() ?></h3> + <div class="admin__page-nav-title" data-role="title" <?php echo $block->getUiId('title') ?>> + <strong><?php echo $block->getTitle() ?></strong> + <span data-role="title-messages" class="admin__page-nav-title-messages"></span> + </div> <?php endif ?> - <ul <?php echo $block->getUiId('tab', $block->getId()) ?> class="<?php echo $block->getIsHoriz() ? 'tabs-horiz' : 'tabs' ?>"> + <ul <?php echo $block->getUiId('tab', $block->getId()) ?> class="<?php echo $block->getIsHoriz() ? 'tabs-horiz' : 'tabs admin__page-nav-items' ?>"> <?php foreach ($tabs as $_tab): ?> - <?php if (!$block->canShowTab($_tab)): continue; endif; ?> - <?php $_tabClass = 'tab-item-link ' . $block->getTabClass($_tab) . ' ' . (preg_match('/\s?ajax\s?/', $_tab->getClass()) ? 'notloaded' : '') ?> - <?php $_tabType = (!preg_match('/\s?ajax\s?/', $_tabClass) && $block->getTabUrl($_tab) != '#') ? 'link' : '' ?> - <?php $_tabHref = $block->getTabUrl($_tab) == '#' ? '#' . $block->getTabId($_tab) . '_content' : $block->getTabUrl($_tab) ?> - <li <?php if ($block->getTabIsHidden($_tab)): ?> style="display:none"<?php endif; ?><?php echo $block->getUiId('tab', 'item', $_tab->getId()) ?>> - <a href="<?php echo $_tabHref ?>" id="<?php echo $block->getTabId($_tab) ?>" name="<?php echo $block->getTabId($_tab, false) ?>" title="<?php echo $block->getTabTitle($_tab) ?>" class="<?php echo $_tabClass;?>" data-tab-type="<?php echo $_tabType;?>" <?php echo $block->getUiId('tab', 'link', $_tab->getId()) ?>> - <span> - <span class="changed" title="<?php echo __('The information in this tab has been changed.') ?>"></span> - <span class="error" title="<?php echo __('This tab contains invalid data. Please solve the problem before saving.') ?>"></span> - <span class="loader" title="<?php echo __('Loading...') ?>"></span> - <?php echo $block->getTabLabel($_tab); ?> - </span> - </a> - <div id="<?php echo $block->getTabId($_tab) ?>_content" style="display:none;"<?php echo $block->getUiId('tab', 'content', $_tab->getId()) ?>><?php echo $block->getTabContent($_tab) ?></div> - </li> + + <?php if (!$block->canShowTab($_tab)): continue; endif; ?> + <?php $_tabClass = 'tab-item-link ' . $block->getTabClass($_tab) . ' ' . (preg_match('/\s?ajax\s?/', $_tab->getClass()) ? 'notloaded' : '') ?> + <?php $_tabType = (!preg_match('/\s?ajax\s?/', $_tabClass) && $block->getTabUrl($_tab) != '#') ? 'link' : '' ?> + <?php $_tabHref = $block->getTabUrl($_tab) == '#' ? '#' . $block->getTabId($_tab) . '_content' : $block->getTabUrl($_tab) ?> + + <li class="admin__page-nav-item" <?php if ($block->getTabIsHidden($_tab)): ?> style="display:none"<?php endif; ?><?php echo $block->getUiId('tab', 'item', $_tab->getId()) ?>> + <a href="<?php echo $_tabHref ?>" id="<?php echo $block->getTabId($_tab) ?>" name="<?php echo $block->getTabId($_tab, false) ?>" title="<?php echo $block->getTabTitle($_tab) ?>" + class="admin__page-nav-link <?php echo $_tabClass;?>" + data-tab-type="<?php echo $_tabType;?>" + <?php echo $block->getUiId('tab', 'link', $_tab->getId()) ?>> + + <span><?php echo $block->getTabLabel($_tab); ?></span> + + <span class="admin__page-nav-item-messages" data-role="item-messages"> + <span class="admin__page-nav-item-message _changed"> + <span class="admin__page-nav-item-message-icon"></span> + <span class="admin__page-nav-item-message-tooltip"> + <?php echo __('Changes have been made to this section that have not been saved.'); ?> + </span> + </span> + <span class="admin__page-nav-item-message _error"> + <span class="admin__page-nav-item-message-icon"></span> + <span class="admin__page-nav-item-message-tooltip"> + <?php echo __('This tab contains invalid data. Please solve the problem before saving.'); ?> + </span> + </span> + <span class="admin__page-nav-item-message-loader"> + <span class="spinner"> + <span></span><span></span><span></span><span></span> + <span></span><span></span><span></span><span></span> + </span> + </span> + </span> + </a> + <div id="<?php echo $block->getTabId($_tab) ?>_content" style="display:none;"<?php echo $block->getUiId('tab', 'content', $_tab->getId()) ?>><?php echo $block->getTabContent($_tab) ?></div> + </li> <?php endforeach; ?> </ul> </div> + <script> require(['jquery',"mage/backend/tabs"], function($){ $(function() { 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 9979827b852795b353efbbdb286cfd293fb9bbcd..ef121271e5ccda5a1c83ac7ba7f1ffb790878a2b 100644 --- a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml +++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml @@ -8,7 +8,7 @@ ?> <!-- TODO: refactor form styles and js --> -<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog admin__scope" id="rollback-warning" style="display: none;"> +<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog" id="rollback-warning" style="display: none;"> <div class="popup"> <div class="popup-inner"> <div class="popup-header"> @@ -31,7 +31,7 @@ </div> </div> -<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog admin__scope" id="backup-warning" style="display: none;"> +<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog" id="backup-warning" style="display: none;"> <div class="popup"> <div class="popup-inner"> <div class="popup-header"> @@ -53,7 +53,7 @@ </div> </div> -<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog admin__scope" id="backup-options" style="display: none;"> +<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog" id="backup-options" style="display: none;"> <div class="popup"> <div class="popup-inner"> <div class="popup-header"> @@ -103,7 +103,7 @@ </div> </div> -<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog admin__scope" id="rollback-request-password" style="display: none;"> +<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog" id="rollback-request-password" style="display: none;"> <div class="popup popup-notice"> <div class="popup-inner"> <div class="popup-header"> 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 079a9d89f37cb1a8fa8910f950a688b4906de5e1..5b6515db33fa5a13be2a3493cbd7588b36cda191 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 @@ -159,6 +159,8 @@ define([ 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'); diff --git a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/creditmemo/default.phtml b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/creditmemo/default.phtml index fdeaac8ee26557106b9de8418a9671ae7ac5c773..0caea13b65b5a392e18217bfa682c4a46e70c0d0 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/creditmemo/default.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/creditmemo/default.phtml @@ -17,7 +17,7 @@ <?php foreach ($items as $_item): ?> -<?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> +<?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> <?php $_showlastRow = true ?> <?php else: ?> <?php $_showlastRow = false ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/invoice/default.phtml b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/invoice/default.phtml index cf6b520bcd00f4501b049b16a7ab8d1ba1df82cd..4aec9e983e7c5e86238ee178f30a331d77e3c907 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/invoice/default.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/invoice/default.phtml @@ -18,7 +18,7 @@ <?php foreach ($items as $_item): ?> -<?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> +<?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> <?php $_showlastRow = true ?> <?php else: ?> <?php $_showlastRow = false ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/order/default.phtml b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/order/default.phtml index 876a77f7726ca088c68b7d713c25f701784ae431..c40ac91faf20a0c999997f46c23e9cec3403874e 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/order/default.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/order/default.phtml @@ -14,7 +14,7 @@ <?php $parentItem = $block->getItem() ?> <?php $items = array_merge([$parentItem], $parentItem->getChildrenItems()); ?> -<?php if ($block->getItemOptions() || $_item->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $_item) && $_item->getGiftMessageId()): ?> +<?php if ($block->getItemOptions() || $_item->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $_item) && $_item->getGiftMessageId()): ?> <?php $_showlastRow = true ?> <?php else: ?> <?php $_showlastRow = false ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/shipment/default.phtml b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/shipment/default.phtml index 8b9c86c24780d8d2cf798a5798c9bdd20d52df06..c485ea7524906bce8ab030dbf5d8ff6263875b8e 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/shipment/default.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/shipment/default.phtml @@ -16,7 +16,7 @@ <?php foreach ($items as $_item): ?> -<?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> +<?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> <?php $_showlastRow = true ?> <?php else: ?> <?php $_showlastRow = false ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/sales/order/creditmemo/items/renderer.phtml b/app/code/Magento/Bundle/view/frontend/templates/sales/order/creditmemo/items/renderer.phtml index 92d5f48d962c250205098b11690e9c9ab43825fc..3d908583e199610eb48aad5ce83126bf957a9ca8 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/sales/order/creditmemo/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/sales/order/creditmemo/items/renderer.phtml @@ -19,7 +19,7 @@ <?php foreach ($items as $_item): ?> - <?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> + <?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> <?php $_showlastRow = true ?> <?php else: ?> <?php $_showlastRow = false ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/sales/order/invoice/items/renderer.phtml b/app/code/Magento/Bundle/view/frontend/templates/sales/order/invoice/items/renderer.phtml index ce6c827ab2475925de00c0d711b814175ba93fce..c7f4dd44bc08b82634ec14cbc2753806cb1fae3b 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/sales/order/invoice/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/sales/order/invoice/items/renderer.phtml @@ -18,7 +18,7 @@ <?php $_prevOptionId = '' ?> <?php foreach ($items as $_item): ?> - <?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> + <?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> <?php $_showlastRow = true ?> <?php else: ?> <?php $_showlastRow = false ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml b/app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml index b4276aeaa7ba38fc5c5fe72c6fe3622a2f243a55..c50b8cfdac980447385bf4367eb3dfddbf07c789 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml @@ -17,7 +17,7 @@ <?php foreach ($items as $_item): ?> - <?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> + <?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> <?php $_showlastRow = true ?> <?php else: ?> <?php $_showlastRow = false ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/sales/order/shipment/items/renderer.phtml b/app/code/Magento/Bundle/view/frontend/templates/sales/order/shipment/items/renderer.phtml index 1e02e1b887ad8f29e744f362cbad49440888fe75..15406932c1c3e8706afa0c13b58c5c717ddb3dca 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/sales/order/shipment/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/sales/order/shipment/items/renderer.phtml @@ -17,7 +17,7 @@ <?php foreach ($items as $_item): ?> - <?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> + <?php if ($block->getItemOptions() || $parentItem->getDescription() || $this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $parentItem) && $parentItem->getGiftMessageId()): ?> <?php $_showlastRow = true ?> <?php else: ?> <?php $_showlastRow = false ?> diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php index 0e982417ed1bb3e40addfe6a6c73f8f42fbb1d68..1bb8e7e0005478395e7945e3b8673c85656c67e2 100644 --- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php +++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php @@ -123,7 +123,6 @@ class Advanced extends Generic 'name' => 'default_value_date', 'label' => __('Default Value'), 'title' => __('Default Value'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'value' => $attributeObject->getDefaultValue(), 'date_format' => $dateFormat ] diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/NewCategory.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/NewCategory.php index 5c859b2f70ad6d749fe7fa3c21ae4f79e10684ca..2a35247de808bf4c4a618956d02c27bfb4b5f7ef 100644 --- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/NewCategory.php +++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/NewCategory.php @@ -56,7 +56,7 @@ class NewCategory extends \Magento\Backend\Block\Widget\Form\Generic protected function _prepareForm() { /** @var \Magento\Framework\Data\Form $form */ - $form = $this->_formFactory->create(['data' => ['id' => 'new_category_form']]); + $form = $this->_formFactory->create(['data' => ['id' => 'new_category_form', 'class' => 'admin__scope-old']]); $form->setUseContainer($this->getUseContainer()); $form->addField('new_category_messages', 'note', []); diff --git a/app/code/Magento/Catalog/etc/webapi.xml b/app/code/Magento/Catalog/etc/webapi.xml index a4fb44c7eae061b3547fee1c93d61889dd923b7a..88bc0f93a6ec32002356446962220f48422f1fce 100644 --- a/app/code/Magento/Catalog/etc/webapi.xml +++ b/app/code/Magento/Catalog/etc/webapi.xml @@ -82,7 +82,7 @@ <resource ref="Magento_Catalog::attributes_attributes" /> </resources> </route> - <route url="/V1/products/attributes/:attributeId" method="PUT"> + <route url="/V1/products/attributes/:attributeCode" method="PUT"> <service class="Magento\Catalog\Api\ProductAttributeRepositoryInterface" method="save"/> <resources> <resource ref="Magento_Catalog::attributes_attributes" /> diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_edit.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_edit.xml index 202ff06a2222cde22fff192b5687b184197c1642..b70f31162fff2fb5b377ac9c98a4831c58eb8e1a 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_edit.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_edit.xml @@ -11,6 +11,7 @@ </head> <update handle="editor"/> <body> + <referenceContainer name="left" htmlClass="admin__scope-old" htmlTag="div" /> <referenceContainer name="page.main.actions"> <block class="Magento\Backend\Block\Store\Switcher" name="category.store.switcher" template="Magento_Backend::store/switcher.phtml"> <!--<arguments>--> diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_new.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_new.xml index 9bbf8fe2b398f1fe90b1864ea25c302d3c77a9b5..55e9ebee91f5bcbbcc6b77c4d81fd3638dec7592 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_new.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_new.xml @@ -13,6 +13,7 @@ </head> <update handle="editor"/> <body> + <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way --> <referenceContainer name="content"> <block class="Magento\Catalog\Block\Adminhtml\Product\Edit" name="product_edit"> <container name="product-type-tabs" label="Tabs"> @@ -23,6 +24,10 @@ </referenceContainer> <referenceContainer name="left"> <block class="Magento\Catalog\Block\Adminhtml\Product\Edit\Tabs" name="product_tabs"> + <!-- @todo ui: remove arguments within .admin__scope-old --> + <arguments> + <argument name="panels_class" xsi:type="string">admin__scope-old</argument> + </arguments> <block class="Magento\Backend\Block\Widget\Tab" name="product_tabs.customer_options" as="customer_options"> <arguments> <argument name="label" xsi:type="string" translate="true">Custom Options</argument> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit/form.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit/form.phtml index 8d2f762d8160c59931897313e43bc43222ad0fe7..6386f540f8aad8f52634cd9c325cf38419eb47a2 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit/form.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit/form.phtml @@ -24,11 +24,9 @@ $categoryId = $block->getCategoryId(); <?php if ($block->hasStoreRootCategory()): ?> <?php echo $block->getTabsHtml() ?> <?php else: ?> -<div class="admin__scope"> - <div class="messages"> - <div class="message message-notice"> - <div><?php echo __('Set root category for this store in the <a href="%1">configuration</a>.', $block->getStoreConfigurationUrl()) ?></div> - </div> +<div class="messages"> + <div class="message message-notice"> + <div><?php echo __('Set root category for this store in the <a href="%1">configuration</a>.', $block->getStoreConfigurationUrl()) ?></div> </div> </div> @@ -52,7 +50,7 @@ $categoryId = $block->getCategoryId(); <div id="category_tab_content"></div> </form> -<div data-id="information-dialog-category" class="messages admin__scope" style="display: none;"> +<div data-id="information-dialog-category" class="messages" style="display: none;"> <div class="message message-notice"> <div><?php echo __('This operation can take a long time'); ?></div> </div> 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 58fa76afac0d4d5a4418dc8663f43e4cfd647ab7..b808d1a08b89069b6c54a04dedb4c0c77b48a870 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 @@ -30,7 +30,7 @@ </div> </div> -<div data-id="information-dialog-tree" class="messages admin__scope" style="display: none;"> +<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> 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 89a839e200085268fafac6f6639219d4db62a8b1..44945b2db8596cb4acbd7ab374529aa796cfa3f3 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,15 +13,15 @@ */ ?> <?php echo $block->getFormInitScripts() ?> -<form id="edit_form" action="<?php echo $block->escapeHtml($block->getSaveUrl()) ?>" method="post"> +<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 class="admin__scope"> - <div data-mage-init='{"floatingHeader": {}}' class="page-actions attribute-popup-actions" <?php echo $block->getUiId('content-header') ?>> - <?php echo $block->getButtonsHtml('header') ?> - </div> + +<div data-mage-init='{"floatingHeader": {}}' class="page-actions attribute-popup-actions" <?php echo $block->getUiId('content-header') ?>> + <?php echo $block->getButtonsHtml('header') ?> </div> + <script> require(['jquery', "mage/mage"], function(jQuery){ diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit.phtml index 1e7ca675924e6a5b5bf1efffcf5ee924e09d2b7d..6dc43f6f2bbb513a34de36d03d82236e6a1ff2b8 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit.phtml @@ -12,39 +12,39 @@ * @var $block \Magento\Catalog\Block\Adminhtml\Product\Edit */ ?> +<div class="admin__scope-old"> + <div class="product-actions"> + <div id="product-template-suggest-container" class="suggest-expandable"> + <div class="action-dropdown"> + <button type="button" class="action-toggle" data-mage-init='{"dropdown":{}}' data-toggle="dropdown"> + <span><?php echo $block->getAttributeSetName()?></span> + </button> + <ul class="dropdown-menu"> + <li><input type="text" id="product-template-suggest" class="search" + placeholder="start typing to search template"/></li> + </ul> + </div> + </div> -<div class="product-actions"> - <div id="product-template-suggest-container" class="suggest-expandable"> - <div class="action-dropdown"> - <button type="button" class="action-toggle" data-mage-init='{"dropdown":{}}' data-toggle="dropdown"> - <span><?php echo $block->getAttributeSetName()?></span> - </button> - <ul class="dropdown-menu"> - <li><input type="text" id="product-template-suggest" class="search" - placeholder="start typing to search template"/></li> - </ul> + <div class="switcher" onselectstart='return false;'> + <input type="checkbox" id="product-online-switcher" name="product-online-switcher" /> + <label class="switcher-label" + for="product-online-switcher" + data-text-on="<?php echo __('Product online'); ?>" + data-text-off="<?php echo __('Product offline'); ?>" + title="<?php echo __('Product online status'); ?>"></label> </div> - </div> - <div class="switcher" onselectstart='return false;'> - <input type="checkbox" id="product-online-switcher" name="product-online-switcher" /> - <label class="switcher-label" - for="product-online-switcher" - data-text-on="<?php echo __('Product online'); ?>" - data-text-off="<?php echo __('Product offline'); ?>" - title="<?php echo __('Product online status'); ?>"></label> + <?php if ($block->getProductId()): ?> + <?php echo $block->getDeleteButtonHtml() ?> + <?php endif; ?> + <?php if ($block->getProductSetId()): ?> + <?php echo $block->getChangeAttributeSetButtonHtml() ?> + <?php echo $block->getSaveSplitButtonHtml(); ?> + <?php endif; ?> + <?php echo $block->getBackButtonHtml() ?> </div> - - <?php if ($block->getProductId()): ?> - <?php echo $block->getDeleteButtonHtml() ?> - <?php endif; ?> - <?php if ($block->getProductSetId()): ?> - <?php echo $block->getChangeAttributeSetButtonHtml() ?> - <?php echo $block->getSaveSplitButtonHtml(); ?> - <?php endif; ?> - <?php echo $block->getBackButtonHtml() ?> </div> - <?php if ($block->getUseContainer()): ?> <form action="<?php echo $block->getSaveUrl() ?>" method="post" enctype="multipart/form-data" data-form="edit-product" data-product-id="<?php echo $block->getProduct()->getId()?>"> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml index 5ebe1168d71e6cef9a0cda945869edbd0d9938be..a8ee0b1f928cee9031e0db52a96b321646f7eb5a 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml @@ -47,11 +47,9 @@ <span><?php echo __('Remove Product From Websites') ?></span> </legend> <br> - <div class="admin__scope"> - <div class="messages"> - <div class="message message-notice"> - <div><?php echo __("Items that you do not want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></div> - </div> + <div class="messages"> + <div class="message message-notice"> + <div><?php echo __("Items that you do not want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></div> </div> </div> <div class="store-scope"> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml index c60c4f8275b2e00afe37b22076efba4a13be1c4c..7e06606146ab823801c4ce4ee0cdf9a27ef932d9 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml @@ -17,12 +17,10 @@ </div> <div class="fieldset-wrapper-content" id="product-custom-options-content"> <fieldset class="fieldset"> - <div class="admin__scope"> - <div class="messages"> - <div class="message message-error" id="dynamic-price-warning" style="display: none;"> - <div class="message-inner"> - <div class="message-content"><?php echo __('Bundle with dynamic pricing cannot include custom defined options. Options will not be saved.') ?></div> - </div> + <div class="messages"> + <div class="message message-error" id="dynamic-price-warning" style="display: none;"> + <div class="message-inner"> + <div class="message-content"><?php echo __('Bundle with dynamic pricing cannot include custom defined options. Options will not be saved.') ?></div> </div> </div> </div> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/websites.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/websites.phtml index 2cabd0a0ab2aa4d29eb4cd1b03368d971d1262d8..e0128a5f0fd60ee6c7814ce459ca2b8971024770 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/websites.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/websites.phtml @@ -11,11 +11,9 @@ <legend class="legend"><span><?php echo __('Product In Websites') ?></span></legend> <br> <?php if ($block->getProductId()): ?> - <div class="admin__scope"> - <div class="messages"> - <div class="message message-notice"> - <?php echo __("Items that you don't want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?> - </div> + <div class="messages"> + <div class="message message-notice"> + <?php echo __("Items that you don't want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?> </div> </div> <?php endif; ?> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/product/edit/tabs.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/product/edit/tabs.phtml index 119947e887fc552524b01b66895fab455e1316d1..f2042ea041a048a6b9014f41837792e0bc3f3343 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/product/edit/tabs.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/product/edit/tabs.phtml @@ -13,61 +13,105 @@ \Magento\Catalog\Block\Adminhtml\Product\Edit\Tabs::BASIC_TAB_GROUP_CODE, \Magento\Catalog\Block\Adminhtml\Product\Edit\Tabs::ADVANCED_TAB_GROUP_CODE, ];?> + <div id="<?php echo $block->getId() ?>" - data-mage-init='{"tabs":{ - "active": "<?php echo $block->getActiveTabId() ?>", - "destination": "#<?php echo $block->getDestElementId() ?>", - "shadowTabs": "<?php echo $block->getAllShadowTabs()?>", - "tabsBlockPrefix": "<?php echo $block->getId() ?>_", - "tabIdArgument": "active_tab", - "groups": "ul.tabs" - }}'> + data-mage-init='{"tabs":{ + "active": "<?php echo $block->getActiveTabId() ?>", + "destination": "#<?php echo $block->getDestElementId() ?>", + "shadowTabs": "<?php echo $block->getAllShadowTabs()?>", + "tabsBlockPrefix": "<?php echo $block->getId() ?>_", + "tabIdArgument": "active_tab", + "tabPanelClass": "<?php echo $block->getPanelsClass() ?>", + "excludedPanel": "<?php echo $block->getExcludedPanel() ?>", + "groups": "ul.tabs" +}}'> <?php foreach ($tabGroups as $tabGroupCode): ?> - <?php $tabGroupId = $block->getId() . '-' . $tabGroupCode; ?> - <?php $isBasic = $tabGroupCode == \Magento\Catalog\Block\Adminhtml\Product\Edit\Tabs::BASIC_TAB_GROUP_CODE; ?> - <div id="<?php echo $tabGroupId ?>" - <?php if (!$isBasic): ?> - data-mage-init='{"collapsible":{"active": <?php echo $block->isAdvancedTabGroupActive() ? 'true' : 'false' ?>, "collapsible": true}}' - <?php endif;?>> - <h3 <?php echo $block->getUiId('title') ?> data-role="title" <?php if (!$isBasic): ?>class="ui-accordion-header"<?php endif;?>> - <span data-role="trigger"> <?php echo $isBasic ? __('Basic Settings') : __('Advanced Settings') ?></span> - </h3> - <ul <?php echo $block->getUiId('tab', $tabGroupId) ?> class="tabs" data-role="content"> - <?php foreach ($tabs as $_tab): ?> - <?php if (!$block->canShowTab($_tab) || $_tab->getParentTab() - || ($_tab->getGroupCode() && $_tab->getGroupCode() != $tabGroupCode) - || (!$_tab->getGroupCode() && $isBasic)): continue; endif;?> - <?php $_tabClass = 'tab-item-link ' . $block->getTabClass($_tab) . ' ' . (preg_match('/\s?ajax\s?/', $_tab->getClass()) ? 'notloaded' : '') ?> - <?php $_tabType = (!preg_match('/\s?ajax\s?/', $_tabClass) && $block->getTabUrl($_tab) != '#') ? 'link' : '' ?> - <?php $_tabHref = $block->getTabUrl($_tab) == '#' ? '#' . $block->getTabId($_tab) . '_content' : $block->getTabUrl($_tab) ?> - <li <?php if ($block->getTabIsHidden($_tab)): ?> class="no-display"<?php endif; ?><?php echo $block->getUiId('tab', 'item', $_tab->getId()) ?>> - <a href="<?php echo $_tabHref ?>" id="<?php echo $block->getTabId($_tab) ?>" - name="<?php echo $block->getTabId($_tab, false) ?>" title="<?php echo $block->getTabTitle($_tab) ?>" - class="<?php echo $_tabClass;?>" - data-tab-type="<?php echo $_tabType;?>" <?php echo $block->getUiId('tab', 'link', $_tab->getId()) ?>> - <span> - <span class="changed" title="<?php echo __('The information in this tab has been changed.') ?>"></span> - <span class="error" title="<?php echo __('This tab contains invalid data. Please solve the problem before saving.') ?>"></span> - <span class="loader" title="<?php echo __('Loading...') ?>"></span> - <?php echo $block->escapeHtml($block->getTabLabel($_tab)); ?> - </span> - </a> - <div id="<?php echo $block->getTabId($_tab) ?>_content" class="no-display" - data-tab-panel="<?=$_tab->getTabId() ?>" - <?php echo $block->getUiId('tab', 'content', $_tab->getId()) ?>> - <?php echo $block->getTabContent($_tab); ?> - <?php foreach ($tabs as $childTab): ?> - <?php if ($childTab->getParentTab() === $_tab->getId()):?> + <?php + $tabGroupId = $block->getId() . '-' . $tabGroupCode; + $isBasic = $tabGroupCode == \Magento\Catalog\Block\Adminhtml\Product\Edit\Tabs::BASIC_TAB_GROUP_CODE; + $activeCollapsible = $block->isAdvancedTabGroupActive() ? true : false; + ?> + + <div class="admin__page-nav <?php if (!$isBasic): ?> <?php echo '_collapsed';?> <?php endif;?>" + data-role="container" + id="<?php echo $tabGroupId ?>" + <?php if (!$isBasic): ?> + data-mage-init='{"collapsible":{ + "active": "<?php echo $activeCollapsible; ?>", + "openedState": "_show", + "closedState": "_hide", + "animate": 200, + "collapsible": true + }}' + <?php endif;?>> + + <div class="admin__page-nav-title-wrap" <?php echo $block->getUiId('title') ?> data-role="title"> + <div class="admin__page-nav-title <?php if (!$isBasic): ?> <?php echo '_collapsible';?><?php endif;?>" + data-role="trigger"> + <strong> + <?php echo $isBasic ? __('Basic Settings') : __('Advanced Settings') ?> + </strong> + <span data-role="title-messages" class="admin__page-nav-title-messages"></span> + </div> + </div> + + <ul <?php echo $block->getUiId('tab', $tabGroupId) ?> class="tabs admin__page-nav-items" data-role="content"> + <?php foreach ($tabs as $_tab): ?> + <?php if (!$block->canShowTab($_tab) || $_tab->getParentTab() + || ($_tab->getGroupCode() && $_tab->getGroupCode() != $tabGroupCode) + || (!$_tab->getGroupCode() && $isBasic)): continue; endif;?> + <?php $_tabClass = 'tab-item-link ' . $block->getTabClass($_tab) . ' ' . (preg_match('/\s?ajax\s?/', $_tab->getClass()) ? 'notloaded' : '') ?> + <?php $_tabType = (!preg_match('/\s?ajax\s?/', $_tabClass) && $block->getTabUrl($_tab) != '#') ? 'link' : '' ?> + <?php $_tabHref = $block->getTabUrl($_tab) == '#' ? '#' . $block->getTabId($_tab) . '_content' : $block->getTabUrl($_tab) ?> + <li class="admin__page-nav-item <?php if ($block->getTabIsHidden($_tab)): ?> <?php echo "no-display"; ?> <?php endif; ?> " <?php echo $block->getUiId('tab', 'item', $_tab->getId()) ?>> + + <a href="<?php echo $_tabHref ?>" id="<?php echo $block->getTabId($_tab) ?>" + name="<?php echo $block->getTabId($_tab, false) ?>" + title="<?php echo $block->getTabTitle($_tab) ?>" + class="admin__page-nav-link <?php echo $_tabClass;?>" + data-tab-type="<?php echo $_tabType;?>" <?php echo $block->getUiId('tab', 'link', $_tab->getId()) ?>> + + <span><?php echo $block->escapeHtml($block->getTabLabel($_tab)); ?></span> + + <span class="admin__page-nav-item-messages" data-role="item-messages"> + <span class="admin__page-nav-item-message _changed"> + <span class="admin__page-nav-item-message-icon"></span> + <span class="admin__page-nav-item-message-tooltip"> + <?php echo __('Changes have been made to this section that have not been saved.'); ?> + </span> + </span> + <span class="admin__page-nav-item-message _error"> + <span class="admin__page-nav-item-message-icon"></span> + <span class="admin__page-nav-item-message-tooltip"> + <?php echo __('This tab contains invalid data. Please solve the problem before saving.'); ?> + </span> + </span> + <span class="admin__page-nav-item-message-loader"> + <span class="spinner"> + <span></span><span></span><span></span><span></span> + <span></span><span></span><span></span><span></span> + </span> + </span> + </span> + </a> + + <div id="<?php echo $block->getTabId($_tab) ?>_content" class="no-display" + data-tab-panel="<?=$_tab->getTabId() ?>" + <?php echo $block->getUiId('tab', 'content', $_tab->getId()) ?>> + <?php echo $block->getTabContent($_tab); ?> + <?php foreach ($tabs as $childTab): ?> + <?php if ($childTab->getParentTab() === $_tab->getId()):?> <div id="<?php echo $block->getTabId($childTab) ?>_content" <?php echo $block->getUiId('tab', 'content', $childTab->getId()) ?>> - <?php echo $block->getTabContent($childTab); ?> - <?php endif;?> - <?php endforeach; ?> - </div> - </li> - <?php endforeach; ?> - </ul> - </div> + <?php echo $block->getTabContent($childTab); ?> + <?php endif;?> + <?php endforeach; ?> + </div> + </li> + <?php endforeach; ?> + </ul> + </div> <?php endforeach; ?> </div> + <?php endif; ?> diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category-selector.css b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category-selector.css index 2758bfb06dc57f65a9451c6f8f4721563d0edb06..45837e9b52a0059e689ed0bd5e17c225b1eaa517 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category-selector.css +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category-selector.css @@ -1,176 +1,177 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + .field-category_ids .category-select { - margin: 0 0 6px 0; - padding: 2px; - width: 67.999999997%; -} - + margin: 0 0 6px; + padding: 2px; + width: 67.999999997%; +} + .mage-new-category-dialog .category-select { - width: 100%; - padding: 0; -} - + padding: 0; + width: 100%; +} + .field-category_ids .mage-suggest-inner { - padding-right: 27px; -} - + padding-right: 27px; +} + .field-category_ids .addon > button { - float: right; - margin-left: 2.127659574%; - width: 28.4%; -} - + float: right; + margin-left: 2.127659574%; + width: 28.4%; +} + .field-category_ids .mage-suggest-search-label:after, .mage-new-category-dialog .mage-suggest-search-label:after { - position: absolute; - top: 0; - right: 5px; - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e013'; /* unordered list icon */ - font-size: 20px; - color: #b2b2b2; -} - -/* Remove search icon for category search suggest field */ + color: #b2b2b2; + content: '\e013'; /* unordered list icon */ + font-family: 'MUI-Icons'; + font-size: 20px; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-weight: normal; + position: absolute; + right: 5px; + speak: none; + top: 0; +} + +/* Remove search icon for category search suggest field */ .field-category_ids .category-select:after, .mage-new-category-dialog .category-select:after { - display: none; -} - -.mage-suggest-search-label { - display: block; -} - + display: none; +} + +.admin__scope-old .mage-suggest-search-label { + display: block; +} + .mage-suggest-search-label input { - border: none; -} - -/* Category Selector in "Create New Category" popup */ + border: none; +} + +/* Category Selector in "Create New Category" popup */ .mage-new-category-dialog .mage-suggest { - border: none; - box-shadow: none; -} - + border: none; + box-shadow: none; +} + .mage-new-category-dialog .mage-suggest .mage-suggest-inner { - padding: 0; -} - + padding: 0; +} + .mage-new-category-dialog .mage-suggest-search-field input.mage-suggest-state-loading { - padding-right: 15px; -} - + padding-right: 15px; +} + .mage-new-category-dialog .mage-suggest-choices { - position: relative; - padding: 2px 22px 2px 2px; - background-color: #fff; - border: 1px solid #ccc; - border-radius: 3px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - + background-color: #fff; + border: 1px solid #ccc; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + padding: 2px 22px 2px 2px; + position: relative; +} + .mage-new-category-dialog .ui-dialog-content, .mage-new-category-dialog .ui-dialog-content form { - overflow: visible; -} - + overflow: visible; +} + .mage-new-category-dialog .mage-suggest-inner { - padding: 2px 22px 2px 2px; -} - + padding: 2px 22px 2px 2px; +} + .mage-suggest-choices { - margin: 0; - padding: 0; - list-style: none; -} - + list-style: none; + margin: 0; + padding: 0; +} + .mage-suggest-choices > li { - display: inline-block; -} - + display: inline-block; +} + .mage-suggest-search-field { - width: 100%; - white-space: nowrap; - margin: 0; - padding: 0; -} - + margin: 0; + padding: 0; + white-space: nowrap; + width: 100%; +} + .mage-suggest-search-field input, .mage-suggest-search-field input:focus, .mage-suggest-search-field input:active { - width: 100%; - height: 22px; - line-height: 22px; - border: 0 none; - box-shadow: none; - padding: 0 3px; -} - + border: 0 none; + box-shadow: none; + height: 22px; + line-height: 22px; + padding: 0 3px; + width: 100%; +} + .mage-suggest-search-field input.mage-suggest-state-loading { - background: #fff url('images/spinner.gif') no-repeat 100%; - padding-right: 22px; - position: relative; - z-index: 1; -} - -.mage-suggest-choice { - position: relative; - background: #cdecf6; - border: 1px solid #a7cedb; - border-radius: 3px; - padding: 2px 22px 1px 9px; - margin: 1px 2px 1px 0; - vertical-align: top; - cursor: default; - -moz-transition: background .3s; - -webkit-transition: background .3s; - transition: background .3s; -} - + background: #fff url('images/spinner.gif') no-repeat 100%; + padding-right: 22px; + position: relative; + z-index: 1; +} + +.admin__scope-old .mage-suggest-choice { + background: #cdecf6; + border: 1px solid #a7cedb; + border-radius: 3px; + cursor: default; + height: auto; + margin: 1px 2px 1px 0; + padding: 2px 22px 1px 9px; + position: relative; + -webkit-transition: background .3s; + -moz-transition: background .3s; + transition: background .3s; + vertical-align: top; +} + .mage-suggest-choice:hover { - background: #aae3f5; -} - + background: #aae3f5; +} + .mage-suggest-choice-close { - position: absolute; - top: 0; - right: 0; - bottom: 0; - width: 20px; - line-height: 16px; - text-align: center; - color: #7b94a1; - cursor: pointer; -} - + bottom: 0; + color: #7b94a1; + cursor: pointer; + line-height: 16px; + position: absolute; + right: 0; + text-align: center; + top: 0; + width: 20px; +} + .mage-suggest-choice-close:hover { - color: #000; -} - + color: #000; +} + .mage-suggest-choice-close:before { - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e07d'; /* close icon */ - font-size: 6px; -} - + content: '\e07d'; /* close icon */ + font-family: 'MUI-Icons'; + font-size: 6px; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-weight: normal; + speak: none; +} + .mage-suggest-no-records { - display: inline-block; - padding: 10px; -} - + display: inline-block; + padding: 10px; +} + .ui-helper-hidden-accessible { - display: none; -} \ No newline at end of file + display: none; +} 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 a324135f1c46bb9163b0048c1afe136032708f8a..29ef5d3ca95c9bbddc89e69d276672bb88d50cb4 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 @@ -137,6 +137,8 @@ define([ 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'); diff --git a/app/code/Magento/Catalog/view/adminhtml/web/product/product.css b/app/code/Magento/Catalog/view/adminhtml/web/product/product.css index 6f5ae923834d7873c7bd2856c1e25f2bb225e598..0ae2dbe3db001fb5b1e37b217e05c5e3e46658df 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/product/product.css +++ b/app/code/Magento/Catalog/view/adminhtml/web/product/product.css @@ -3,17 +3,17 @@ * See COPYING.txt for license details. */ -.product-actions { +.admin__scope-old .product-actions { padding: 5px 18px; } -.product-actions .switcher { +.admin__scope-old .product-actions .switcher { display: inline-block; vertical-align: top; margin: 3px 0 6px 6px; } /* Image Management */ -.images { +.admin__scope-old .images { position: relative; border: 2px dotted #ccc; border-radius: 5px; @@ -21,8 +21,8 @@ padding: 5px; } -.image, -.gallery .ui-state-highlight { +.admin__scope-old .image, +.admin__scope-old .gallery .ui-state-highlight { position: relative; width: 17.874%; border: 1px solid #ccc; @@ -37,11 +37,11 @@ box-sizing: border-box; } -.image .spacer { +.admin__scope-old .image .spacer { width: 100%; } -.image .product-image { +.admin__scope-old .image .product-image { position: absolute; left: 0; top: 0; @@ -52,7 +52,7 @@ z-index: 1; } -.image-label { +.admin__scope-old .image-label { visibility: hidden; position: absolute; top: 0; @@ -64,11 +64,11 @@ z-index: 2; } -.image.base-image .image-label { +.admin__scope-old .image.base-image .image-label { visibility: visible; } -.image-fade { +.admin__scope-old .image-fade { visibility: hidden; position: absolute; left: 0; @@ -85,24 +85,19 @@ z-index: 3; } -.eq-ie8 .image-fade { - background: #f7f2ec; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; -} - -.image.hidden-for-front .image-fade { +.admin__scope-old .image.hidden-for-front .image-fade { visibility: visible; } -.gallery .image.hidden-for-front .image-fade { +.admin__scope-old .gallery .image.hidden-for-front .image-fade { line-height: 160px; } -.image.active { +.admin__scope-old .image.active { box-shadow: 0 0 10px #2ea9ec; } -.image .actions { +.admin__scope-old .image .actions { position: absolute; top: 0; right: 0; @@ -118,26 +113,26 @@ z-index: 1; } -.image .actions [class^="action-"], -.image[data-image-hidden]:hover .actions [class^="action-"], -.image.hidden-for-front:hover .actions [class^="action-"] { +.admin__scope-old .image .actions [class^="action-"], +.admin__scope-old .image[data-image-hidden]:hover .actions [class^="action-"], +.admin__scope-old .image.hidden-for-front:hover .actions [class^="action-"] { visibility: hidden; } -.image:hover .actions [class^="action-"], -.image[data-image-hidden]:hover .actions .action-delete, -.hidden-for-front:hover .actions .action-delete { +.admin__scope-old .image:hover .actions [class^="action-"], +.admin__scope-old .image[data-image-hidden]:hover .actions .action-delete, +.admin__scope-old .hidden-for-front:hover .actions .action-delete { visibility: visible; } -.image .action-delete { +.admin__scope-old .image .action-delete { position: absolute; top: 2px; right: 2px; z-index: 2; } -.image .action-make-base { +.admin__scope-old .image .action-make-base { position: absolute; bottom: 20px; left: 10%; @@ -146,11 +141,11 @@ margin: auto; } -.image.base-image .action-make-base { +.admin__scope-old .image.base-image .action-make-base { display: none; } -.image .draggable-handle { +.admin__scope-old .image .draggable-handle { position: absolute; width: 14px; height: 8px; @@ -164,31 +159,31 @@ z-index: 2; } -.image .draggable-handle:before { +.admin__scope-old .image .draggable-handle:before { content: ''; } -.gallery .image .action-make-base { +.admin__scope-old .gallery .image .action-make-base { width: 70%; } -.gallery .image .action-delete { +.admin__scope-old .gallery .image .action-delete { top: 5px; right: 5px; } -.image.ui-sortable-placeholder { +.admin__scope-old .image.ui-sortable-placeholder { background: #d7ebf5; border: 1px dotted #93dbff; visibility: visible !important; } -.image-placeholder { +.admin__scope-old .image-placeholder { position: relative; background: #fff url(Magento_Backend::images/image-placeholder.png) no-repeat 50% 0; } -.image-placeholder .fileinput-button { +.admin__scope-old .image-placeholder .fileinput-button { position: absolute; left: 0; top: 0; @@ -196,11 +191,11 @@ bottom: 0; } -.image-placeholder .fileinput-button > span { +.admin__scope-old .image-placeholder .fileinput-button > span { display: none; } -.image-placeholder input[type="file"] { +.admin__scope-old .image-placeholder input[type="file"] { position: absolute; top: 0; right: 0; @@ -215,8 +210,8 @@ cursor: pointer; } -.image-placeholder .file-row, -.image-placeholder.loading:after { +.admin__scope-old .image-placeholder .file-row, +.admin__scope-old .image-placeholder.loading:after { position: absolute; left: 0; right: 0; @@ -231,7 +226,7 @@ text-indent: -999em; } -.image-placeholder-text { +.admin__scope-old .image-placeholder-text { padding: 0 10px; position: absolute; left: 0; @@ -244,22 +239,22 @@ color: #cac8c4; } -.gallery .image-placeholder { +.admin__scope-old .gallery .image-placeholder { background-position: 50% 30%; } -.gallery .image-placeholder-text { +.admin__scope-old .gallery .image-placeholder-text { margin-bottom: 15%; } @media screen and (max-width: 1200px) { - .gallery .image-placeholder-text { + .admin__scope-old .gallery .image-placeholder-text { margin-bottom: 5px; } } /* Gallery image panel */ -.image-panel { +.admin__scope-old .image-panel { display: none; position: relative; top: 5px; @@ -271,12 +266,7 @@ border-bottom: 1px solid #cfd0cb; } -.eq-ie8 .image-panel { - border: solid #d6d3d0; - border-width: 2px 1px 1px; -} - -.image-pointer { +.admin__scope-old .image-pointer { position: absolute; left: 50%; top: -11px; @@ -286,81 +276,77 @@ background: url(Magento_Backend::images/gallery-image-panel-corner.png) no-repeat; } -.eq-ie8 .image-pointer { - top: -13px; -} - -.image-panel-controls, -.image-panel-preview { +.admin__scope-old .image-panel-controls, +.admin__scope-old .image-panel-preview { float: left; width: 65.95744680199999%; margin-left: 2.127659574%; } -.image-panel-preview { +.admin__scope-old .image-panel-preview { margin-left: 0; } -.image-panel-controls { +.admin__scope-old .image-panel-controls { width: 29.914893614%; padding: 28px 1% 0 1%; } -.image-panel-controls .image-name { +.admin__scope-old .image-panel-controls .image-name { display: block; margin: 0 0 3px; color: #666; } -.image-file-params { +.admin__scope-old .image-file-params { margin: 0 0 10px 0; font-size: 11px; color: #666; } -.image-panel-controls .action-remove, -.image-panel-controls .action-remove:hover, -.image-panel-controls .action-remove:active, -.image-panel-controls .action-remove:focus, -.image-panel-controls .action-remove[disabled] { +.admin__scope-old .image-panel-controls .action-remove, +.admin__scope-old .image-panel-controls .action-remove:hover, +.admin__scope-old .image-panel-controls .action-remove:active, +.admin__scope-old .image-panel-controls .action-remove:focus, +.admin__scope-old .image-panel-controls .action-remove[disabled] { color: #a29c94; font: 12px/1.333 Arial, Verdana, sans-serif; text-decoration: underline; margin: 0 0 46px 0; } -.image-panel-controls .fieldset-image-panel { +.admin__scope-old .image-panel-controls .fieldset-image-panel { padding: 0 5px 0 0; } -.image-panel-controls .fieldset-image-panel .field { +.admin__scope-old .image-panel-controls .fieldset-image-panel .field { margin-bottom: 30px; } -.image-panel-controls .fieldset-image-panel .label { +.admin__scope-old .image-panel-controls .fieldset-image-panel .label { width: 100%; text-align: left; margin-bottom: 10px; padding-top: 0; } -.image-panel-controls .fieldset-image-panel .field > .control, -.image-panel-controls textarea { +.admin__scope-old .image-panel-controls .fieldset-image-panel .field > .control, +.admin__scope-old .image-panel-controls textarea { width: 100%; resize: vertical; } -.image-panel-preview img { +.admin__scope-old .image-panel-preview img { width: 100%; } -.image-panel .action-close { +.admin__scope-old .image-panel .action-close { position: absolute; top: 15px; right: 15px; } -.image-panel .action-close:before { +.admin__scope-old .image-panel .action-close:before { font-family: 'MUI-Icons'; font-style: normal; speak: none; @@ -371,105 +357,105 @@ color: #bbb; } -.image-panel .action-close span { +.admin__scope-old .image-panel .action-close span { display: none; } /* action in fieldset wrapper */ -#group-fields-product-details-wrapper .attribute-selector { +.admin__scope-old #group-fields-product-details-wrapper .attribute-selector { visibility: hidden; } -#group-fields-product-details-wrapper.opened .attribute-selector { +.admin__scope-old #group-fields-product-details-wrapper.opened .attribute-selector { visibility: visible; } -.action-manage-images { +.admin__scope-old .action-manage-images { font: 11px/1.666 Arial, Verdana, sans-serif; color: #a29c94; text-decoration: underline; } /* Quantity filed on product */ -.field-quantity_and_stock_status input[type="text"], -.field-weight .control .field:first-child { +.admin__scope-old .field-quantity_and_stock_status input[type="text"], +.admin__scope-old .field-weight .control .field:first-child { width: 140px; margin-right: 15px; } -.field-quantity_and_stock_status select { +.admin__scope-old .field-quantity_and_stock_status select { vertical-align: middle; } /* Weight field */ -.field-weight .control { +.admin__scope-old .field-weight .control { display: table; width: 100%; } -.field-weight .control .field:first-child .control { +.admin__scope-old .field-weight .control .field:first-child .control { width: 100%; } -.field-weight .choice { +.admin__scope-old .field-weight .choice { padding-top: 3px; } -.field-weight .choice input { +.admin__scope-old .field-weight .choice input { margin-right: 5px; vertical-align: bottom; } -.field-price .addon > input { +.admin__scope-old .field-price .addon > input { width: 99px; float: left; } /* Validation for Product Fields with addons */ -.field-price .control, -.field-special_price .control, -.field-msrp .control, -.field-weight .control, -.field-quantity_and_stock_status .control { +.admin__scope-old .field-price .control, +.admin__scope-old .field-special_price .control, +.admin__scope-old .field-msrp .control, +.admin__scope-old .field-weight .control, +.admin__scope-old .field-quantity_and_stock_status .control { position: relative; } -.field-price label.mage-error, -.field-special_price label.mage-error, -.field-msrp label.mage-error, -.field-weight label.mage-error, -.field-quantity_and_stock_status label.mage-error { +.admin__scope-old .field-price label.mage-error, +.admin__scope-old .field-special_price label.mage-error, +.admin__scope-old .field-msrp label.mage-error, +.admin__scope-old .field-weight label.mage-error, +.admin__scope-old .field-quantity_and_stock_status label.mage-error { position: static; } /* Change Attribute Set */ -#product_info_tabs li.removed, -div.removed, -.field.removed { +.admin__scope-old #product_info_tabs li.removed, +.admin__scope-old div.removed, +.admin__scope-old .field.removed { display: none !important; } /* Custom Options -------------------------------------- */ -#product_options_container_top .field-option-title { +.admin__scope-old #product_options_container_top .field-option-title { width: 500px; } -#product_options_container_top .field-option-input-type { +.admin__scope-old #product_options_container_top .field-option-input-type { width: 170px; } -#product_options_container_top .col-draggable .draggable-handle { +.admin__scope-old #product_options_container_top .col-draggable .draggable-handle { top: 7px; } -#product_options_container_top .col-name, -#product_options_container_top .col-sku { +.admin__scope-old #product_options_container_top .col-name, +.admin__scope-old #product_options_container_top .col-sku { width: 38%; } -#product_options_container_top .add-select-row ~ label.mage-error { +.admin__scope-old #product_options_container_top .add-select-row ~ label.mage-error { display: block; margin: 5px 0 0; } @@ -477,17 +463,17 @@ div.removed, /* Tier Price Table -------------------------------------- */ -.tiers_table .col-qty { +.admin__scope-old .tiers_table .col-qty { text-align: left; width: 150px; } -.tiers_table .col-qty > input[type="text"] { +.admin__scope-old .tiers_table .col-qty > input[type="text"] { width: 40%; margin-right: 5px; } -.tiers_table .col-qty > .nobr { +.admin__scope-old .tiers_table .col-qty > .nobr { width: 50%; float: right; margin-top: 6px; @@ -495,38 +481,38 @@ div.removed, overflow: hidden; } -.tiers_table .col-price { +.admin__scope-old .tiers_table .col-price { width: 16%; } -.new-variation-set { +.admin__scope-old .new-variation-set { margin-left: 2.127659574%; } -.not-applicable-attribute { +.admin__scope-old .not-applicable-attribute { display: none; } -.attribute-selector { +.admin__scope-old .attribute-selector { margin: -3px -4px 0 0; } -.attribute-selector .dropdown-menu { +.admin__scope-old .attribute-selector .dropdown-menu { left: auto; right: 0; } -.attribute-selector .action-choose { +.admin__scope-old .attribute-selector .action-choose { margin: 0; } -.attribute-selector .mage-suggest-dropdown > ul { +.admin__scope-old .attribute-selector .mage-suggest-dropdown > ul { position: relative; max-height: 200px; overflow: auto; z-index: 1; } -.attribute-selector .dropdown-menu .actions { +.admin__scope-old .attribute-selector .dropdown-menu .actions { padding: 14px 12px; } diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/options/type/date.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/options/type/date.phtml index abebf09f2cd8024912fa68afcdc80c92cd566aff..5b98a739879f007b2510650842ba8f2061897f89 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/options/type/date.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/options/type/date.phtml @@ -12,37 +12,38 @@ <?php $class = ($_option->getIsRequire()) ? ' required' : ''; ?> <div class="field date<?php echo $class; ?>" data-mage-init='{"priceOptionDate":{"fromSelector":"#product_addtocart_form"}}'> - <label class="label"> - <span><?php echo $block->escapeHtml($_option->getTitle()) ?></span> - <?php echo $block->getFormatedPrice() ?> - </label> - <div class="control"> - <?php if ($_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE_TIME - || $_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE): ?> + <fieldset class="fieldset fieldset-product-options-inner<?php echo $class; ?>"> + <legend class="legend"> + <span><?php echo $block->escapeHtml($_option->getTitle()) ?></span> + <?php echo $block->getFormatedPrice() ?> + </legend> + <div class="control"> + <?php if ($_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE_TIME + || $_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE): ?> - <?php echo $block->getDateHtml() ?> + <?php echo $block->getDateHtml() ?> - <?php endif; ?> + <?php endif; ?> - <?php if ($_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE_TIME - || $_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_TIME): ?> - <span class="time-picker"><?php echo $block->getTimeHtml() ?></span> - <?php endif; ?> + <?php if ($_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE_TIME + || $_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_TIME): ?> + <span class="time-picker"><?php echo $block->getTimeHtml() ?></span> + <?php endif; ?> - <?php if ($_option->getIsRequire()): ?> - <input type="hidden" - name="validate_datetime_<?php echo $_optionId ?>" - class="validate-datetime-<?php echo $_optionId ?>" - value="" - data-validate="{'validate-required-datetime':<?php echo $_optionId?>}"/> - <?php else: ?> - <input type="hidden" - name="validate_datetime_<?php echo $_optionId ?>" - class="validate-datetime-<?php echo $_optionId ?>" - value="" - data-validate="{'validate-optional-datetime':<?php echo $_optionId?>}"/> - <?php endif; ?> - <script type="text/x-magento-init"> + <?php if ($_option->getIsRequire()): ?> + <input type="hidden" + name="validate_datetime_<?php echo $_optionId ?>" + class="validate-datetime-<?php echo $_optionId ?>" + value="" + data-validate="{'validate-required-datetime':<?php echo $_optionId?>}"/> + <?php else: ?> + <input type="hidden" + name="validate_datetime_<?php echo $_optionId ?>" + class="validate-datetime-<?php echo $_optionId ?>" + value="" + data-validate="{'validate-optional-datetime':<?php echo $_optionId?>}"/> + <?php endif; ?> + <script type="text/x-magento-init"> { "#product_addtocart_form": { "validation": { @@ -51,5 +52,7 @@ } } </script> - </div> + </div> + </fieldset> + </div> diff --git a/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php b/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php index 60ddd32007c278a4cf5f0d497d5b65c7ad3002d9..60c9971f2da7be9f2501f0e8ff1ece128fa045ca 100644 --- a/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php +++ b/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php @@ -196,7 +196,6 @@ class Main extends Generic implements TabInterface 'name' => 'from_date', 'label' => __('From Date'), 'title' => __('From Date'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'input_format' => \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT, 'date_format' => $dateFormat ] @@ -208,7 +207,6 @@ class Main extends Generic implements TabInterface 'name' => 'to_date', 'label' => __('To Date'), 'title' => __('To Date'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'input_format' => \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT, 'date_format' => $dateFormat ] diff --git a/app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php b/app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php index 0e12b799444cd796892dfcf5f1892e780e368532..e8769676429606f1f06833cdc1d210ede3da9731 100644 --- a/app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php +++ b/app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php @@ -125,7 +125,6 @@ class Design extends \Magento\Backend\Block\Widget\Form\Generic implements [ 'name' => 'custom_theme_from', 'label' => __('Custom Design From'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'date_format' => $dateFormat, 'disabled' => $isElementDisabled, 'class' => 'validate-date validate-date-range date-range-custom_theme-from' @@ -138,7 +137,6 @@ class Design extends \Magento\Backend\Block\Widget\Form\Generic implements [ 'name' => 'custom_theme_to', 'label' => __('Custom Design To'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'date_format' => $dateFormat, 'disabled' => $isElementDisabled, 'class' => 'validate-date validate-date-range date-range-custom_theme-to' diff --git a/app/code/Magento/Config/view/adminhtml/templates/system/config/tabs.phtml b/app/code/Magento/Config/view/adminhtml/templates/system/config/tabs.phtml index b9f4c6838806ac12ab05b9363a8dde97efaa7456..d954aedfeb2270a6370a501d98c43c85f5e8ee96 100644 --- a/app/code/Magento/Config/view/adminhtml/templates/system/config/tabs.phtml +++ b/app/code/Magento/Config/view/adminhtml/templates/system/config/tabs.phtml @@ -8,35 +8,57 @@ /** @var $block \Magento\Config\Block\System\Config\Tabs */ ?> -<?php if ($block->getTitle()): ?> - <h3><?php echo $block->getTitle() ?></h3> -<?php endif ?> + <?php if ($block->getTabs()): ?> -<ul id="<?php echo $block->getId() ?>" class="config-nav"> - <?php - /** @var $_tab \Magento\Config\Model\Config\Structure\Element\Tab */ - foreach ($block->getTabs() as $_tab): - ?> - <li class="config-nav-block <?php if ($_tab->getClass()): ?><?php echo $_tab->getClass() ?><?php endif ?>"> - <h4 class="title"><?php echo $_tab->getLabel() ?></h4> - <ul class="items"> - <?php $_iterator = 1; ?> + <div id="<?php echo $block->getId() ?>" class="config-nav"> + <?php + /** @var $_tab \Magento\Config\Model\Config\Structure\Element\Tab */ + foreach ($block->getTabs() as $_tab): + ?> + + <?php + $activeCollapsible = false; + foreach ($_tab->getChildren() as $_section) { + if ($block->isSectionActive($_section)) { + $activeCollapsible = true; + } + } + ?> + + <div class="config-nav-block admin__page-nav _collapsed + <?php if ($_tab->getClass()): ?> + <?php echo $_tab->getClass() ?> + <?php endif ?>" + data-mage-init='{"collapsible":{"active": "<?php echo $activeCollapsible;?>", + "openedState": "_show", + "closedState": "_hide", + "collapsible": true, + "animate": 200}}'> + <div class="admin__page-nav-title title _collapsible" data-role="title"> + <strong><?php echo $_tab->getLabel() ?></strong> + </div> + + <ul class="admin__page-nav-items items" data-role="content"> + <?php $_iterator = 1; ?> + <?php + /** @var $_section \Magento\Config\Model\Config\Structure\Element\Section */ + foreach ($_tab->getChildren() as $_section): ?> + <li class="admin__page-nav-item item + <?php echo $_section->getClass() ?> + <?php if ($block->isSectionActive($_section)): ?> _active<?php endif ?> + <?php echo $_tab->getChildren()->isLast($_section) ? ' _last' : '' ?>"> + <a href="<?php echo $block->getSectionUrl($_section) ?>" + class="admin__page-nav-link item-nav"> + <span><?php echo $_section->getLabel() ?></span> + </a> + </li> + <?php $_iterator++; ?> + <?php endforeach; ?> + </ul> + + </div> <?php - /** @var $_section \Magento\Config\Model\Config\Structure\Element\Section */ - foreach ($_tab->getChildren() as $_section): ?> - <li class="item"> - <a href="<?php echo $block->getSectionUrl($_section) ?>" class="item-nav <?php echo $_section->getClass() ?><?php if ($block->isSectionActive($_section)): ?> active<?php endif ?> <?php echo $_tab->getChildren()->isLast($_section) ? 'last' : '' ?>"> - <span> - <?php echo $_section->getLabel() ?> - </span> - </a> - </li> - <?php $_iterator++; ?> - <?php endforeach; ?> - </ul> - </li> - <?php - endforeach; - ?> -</ul> + endforeach; + ?> + </div> <?php endif; ?> diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/form.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/form.phtml index bb0c462574f1a28c850ba3880559e7e135b16f8b..a9c558ad9ce46d7fd7eb30e408d2774eae5de2e2 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/form.phtml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/form.phtml @@ -11,41 +11,42 @@ <div id="<?php echo $block->getNameInLayout() ?>" style="display: none" data-role="dialog" data-id="affected-attribute-set-selector"> <form action=""> - <div class="messages admin__scope"> + <div class="messages"> <div class="message message-notice notice"> <div><?php echo __("Attribute set comprising all selected configurable attributes need to be in order to save generated variations.") ?></div> </div> <div class="message message-error error" style="display: none"></div> </div> - - <fieldset class="fieldset"> - <div class="field" id="affected-attribute-set-current-container" data-role="container" data-id="current-attribute-set"> - <div class="control"> - <input type="radio" id="affected-attribute-set-current" name="affected-attribute-set" value="current" checked="checked" /> - <label class="label" for="affected-attribute-set-current"> - <span><?php echo __('Add configurable attributes to the current set ("<span data-role="name-container">%1</span>")', $block->getLayout()->getBlock('product_edit')->getAttributeSetName())?></span> - </label> + <div class="admin__scope-old"> + <fieldset class="fieldset"> + <div class="field" id="affected-attribute-set-current-container" data-role="container" data-id="current-attribute-set"> + <div class="control"> + <input type="radio" id="affected-attribute-set-current" name="affected-attribute-set" value="current" checked="checked" /> + <label class="label" for="affected-attribute-set-current"> + <span><?php echo __('Add configurable attributes to the current set ("<span data-role="name-container">%1</span>")', $block->getLayout()->getBlock('product_edit')->getAttributeSetName())?></span> + </label> + </div> </div> - </div> - <div class="field" id="affected-attribute-set-new-container"> - <div class="control"> - <input type="radio" id="affected-attribute-set-new" name="affected-attribute-set" value="new" /> - <label class="label" for="affected-attribute-set-new"> - <span><?php echo __('Add configurable attributes to the new set based on current')?></span> - </label> + <div class="field" id="affected-attribute-set-new-container"> + <div class="control"> + <input type="radio" id="affected-attribute-set-new" name="affected-attribute-set" value="new" /> + <label class="label" for="affected-attribute-set-new"> + <span><?php echo __('Add configurable attributes to the new set based on current')?></span> + </label> + </div> </div> - </div> - <div class="field required" id="affected-attribute-set-new-name-container" style="display: none"> - <label class="label" for="new-attribute-set-name"> - <span><?php echo __('New attribute set name')?></span> - </label> + <div class="field required" id="affected-attribute-set-new-name-container" style="display: none"> + <label class="label" for="new-attribute-set-name"> + <span><?php echo __('New attribute set name')?></span> + </label> - <div class="control"> - <input id="new-attribute-set-name" name="new-attribute-set-name" type="text" class="input-text required-entry validate-no-html-tags" /> + <div class="control"> + <input id="new-attribute-set-name" name="new-attribute-set-name" type="text" class="input-text required-entry validate-no-html-tags" /> + </div> </div> - </div> - </fieldset> + </fieldset> + </div> </form> </div> diff --git a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/GenericMetadata.php b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/GenericMetadata.php index c973d31e694379f8ac85a7fcf64fdd3a6c648ca6..bdde7fbe8093a7f222e47e1bdde3c85bc03c09f1 100644 --- a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/GenericMetadata.php +++ b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/GenericMetadata.php @@ -98,7 +98,6 @@ class GenericMetadata extends \Magento\Backend\Block\Widget\Form\Generic $element->setCanBeEmpty(true); break; case 'date': - $element->setImage($this->getViewFileUrl('images/grid-cal.png')); $element->setDateFormat($this->_localeDate->getDateFormatWithLongYear()); break; case 'multiline': diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_edit.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_edit.xml index 9d50ae75e0676730ce20e3950d0b01b1d80a35e2..12fa054b6398b5714ecedc796294822336b22b03 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_edit.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_edit.xml @@ -7,6 +7,7 @@ --> <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"> <body> + <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way --> <referenceContainer name="content"> <ui_component name="customer_form" component="form" /> </referenceContainer> diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.eot b/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.eot deleted file mode 100644 index 78bd9fc51718fdebfb87534ceebcdca06a705ab2..0000000000000000000000000000000000000000 Binary files a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.eot and /dev/null differ diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.svg b/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.svg deleted file mode 100644 index fbbadbc71344636b5413b61e149de0c0f8a3063e..0000000000000000000000000000000000000000 --- a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg"><defs><font horiz-adv-x="512"><font-face units-per-em="512" ascent="480" descent="-32"/><glyph unicode="" d="M470.7 72.193l-2.688 2.688.006.008L360.505 182.41c14.938 25.73 23.612 55.563 23.816 87.45.63 97.615-77.98 177.243-175.593 177.857l-1.168.002c-97.06-.01-176.064-78.39-176.69-175.6-.62-97.61 78-177.24 175.597-177.86l1.155-.006c32.44 0 62.847 8.79 89 24.075L404.03 10.9l.015.01 2.688-2.69c8.125-8.122 21.293-8.113 29.41 0l34.562 34.558c8.114 8.117 8.117 21.292-.005 29.415zM300.39 177.58c-24.834-24.67-57.78-38.252-92.768-38.252h-.874c-72.59.467-131.27 59.908-130.813 132.503.465 72.13 59.516 130.817 131.626 130.82h.88c35.17-.22 68.15-14.124 92.857-39.15 24.704-25.03 38.184-58.18 37.964-93.355-.227-35.016-14.03-67.894-38.87-92.564zM128.503 287.997H287.5v-31.794H128.504z"/><glyph unicode="î€" d="M470.7 72.193l-2.688 2.688.006.008L360.505 182.41c14.938 25.73 23.612 55.563 23.816 87.45.63 97.615-77.98 177.243-175.593 177.857l-1.168.002c-97.06-.01-176.064-78.39-176.69-175.6-.62-97.61 78-177.24 175.597-177.86l1.155-.006c32.44 0 62.847 8.79 89 24.075L404.03 10.9l.015.01 2.688-2.69c8.125-8.122 21.293-8.113 29.41 0l34.562 34.558c8.114 8.117 8.117 21.292-.005 29.415zM300.39 177.58c-24.834-24.67-57.78-38.252-92.768-38.252h-.874c-72.59.467-131.27 59.908-130.813 132.503.465 72.13 59.516 130.817 131.626 130.82h.88c35.17-.22 68.15-14.124 92.857-39.15 24.704-25.03 38.184-58.18 37.964-93.355-.227-35.016-14.03-67.894-38.87-92.564zm-76.488 174.017h-31.798v-63.6h-63.6v-31.794h63.6v-63.6h31.798v63.6h63.6v31.794h-63.6z"/><glyph unicode="" d="M466.996 351.685c-3.893 12.27-9.538 21.313-21.31 21.313 0 0-80.18 11-189.35 11-109.17 0-188.678-11-188.678-11-11.77 0-16.89-8.316-21.313-21.313 0 0-13.67-31.687-13.67-127.685s13.67-131.685 13.67-131.685c5.282-11.107 9.543-21.313 21.313-21.313 0 0 92.343-7 188.34-7s189.688 9 189.688 9c11.77 0 18.218 10.248 21.31 21.313 0 0 13 49.185 13 129.185s-13 128.185-13 128.185zM192.002 134.882v178.236L346.358 224l-154.356-89.118z"/><glyph unicode="" d="M259.56 206.27L198.73 29.53c18.165-5.344 37.372-8.263 57.27-8.263 23.607 0 46.25 4.077 67.32 11.492-.54.863-1.04 1.79-1.45 2.79l-62.31 170.72zm133.295 27.96c0 25.063-9.006 42.405-16.72 55.905-10.272 16.708-19.91 30.844-19.91 47.55 0 18.63 14.13 35.98 34.044 35.98.89 0 1.75-.108 2.62-.165-36.065 33.048-84.12 53.225-136.897 53.225-70.82 0-133.128-36.34-169.375-91.37 4.757-.153 9.24-.244 13.044-.244 21.196 0 54.027 2.58 54.027 2.58 10.93.64 12.213-15.414 1.3-16.705 0 0-10.985-1.28-23.198-1.93l73.816-219.59 44.372 133.05-31.584 86.543c-10.92.645-21.266 1.926-21.266 1.926-10.927.647-9.646 17.348 1.288 16.708 0 0 33.47-2.575 53.39-2.575 21.2 0 54.03 2.577 54.03 2.577 10.93.64 12.218-15.413 1.298-16.706 0 0-11-1.28-23.202-1.926L357.2 101.14l20.23 67.56c8.75 28.05 15.424 48.183 15.424 65.533zM357.918 48.78c60.27 35.14 100.803 100.438 100.803 175.227 0 35.246-9 68.38-24.83 97.254.877-6.45 1.37-13.38 1.37-20.84 0-20.564-3.853-43.69-15.415-72.61L357.92 48.78zM53.28 224.007c0-80.24 46.624-149.592 114.26-182.448L70.833 306.51C59.58 281.297 53.28 253.396 53.28 224.006zM255.996-19.985c-134.53 0-243.98 109.457-243.98 243.993 0 134.527 109.448 243.978 243.98 243.978 134.528 0 243.988-109.45 243.988-243.978.002-134.536-109.458-243.993-243.988-243.993z"/><glyph unicode="" d="M511.998 192.1H224.002V7.49l287.996-39.5zm-319.996 0H-.012V39.67l192.014-29.254zm0 214.568L-.012 377.284V223.598h192.014zm319.996-183.07V447.5l-287.996-38.037V223.598z"/><glyph unicode="" d="M206.57 224.042c-23.638 12.147-46.616 18.31-68.314 18.31-2.95 0-5.92-.088-8.892-.35-27.686-2.292-52.974-9.595-69.24-15.273-4.313-1.59-8.735-3.26-13.29-5.11L2.33 67.34C32.9 78.66 59.948 84.16 84.71 84.16c40.053 0 69.127-14.966 93.14-30.373 11.375 38.604 38.666 131.833 46.81 159.694-5.922 3.61-11.93 7.22-18.09 10.567zm57.53-39.218L219.288 29.18c13.294-7.615 58.017-31.732 92.26-31.732 27.64 0 58.587 7.082 94.546 21.695l42.786 149.614c-29.05-9.375-56.915-14.13-82.97-14.13-47.54 0-80.814 15.408-101.81 30.197zm-116.69 110.13c38.207-.396 66.463-14.967 89.88-29.976l45.955 157.227c-9.685 5.547-35.08 19.37-53.438 24.08-12.082 2.815-24.782 4.268-38.25 4.268-25.664-.483-53.702-6.91-85.658-19.72L62.08 276.95c32.11 12.106 59.773 18.004 85.26 18.004h.067zm362.26 84.555c-29.14-11.32-57.576-17.08-84.736-17.08-45.426 0-78.922 15.754-100.623 30.9l-45.55-157.67c30.593-19.674 63.56-29.668 98.16-29.668 28.214 0 57.44 6.776 86.932 20.158l-.09 1.104 1.85.438 44.06 151.82z"/><glyph unicode="" d="M497.573 54.108l-229.14 386.526c-2.945 5.237-8.634 8.138-14.595 7.183-4.403-.7-8.153-3.41-10.27-7.183L14.43 54.108c-2.513-4.467-2.517-10.2 0-14.646 2.554-4.506 7.278-7.46 12.424-7.46h458.294c5.135 0 9.876 2.954 12.428 7.46 2.513 4.447 2.513 10.18 0 14.646zM61.17 64.148L256 395.106 450.557 64.15H61.17zm196.08 74.706c-13.654 0-24.723-11.32-24.723-25.29 0-13.97 11.068-25.29 24.724-25.29s24.73 11.32 24.73 25.29c0 13.97-11.07 25.29-24.724 25.29zm-17.415 21.148h32.858l7.118 159.996h-47.08z"/><glyph unicode="" d="M428.26 271.336H263.47s12.624 48.42 17.182 81.404c4.653 33.547-5.064 60.663-5.064 60.663s-16.546 42.303-21.052 44.116c-27.224 10.973-41.333-4.31-41.333-4.31v-71.32c0-7.92-1.445-13.6-1.445-13.6s-68.23-106.35-76.18-114.115C127.624 246.4 96.15 232.06 96.15 232.06V39.104c1.95-3.057 33.04 1.104 33.835-5.85C130.77 26.31 165.415 0 165.415 0h181.95s49.9 8.94 54.986 20.782c8.718 20.29-2.08 33.68-1.722 39.29.357 5.61 27.64 9.5 27.64 33.52 3.61 29.286-14.392 27.272-13.422 34.07.98 6.802 22.258 9.204 26.38 24.718 3.155 11.947 5.866 34.635-12.967 44.708 62.075 21.467 29.89 74.248.006 74.248z"/><glyph unicode="" d="M428.26 250.91c18.83 10.072 16.122 32.76 12.968 44.708-4.123 15.515-25.402 17.917-26.38 24.717-.973 6.8 17.033 4.783 13.42 34.07 0 24.022-27.28 27.91-27.635 33.52-.354 5.61 10.437 19.003 1.725 39.29-5.087 11.844-36.612 20.782-54.987 20.782H165.42s-34.638-26.308-35.43-33.25c-.793-6.955-31.88-2.792-33.83-5.85V215.933s31.474-14.338 39.428-22.117c7.948-7.764 76.183-114.11 76.183-114.11s1.44-5.685 1.44-13.6v-71.32s14.11-15.284 41.338-4.308c4.508 1.814 21.053 44.117 21.053 44.117s9.718 27.115 5.067 60.66c-4.56 32.984-17.187 81.404-17.187 81.404h164.79c29.873 0 62.06 52.78-.01 74.25z"/><glyph unicode="" d="M479.194 328.27C454.002 186.355 313.236 66.175 270.897 38.718c-42.348-27.455-80.973 10.994-94.983 40.054C159.88 111.938 111.81 291.64 99.23 306.537c-12.584 14.866-50.353-14.896-50.353-14.896L30.56 315.66s76.695 91.58 135.047 103.026c61.872 12.14 61.78-95.006 76.663-154.485 14.39-57.54 24.063-90.47 36.626-90.47 12.59 0 36.636 32.1 62.947 81.29 26.363 49.24-1.14 92.74-52.65 61.79 20.61 123.63 215.182 153.356 190 11.465z"/><glyph unicode="" d="M352.264 277.06V170.946L480 95.496v256L352.264 277.06zm-52.695 74.437H53.982c-11.77 0-21.313-9.542-21.313-21.313v-212.87c0-11.77 9.544-21.312 21.314-21.312h245.58c11.772 0 21.31 9.537 21.31 21.313v212.87c-.002 11.77-9.537 21.312-21.31 21.312"/><glyph unicode="" d="M412.316 125.95c-20.918 8.812-76.904 30.87-82.86 32.494-7.106 4.888-14.07 21.15-17.876 29.236-3.79.544-7.574 1.087-11.377 1.624.586 12.514 8.334 13.182 11.377 22.742 2.676 8.432.28 19.387 4.527 27.197 2.945 5.422 9.617 5.457 12.95 10.104 3.02 4.216 5.015 11.567 5.954 16.732 1.72 9.44 3.22 22.35-1.262 31.71-2.57 5.38-4.2 5.897-4.918 12.426-.868 7.914 2.33 33.72 2.466 39.3.326 14.477-.025 15.654-3.527 29.754 0 0-4.256 12.774-10.926 16.63l-13.295 2.3-8.22 7.615c-33.105 20.365-68.6 6.08-87.612-1.623-27.39-8.893-44.71-35.71-32.62-93.018 2.06-9.79-5.36-14.164-4.88-19.502 1.062-11.678 1.287-39.758 12.322-46.672 1.024-.642 8.854-2.605 8.803-2.068 1.085-11.375 2.167-22.754 3.247-34.125 2.756-7.553 9.366-8.383 11.288-19.063l-8.46-2.063c-3.8-8.08-10.77-24.34-17.874-29.23-5.955-1.624-61.94-23.683-82.86-32.495-19.05-8.035-34.544-21.346-34.544-47.36 0-26.013-.388-29.214-.058-45.957L447 31.713c0 17.816.058 33.316.058 46.878 0 23.55-15.69 39.328-34.742 47.36zm81.407 51.612c-11.002 4.635-40.446 16.237-43.58 17.09-3.738 2.57-7.4 11.125-9.402 15.377-1.99.28-3.98.57-5.98.85.31 6.58 4.386 6.932 5.986 11.96 1.408 4.433.148 10.2 2.383 14.304 1.55 2.85 5.057 2.87 6.81 5.313 1.587 2.22 2.638 6.084 3.13 8.8.9 4.966 1.69 11.76-.666 16.682-1.353 2.83-2.21 3.1-2.585 6.534-.46 4.163 1.224 17.735 1.296 20.67.172 7.615-.012 8.233-1.855 15.65 0 0-2.236 6.717-5.746 8.747l-6.99 1.207-4.322 4.007c-17.41 10.71-36.08 3.198-46.08-.854-14.402-4.676-23.513-18.78-17.152-48.922 1.085-5.148-2.82-7.45-2.566-10.257.56-6.14.677-20.91 6.48-24.546.54-.337 4.657-1.37 4.63-1.087l1.71-17.948c1.45-3.974 4.926-4.41 5.937-10.028l-4.45-1.084c-2-4.252-5.664-12.802-9.4-15.376-1.838-.5-12.73-4.7-23.644-9.022-2.174-.86 2.668-8.846 14.236-12.5 40.043-12.648 94.99-44.957 94.99-44.957l55.08-.175c0 9.37.03 17.52.03 24.654 0 12.385-8.252 20.68-18.273 24.91zm-475.448 0c11.002 4.635 40.447 16.237 43.58 17.09 3.74 2.57 7.4 11.125 9.403 15.377 1.993.28 3.983.57 5.983.85-.3 6.58-4.38 6.932-5.98 11.96-1.404 4.433-.144 10.2-2.38 14.304-1.55 2.85-5.06 2.87-6.81 5.313-1.59 2.22-2.64 6.084-3.132 8.8-.902 4.966-1.69 11.76.667 16.682 1.354 2.83 2.21 3.1 2.587 6.534.458 4.163-1.227 17.735-1.297 20.67-.172 7.615.012 8.233 1.855 15.65 0 0 2.237 6.717 5.746 8.747l6.994 1.207 4.32 4.007c17.414 10.71 36.083 3.198 46.082-.854 14.403-4.676 23.513-18.78 17.153-48.922-1.084-5.148 2.82-7.45 2.566-10.257-.56-6.14-.677-20.91-6.48-24.546-.54-.337-4.66-1.37-4.63-1.087l-1.71-17.948c-1.45-3.974-4.925-4.41-5.936-10.028l4.45-1.084c2-4.252 5.665-12.802 9.4-15.376 1.84-.5 12.73-4.7 23.644-9.022 2.173-.86-2.668-8.846-14.238-12.5-40.043-12.648-94.99-44.957-94.99-44.957L.03 128c0 9.37-.03 17.52-.03 24.654 0 12.383 8.25 20.68 18.27 24.908z"/><glyph unicode="" d="M461.996 351.998H50.002c-9.94 0-18-8.06-18-18V82.002c0-9.94 8.06-18 18-18h67.082s10.918 4.455 10.918 10.824v10.467c0 5.588-4.325 10.72-9.813 10.72h-11.67c-6.108 0-10.52 4.308-10.52 10.204v11.125s3.35 10.66 10.514 10.66h74.97c7.165 0 10.514-4.88 10.514-10.66v-11.125c0-5.896-4.41-10.203-10.514-10.203h-11.67c-5.488 0-9.813-5.133-9.813-10.72v-9.89c0-4.417 3.16-11.402 9.89-11.402H342.1c6.727 0 9.888 6.985 9.888 11.402v9.89c0 5.587-4.324 10.72-9.812 10.72h-11.67c-6.104 0-10.516 4.307-10.516 10.203v11.125s3.35 10.66 10.514 10.66h74.97c7.164 0 10.513-4.88 10.513-10.66v-11.125c0-5.896-4.41-10.203-10.515-10.203h-11.67c-5.49 0-9.814-5.133-9.814-10.72v-10.47c0-6.37 4.374-10.823 10.92-10.823H462c9.94 0 18 8.06 18 18v252c-.004 9.94-8.062 18-18.004 18zm-239.2-191.137H215.2c0 6.54.02 12.248.02 17.247 0 8.832-5.884 14.75-13.03 17.763-7.847 3.306-28.845 11.58-31.08 12.187-2.666 1.834-5.28 7.935-6.705 10.968-1.42.204-2.84.408-4.267.608.22 4.694 3.126 4.948 4.267 8.533 1.003 3.162.104 7.27 1.698 10.2 1.105 2.035 3.607 2.048 4.858 3.79 1.137 1.583 1.887 4.34 2.238 6.278.645 3.54 1.208 8.385-.474 11.897-.965 2.02-1.576 2.21-1.846 4.66-.325 2.97.875 12.65.926 14.744.12 5.43-.01 5.87-1.325 11.16 0 0-1.597 4.79-4.1 6.237l-4.986.86-3.08 2.856c-12.417 7.638-25.73 2.28-32.863-.608-10.27-3.336-16.77-13.396-12.233-34.89.774-3.672-2.01-5.313-1.83-7.315.398-4.38.483-14.914 4.623-17.507.38-.24 3.32-.976 3.3-.775l1.22-12.8c1.03-2.83 3.51-3.142 4.23-7.147l-3.173-.774c-1.427-3.034-4.04-9.13-6.706-10.97-2.23-.607-23.23-8.88-31.08-12.187-7.143-3.014-12.954-8.007-12.954-17.763 0-9.76-.145-10.96-.022-17.24h.818-7.48V319.5H222.8V160.86zm225.2 31.147H256.002V212.9h191.994v-20.897zm0 42.83H256.002v20.895h191.994v-20.9zm0 53.577H256.002v31.09h191.994v-31.09z"/><glyph unicode="î€" d="M341.438 405.093c4.086-16.444 4.494-17.816 4.115-34.7-.157-6.507-3.89-36.603-2.878-45.832.838-7.61 2.737-8.21 5.736-14.49 5.23-10.913 3.48-25.972 1.48-36.982-1.09-6.023-3.42-14.597-6.94-19.514-3.886-5.42-11.666-5.46-15.102-11.782-4.955-9.107-2.16-21.883-5.28-31.716-3.55-11.15-12.585-11.927-13.267-26.52 4.435-.626 8.848-1.26 13.267-1.895 4.44-9.43 12.56-28.395 20.848-34.095 6.947-1.896 72.236-27.62 96.633-37.898 22.216-9.37 40.514-27.77 40.514-55.23 0-15.815-.07-33.89-.07-54.667L31.608.834c-.385 19.527.067 23.26.067 53.6 0 30.334 18.068 45.857 40.284 55.23 24.395 10.275 89.687 36 96.63 37.894 8.285 5.704 16.41 24.662 20.846 34.09l9.865 2.406c-2.24 12.454-9.95 13.423-13.162 22.23-1.26 13.26-2.52 26.53-3.787 39.795.06-.626-9.07 1.665-10.266 2.413-12.87 8.062-13.13 40.81-14.37 54.428-.564 6.226 8.095 11.328 5.69 22.744-14.104 66.83 6.096 98.106 38.036 108.477 22.17 8.985 63.56 25.643 102.17 1.894l9.58-8.88 15.505-2.672c7.778-4.5 12.738-19.395 12.738-19.395"/><glyph unicode="" d="M388.92 302.163c-7.027 0-13.91-.61-20.617-1.732-16.737 54.69-68.557 94.56-129.936 94.56-74.92 0-135.636-59.366-135.636-132.605 0-6.533.51-12.955 1.45-19.246-3.595.412-7.23.69-10.933.69-50.938 0-92.237-40.385-92.237-90.17 0-49.81 41.3-90.172 92.236-90.172h130.76v64.52h-56.678l89.248 117.308L345.82 128.01H288V63.49h100.92c67.426 0 122.07 53.43 122.07 119.34.002 65.91-54.642 119.34-122.07 119.34z"/><glyph unicode="î€" d="M384 256L256 384 128 256h256zm-256-96L256 32l128 128H128z"/><glyph unicode="î€" d="M202.56 278.828l-55.69 55.69c28.067 27.735 66.522 44.82 109.13 44.82 42.995-.015 81.617-17.334 109.84-45.497C394 305.63 411.32 267 411.334 224h67.54C478.85 347.108 379.1 446.858 256 446.88c-61.13 0-116.63-24.702-156.896-64.598L47.707 433.68l.003-154.852h154.85zm163.848-164.053c-28.175-28.492-67.166-46.114-110.41-46.105-43.006.008-81.624 17.33-109.84 45.492-28.173 28.214-45.483 66.832-45.5 109.832H33.126C33.144 100.894 132.893 1.148 256 1.12c61.782.008 117.81 25.24 158.172 65.894l50.007-50.01V168.1h-151.1l53.322-53.325z"/><glyph unicode="" d="M402.127 224H199.585l-.003 72.49c0 28.3-10.74 54.276-28.52 73.284-17.707 19.012-43.015 31.258-70.918 31.235-27.905.02-53.21-12.23-70.917-31.24C11.442 350.765.707 324.79.705 296.49v-73.396h51.88v11.458L22.26 264.875h30.322v31.613c0 15.106 5.712 28.41 14.524 37.845 8.897 9.432 20.35 14.772 33.035 14.793 12.69-.02 24.13-5.36 33.03-14.793 8.826-9.436 15.44-22.738 15.43-37.845v-72.49h-38.73c-7.66 0-13.864-6.206-13.864-13.865v-164.2c0-7.66 6.21-13.868 13.87-13.868H402.13c7.664 0 13.87 6.21 13.87 13.87V210.13c0 7.66-6.205 13.867-13.87 13.867z"/><glyph unicode="" d="M224 92.186V-32L32 160l192 192V225.088C447.375 219.848 437.794 376.984 380.93 480 521.286 328.293 491.48 85.215 224 92.186z"/><glyph unicode="" d="M79.536 313.536c26.688 0 48.317 21.62 48.317 48.307 0 26.688-21.633 48.308-48.317 48.308-26.688 0-48.32-21.62-48.32-48.302s21.633-48.307 48.32-48.307zm1.096-40.14c-26.688 0-48.32-21.632-48.32-48.306 0-26.688 21.633-48.32 48.32-48.32 26.66 0 48.294 21.633 48.294 48.32 0 26.674-21.633 48.307-48.294 48.307zM79.536 134.49c-26.688 0-48.32-21.633-48.32-48.32s21.633-48.32 48.32-48.32 48.317 21.635 48.317 48.32c.003 26.687-21.63 48.32-48.317 48.32zM479.93 401.18H179.733v-82.19H479.93v82.19zM179.733 44.587h301.05v83.06h-301.05v-83.06zm0 219.96V181.5h301.05v83.046h-301.05z"/><glyph unicode="" d="M512 382.79c-18.84-8.353-39.082-14-60.33-16.54 21.686 13 38.343 33.586 46.186 58.116-20.298-12.04-42.778-20.78-66.705-25.49-19.16 20.415-46.46 33.17-76.67 33.17-58.01 0-105.04-47.03-105.04-105.04 0-8.232.93-16.25 2.72-23.938-87.3 4.382-164.7 46.2-216.51 109.753-9.04-15.51-14.223-33.552-14.223-52.803 0-36.444 18.544-68.596 46.73-87.433-17.22.546-33.417 5.27-47.577 13.14-.01-.44-.01-.88-.01-1.32 0-50.896 36.207-93.35 84.26-103-8.813-2.4-18.095-3.688-27.675-3.688-6.768 0-13.348.66-19.763 1.888 13.368-41.73 52.16-72.103 98.126-72.948-35.952-28.176-81.245-44.97-130.46-44.97-8.48 0-16.84.497-25.058 1.47C46.485 33.35 101.7 15.96 161.02 15.96c193.212 0 298.87 160.062 298.87 298.87 0 4.555-.105 9.085-.306 13.59 20.53 14.81 38.34 33.31 52.42 54.374z"/><glyph unicode="" d="M442.164 448.415l-141.79-.003L34.384 183.81 218.37-.184l261.464 261.466v149.463l-37.67 37.67zm-10.332-101.682c-14.828-14.833-38.88-14.833-53.71 0-14.833 14.827-14.833 38.876 0 53.707 14.827 14.84 38.882 14.84 53.71.004 14.832-14.834 14.833-38.885 0-53.71"/><glyph unicode="" d="M63.5 416.5h385v-385h-385v385z"/><glyph unicode="" d="M256.004 377.987l47.684-99.43c4.326-9.02 12.865-15.29 22.768-16.72l91.258-13.162-64.933-67.07c-6.17-6.375-9.2-15.157-8.28-23.983l10.296-98.526-82.57 52.256c-4.8 3.038-10.362 4.65-16.043 4.65h-.304l.13 261.985m.002 69.374L181.27 291.53 31.9 271.08l105.77-110.34L120.895.83 255.87 86.003h.305L391.06.64l-16.726 160.1 105.77 109.25-149.367 21.54-74.73 155.83z"/><glyph unicode="" d="M256.004 377.987l47.684-99.43c4.326-9.02 12.865-15.29 22.768-16.72l91.258-13.162-64.933-67.07c-6.17-6.375-9.2-15.157-8.28-23.983l10.296-98.526-82.57 52.256c-4.8 3.038-10.362 4.65-16.043 4.65h-.304c-5.668 0-11.22-1.605-16.01-4.63L157.182 59.2l10.32 98.41c.92 8.778-2.072 17.518-8.18 23.89L94.29 249.34l91.043 12.468c9.987 1.368 18.62 7.66 22.98 16.75l47.69 99.43m.003 69.373l-74.743-155.83-149.366-20.45 105.77-110.334L120.897.83 255.87 86.003h.305L391.06.64l-16.726 160.1 105.77 109.25-149.367 21.54-74.73 155.83z"/><glyph unicode="" d="M391.06.64l-16.726 160.1 105.77 109.248-149.367 21.542-74.73 155.83-74.744-155.83-149.366-20.454 105.77-110.336L120.897.83 255.87 86.003h.305L391.06.64z"/><glyph unicode="" d="M32.005 64.994H96.5V.496H32.005zm0 95.75h160.02V96.25H32.005zm0 95.752H288v-64.498H32.005zm0 95.75h351.99V287.75H32.005zm0 95.752h447.99V383.5H32.005z"/><glyph unicode="" d="M32.005 447.998H96.5V383.5H32.005zm0-95.75h160.02v-64.5H32.005zm0-95.752H288v-64.498H32.005zm0-95.752h351.99V96.247H32.005zm0-95.75h447.99V.494H32.005z"/><glyph unicode="î€" d="M160.187 61.865C144.062 61.865 131 48.8 131 32.675c0-16.127 13.062-29.188 29.187-29.188 16.113 0 29.188 13.062 29.188 29.188-.003 16.125-13.075 29.19-29.188 29.19zm95.73 0c-16.126 0-29.19-13.065-29.19-29.19 0-16.127 13.064-29.188 29.19-29.188 16.108 0 29.18 13.062 29.18 29.188 0 16.125-13.07 29.19-29.18 29.19zm-.008-48.09c-10.44 0-18.9 8.46-18.9 18.892 0 10.447 8.46 18.905 18.894 18.905 10.434 0 18.89-8.458 18.89-18.905 0-10.432-8.456-18.89-18.89-18.89zM32.48 416V96h449.246v320H32.48zm409.355-279.648H73.713l-.02 238.02h366.812v-.01h1.33V136.35zm-90.072-74.487c-16.126 0-29.188-13.065-29.188-29.19 0-16.127 13.063-29.188 29.188-29.188 16.112 0 29.183 13.062 29.183 29.188-.006 16.125-13.07 29.19-29.183 29.19zm-.008-48.09c-10.436 0-18.894 8.46-18.894 18.892 0 10.447 8.46 18.905 18.9 18.905 10.438 0 18.896-8.458 18.896-18.905-.004-10.432-8.462-18.89-18.895-18.89z"/><glyph unicode="" d="M470.7 72.193l-2.688 2.688.006.008L360.505 182.41c14.938 25.73 23.612 55.563 23.816 87.45.63 97.615-77.98 177.243-175.593 177.857l-1.168.002c-97.06-.01-176.064-78.39-176.69-175.6-.62-97.61 78-177.24 175.597-177.86l1.155-.006c32.44 0 62.847 8.79 89 24.075L404.03 10.9l.015.01 2.688-2.69c8.125-8.122 21.293-8.113 29.41 0l34.562 34.558c8.114 8.117 8.117 21.292-.005 29.415zM300.39 177.58c-24.834-24.67-57.78-38.252-92.768-38.252h-.874c-72.59.467-131.27 59.908-130.813 132.503.465 72.13 59.516 130.817 131.626 130.82h.88c35.17-.22 68.15-14.124 92.857-39.15 24.704-25.03 38.184-58.18 37.964-93.355-.227-35.016-14.03-67.894-38.87-92.564z"/><glyph unicode="î€ " d="M33.736 60.543a60.868 61.532 180 1 0 121.736 0 60.868 61.532 180 1 0-121.736 0zM327.928-.987h-86.23c0 116.113-93.108 210.242-207.962 210.242v87.168c162.486 0 294.192-133.15 294.192-297.41zm60.87 0c0 198.243-158.96 358.948-355.062 358.948v89.74c245.118 0 443.826-200.882 443.826-448.683h-88.764z"/><glyph unicode="" d="M32.005 447.998h447.99V383.5H32.005zm0-95.75h447.99v-64.5H32.005zm0-95.752h447.99v-64.498H32.005zm0-95.752h447.99V96.247H32.005zm0-95.75h447.99V.494H32.005z"/><glyph unicode="" d="M224.01 351.904h-67.942l99.944 121.075 99.925-121.08h-67.932V96.092h67.93L255.99-24.98 156.063 96.098h67.943l.004 255.807z"/><glyph unicode="" d="M383.904 255.996v67.942l121.074-99.944L383.9 124.07V192l-255.803.002V124.07L7.022 224.016l121.076 99.926V256l255.806-.004z"/><glyph unicode="" d="M288 355.814V480l192-192L288 96v126.912C64.625 228.152 74.206 71.016 131.07-32-9.287 119.707 20.52 362.785 288 355.814z"/><glyph unicode="" d="M346.842 54.61c21.076 11.558 39.27 26.126 54.4 43.7 15.198 17.574 26.91 37.945 35.284 61.008 7.67 21.094 11.47 40.73 11.47 64.424 0 2.285-.104 192.828-.104 192.828H256V224.552h93.728c-.6-26.107-5.876-45.195-15.728-63.12-10.163-18.526-29.167-32.828-58.054-42.75l-3.2-1.093V31.81l5.312.703c24.7 3.168 47.638 10.555 68.784 22.096M51.917 118.3l-3.17-1.09V31.43l5.315.704c24.666 3.168 47.64 10.556 68.79 22.097 21.075 11.56 39.23 26.13 54.393 43.7 15.206 17.58 26.95 37.95 35.288 61.01 7.67 21.097 11.47 40.73 11.47 64.428l-.077 192.825H32.006V224.17h93.728c-.563-26.106-5.872-45.193-15.724-63.12-10.17-18.525-29.206-32.827-58.093-42.75"/><glyph unicode="" d="M133.16 393.39c-21.076-11.558-39.27-26.126-54.4-43.7-15.198-17.574-26.91-37.946-35.284-61.008-7.67-21.094-11.47-40.728-11.47-64.423 0-2.29.104-192.83.104-192.83h191.892V223.44h-93.728c.6 26.107 5.876 45.195 15.728 63.122 10.163 18.523 29.167 32.826 58.054 42.75l3.2 1.09v85.778l-5.312-.704c-24.7-3.167-47.638-10.555-68.784-22.095m294.925-63.69l3.17 1.09v85.78l-5.315-.704c-24.666-3.168-47.64-10.555-68.79-22.097-21.075-11.558-39.23-26.126-54.393-43.7-15.206-17.575-26.95-37.946-35.288-61.01C259.8 267.97 256 248.333 256 224.64l.076-192.825h191.92V223.83H354.27c.563 26.106 5.872 45.194 15.724 63.12 10.17 18.525 29.206 32.827 58.093 42.75"/><glyph unicode="" d="M461.998 287.998h-44.865v74.99l-85.277 85.21H96.004V288h-46c-9.94 0-18-8.06-18-18V82.002c0-9.94 8.06-18 18-18h46v-64.5h321.128v64.5h44.865c9.94 0 18 8.06 18 18v187.996c0 9.94-8.058 18-18 18zM96.004 97.5h-31.75v94.502h31.75V97.5zM319.37 415.375l64.453-63.377H319.37v63.377zm64.628-383.373H128.004v160h255.994v-160zm0 255.996H128.004v128h159.998v-96h95.996v-32zm64.3-190.498h-31.165v94.502H448.3V97.5zm-288.17-1.498H351.5V62.63H160.127zm0 65.435H351.5v-33.373H160.127z"/><glyph unicode="" d="M427.182 320.352H325.63c6.395 3.992 12.694 8.69 18.574 14.393 30.4 29.163 39.27 69.303 19.804 89.555-7.468 7.76-17.99 11.484-29.858 11.484-19.118 0-41.686-9.68-60.437-27.676-7.68-7.383-13.96-15.47-18.775-23.762-4.834 8.293-11.11 16.378-18.793 23.762-18.75 18-41.3 27.676-60.42 27.676-11.88 0-22.434-3.724-29.902-11.484-19.458-20.252-10.587-60.392 19.814-89.555 5.896-5.703 12.166-10.4 18.606-14.393H64.003v-98.164h32V.14h319.993v222.048h32v98.164h-20.814zm-154.97 33.606c2.513 11.443 10.075 23.888 20.734 34.136 15.29 14.705 31.298 19.92 41.21 19.92 2.606 0 7.36-.37 9.83-2.944 2.662-2.773 3.327-8.96 1.71-16.206-2.524-11.47-10.087-23.908-20.732-34.146-15.303-14.69-31.298-19.905-41.196-19.905-2.607 0-7.36.383-9.845 2.943-2.675 2.773-3.313 8.958-1.71 16.202zm3.558-37.615V224h-41.668v92.343h41.668zm-111.633 72.52c-1.6 7.245-.954 13.433 1.71 16.207 2.48 2.573 7.22 2.943 9.872 2.943 9.88 0 25.89-5.214 41.18-19.933 10.66-10.24 18.21-22.686 20.73-34.122 1.6-7.244.95-13.43-1.727-16.202-2.47-2.56-7.238-2.943-9.845-2.943-9.89 0-25.867 5.214-41.183 19.905-10.646 10.24-18.21 22.676-20.744 34.146zm247.76-260.86H275.77V3.873h-41.668V128H100.935v32.167h133.167v46h41.668v-46h136.126V128z"/><glyph unicode="" d="M255.982 360.004l163-231.994-325.964-.008z"/><glyph unicode="" d="M392.004 223.983l-231.994 163-.008-325.965z"/><glyph unicode="" d="M119.995 223.983l231.993 163 .008-325.965z"/><glyph unicode="" d="M255.982 87.996l163 231.994-325.964.008z"/><glyph unicode="î€" d="M415.996 255.998H287.998v128h-63.996v-128h-128v-63.996h128v-128h63.996v128h127.998z"/><glyph unicode="" d="M96.002 451.33L436.998 224 96.002-3.33v454.66z"/><glyph unicode="" d="M461.173 351.998H351.786l-25.91 53.007s-5.166 10.993-18.42 10.993h-102.89c-14.413 0-19.23-10.91-19.23-10.91L160.206 352H49.37c-9.94 0-18-8.06-18-18V82.262c0-9.94 8.06-18 18-18h411.8c9.942 0 18 8.06 18 18v251.736c0 9.94-8.058 18-18 18zM255.27 105.43c-60.683 0-110.006 49.37-110.006 110.016 0 60.665 49.34 110.012 110.007 110.012 60.66 0 110.028-49.347 110.028-110.012 0-60.655-49.365-110.016-110.022-110.016zm0 176.026c-36.396 0-66.006-29.597-66.006-66.01 0-36.39 29.61-66 66.007-66 36.41 0 66.01 29.61 66.01 66 0 36.413-29.6 66.01-66.01 66.01z"/><glyph unicode="" d="M351.528 188.046c-6.412 3.97-16.018 2.87-21.464-2.468l-42.484-42.472c-5.434-5.34-14.086-5.34-19.425 0l-95.473 95.506c-5.345 5.346-5.345 14.08 0 19.424l40.016 40.003c5.353 5.34 6.13 14.76 1.798 20.93l-72.8 103.21c-4.3 6.16-12.725 7.37-18.627 2.67 0 0-56.798-45.066-56.798-86.47 0-169.442 137.367-306.795 306.795-306.795 41.425 0 81.71 76.01 81.71 76.01 3.54 6.664 1.192 15.41-5.22 19.38l-98.034 61.065z"/><glyph unicode="" d="M440.316 414.613c12.85-6.288 24.047-15.243 32.25-26.24 17.27-23.15 22.12-54.687 14.42-93.734-7.78-39.52-25.21-72.87-50.584-97.028-4.64-4.852-9.61-9.373-14.902-13.54-27.178-21.4-61.498-32.714-99.254-32.714h-120.03L169.936 0h-66.212l5.043 23.15h23.064l32.28 151.363h94.14c90.125 0 165.47 55.538 185.63 149.967C466.74 431.398 390.08 480 324.17 480H99.533L0 23.15h76.016L64-32h131.83l32.28 151.363h94.136c90.125 0 165.47 55.54 185.63 149.968 16.857 78.84-20.402 125.97-67.56 145.288zM211.172 386.96h64.565c32.296 0 53.8-27.77 44.394-62.48-8.062-34.72-41.69-62.487-75.32-62.487h-61.873l28.24 124.966z"/><glyph unicode="" d="M96.002 415.333h96V32.666h-96v382.667zm225.41 0h94.584V32.666h-94.583v382.667z"/><glyph unicode="" d="M68.436 311.144h22.88v113.628H72.67c0-.99-.272-2.505-.858-4.54-.99-3.39-2.465-6.123-4.367-8.16-2.813-2.974-6.48-4.956-10.958-5.947-2.813-.63-7.74-1.1-14.763-1.42v-15.192h26.712v-78.37zm-3.75-92.14c-11.844-8.467-19.346-16.45-22.533-24.033-3.296-6.72-5.033-14.17-5.252-22.312h77.73v19.666H65.09c1.393 2.357 3.135 4.396 5.197 6.16 2.063 1.797 5.895 4.664 11.49 8.63l8.926 6.323c7.525 5.33 12.938 10.153 16.233 14.494 5.01 6.523 7.528 13.985 7.528 22.385 0 10.96-3.563 19.76-10.663 26.406-7.1 6.66-16.66 9.98-28.663 9.98-15.19 0-25.774-5.652-31.723-16.985-3.14-5.95-4.876-13.746-5.25-23.392h21.674c.27 6.363 1.1 11 2.492 13.933 2.464 5.053 7.07 7.584 13.88 7.584 4.954 0 8.76-1.596 11.41-4.77 2.65-3.19 3.99-7.168 3.99-11.978 0-5.894-2.33-11.32-6.967-16.275-3.023-3.187-9.667-8.452-19.956-15.807zM110.15 86.538c-4.18 3.83-7.363 5.73-9.59 5.73 2.946 1.147 5.812 3.298 8.546 6.433 4.34 5.04 6.515 11.2 6.515 18.52 0 10.343-3.61 18.566-10.9 24.73-7.26 6.134-16.824 9.216-28.72 9.216-6.38 0-11.79-.777-16.157-2.33-4.396-1.527-8.2-3.78-11.39-6.673-4.284-4.125-7.423-8.6-9.432-13.45-1.875-5.545-2.946-11.412-3.16-17.575h22.8c-.104 6.11 1.183 10.985 3.89 14.656s6.937 5.494 12.7 5.494c5.01 0 8.895-1.5 11.65-4.447 2.76-3 4.152-6.86 4.152-11.573 0-7.342-2.706-12.164-8.12-14.576-3.134-1.44-8.653-2.19-16.56-2.303v-17.5c8.066 0 13.984-.77 17.767-2.304 6.59-2.76 9.912-8.2 9.912-16.37 0-6.163-1.796-10.905-5.36-14.2-3.562-3.27-7.716-4.897-12.512-4.897-7.823 0-13.21 2.974-16.156 8.976-1.6 3.276-2.41 7.4-2.41 12.36h-23.98c.402-9.894 2.385-17.87 6.002-23.98 6.83-11.495 19.05-17.228 36.625-17.228 14.256 0 25.027 3.986 32.31 11.944 7.29 7.958 10.94 17.2 10.94 27.73-.004 9.99-3.14 17.867-9.356 23.63zm369.995 314.756H179.95v-82.19h300.187l.008 82.19zM179.95 44.704H481v83.06H179.95v-83.06zm0 219.96v-83.046H481v83.045H179.95z"/><glyph unicode="" d="M409.947 370.39c-12.927 12.917-33.873 12.917-46.794 0-12.92-12.922-12.92-33.87 0-46.794v.006c29.647-29.682 44.347-68.266 44.382-107.154-.035-38.892-14.73-77.478-44.382-107.157-29.673-29.642-68.26-44.333-107.15-44.37-38.895.037-77.48 14.73-107.145 44.376-29.653 29.68-44.353 68.267-44.39 107.158.037 38.895 14.732 77.473 44.385 107.15 12.92 12.92 12.926 33.87.005 46.79-12.92 12.92-33.87 12.92-46.79.004-42.455-42.422-63.812-98.335-63.77-153.94-.038-55.607 21.314-111.52 63.77-153.945C144.488 20.06 200.4-1.297 256.006-1.26h.142c55.563-.003 111.41 21.35 153.8 63.765 42.444 42.425 63.813 98.338 63.767 153.944.036 55.6-21.32 111.51-63.768 153.94zM256.704 191.357c18.27 0 33.085 14.812 33.085 33.083v188.838c0 18.27-14.82 33.085-33.09 33.085-18.275 0-33.087-14.816-33.087-33.085V224.442c0-18.27 14.81-33.085 33.086-33.085z"/><glyph unicode="" d="M90.68 160.51l36.062-36.063 126.976 126.98 126.973-126.98 36.07 36.063-163.04 163.04z"/><glyph unicode="" d="M196.73 60.963l-36.064 36.062L287.643 224 160.667 350.976l36.062 36.062L359.762 224z"/><glyph unicode="" d="M317.207 60.963l36.063 36.062L226.29 224l126.98 126.975-36.063 36.062L154.167 224z"/><glyph unicode="" d="M416.754 287.49l-36.063 36.063-126.97-126.98-126.973 126.98L90.68 287.49l163.036-163.04z"/><glyph unicode="" d="M504.98 223.994l-121.076 99.944v-67.942h-95.9V351.9h67.933l-99.925 121.08-99.945-121.076h67.943v-95.906h-95.912v67.944L7.02 224.016 128.1 124.07v67.932h95.91V96.098h-67.945L255.99-24.98 355.936 96.1h-67.932V192H383.9v-67.93z"/><glyph unicode="" d="M96.002 255.998h319.994v-63.996H96.002z"/><glyph unicode="" d="M256 447.998c-83.058 0-150.374-67.286-150.374-150.374 0-73.704 64.874-169.622 116.446-249.79 39.066-60.728 29.33-61.07 67.853-.003 50.575 80.177 116.45 176.09 116.45 249.78C406.375 380.652 339.058 448 256 448zm0-222.213c-39.67 0-71.858 32.16-71.858 71.858 0 39.7 32.188 71.84 71.858 71.84s71.857-32.16 71.857-71.86c0-39.698-32.188-71.838-71.857-71.838z"/><glyph unicode="" d="M256.398 162.378c-4.897 0-9.814 1.545-13.934 4.642L32.156 324.88V90.677c0-16.487 13.413-27.675 29.9-27.675h388.676c16.492 0 29.263 11.188 29.263 27.675V324.88L270 167.02c-4.118-3.097-8.712-4.642-13.602-4.642zm194.884 189.64l-194.884-146.3-194.885 146.3z"/><glyph unicode="" d="M255.875 451.175L63.605 334.688V113.32l49.933-29.4v221.37l142.38 86.565 142.49-86.43.6-.343-.06-220.832 49.446 29.07v221.368l-192.52 116.487zM281.322 314.9V56.097L255.875 40.53l-25.477 15.624v258.543l-65.943-40.617V52.767l91.42-55.942 92.2 56.333v221.076L281.322 314.9z"/><glyph unicode="" d="M402.127 223.937h-38.71l-.005 64.06c0 30.668-11.64 58.793-30.863 79.346-19.16 20.557-46.45 33.753-76.548 33.73-30.104.023-57.396-13.173-76.55-33.73-19.234-20.553-30.872-48.68-30.877-79.345v-64.06h-38.71c-7.66 0-13.87-6.206-13.87-13.865v-164.2c0-7.66 6.21-13.87 13.87-13.87H402.12c7.666 0 13.87 6.21 13.87 13.87V210.07c0 7.66-6.204 13.867-13.87 13.867zm-89.723 0H199.588v64.06c0 17.7 6.7 33.357 17.115 44.5 10.497 11.136 24.163 17.545 39.304 17.567 15.13-.022 28.798-6.427 39.287-17.566 10.416-11.143 17.11-26.8 17.11-44.5v-64.06z"/><glyph unicode="" d="M221.533 116.203L184.5 81.873c-8.995-8.32-20.297-12.08-31.93-11.68-11.11.453-21.96 5.06-30.33 14.056l-3.38 3.662c-8.304 8.996-12.085 20.234-11.68 31.698.462 11.304 5.052 22.16 14.053 30.525l85.934 79.644c5.046 4.66 10.772 7.89 16.835 9.762 0 8.613.088 61.287.088 72.72-23.642-2.68-46.787-12.71-65.5-30.063l-85.936-79.64c-23.266-21.53-35.834-50.785-36.92-80.225-1.156-29.4 9.046-59.642 30.7-83.012l3.384-3.65c21.434-23.15 50.545-35.81 80.027-36.92l.164-.006c29.32-1.118 59.62 8.967 83.06 30.702l37.03 34.31c14.473 13.413 15.334 36.02 1.92 50.493-13.408 14.48-36.017 15.342-50.49 1.945zm254.723 209.645c1.204 29.423-9.102 59.554-30.66 82.823l-3.383 3.67c-21.592 23.32-50.937 35.83-80.354 36.917-29.42 1.152-59.6-9.082-82.9-30.69l-35.34-32.747c-14.477-13.43-15.34-36.04-1.928-50.514s36.02-15.337 50.497-1.925l35.336 32.75c9.028 8.333 20.23 12.1 31.603 11.715 11.4-.483 22.283-5.09 30.62-14.085l3.417-3.655c8.302-9.012 12.08-20.215 11.682-31.537-.47-11.435-5.097-22.336-14.097-30.703l-85.932-79.628c-5.01-4.634-10.73-7.86-16.825-9.736v-72.71c23.513 2.7 46.64 12.63 65.39 30.03l85.968 79.63c23.34 21.638 35.84 50.98 36.898 80.403zM119.3 339.488c2.928-2.93 6.767-4.395 10.605-4.395s7.678 1.464 10.606 4.394c5.86 5.858 5.86 15.355 0 21.213l-96.19 96.197c-5.857 5.858-15.355 5.858-21.213 0-5.857-5.858-5.857-15.355 0-21.213l96.2-96.197zm72.7 12.606c8.284 0 15 6.716 15 15v79.34c0 8.285-6.716 15-15 15s-15-6.715-15-15v-79.34c0-8.284 6.716-15 15-15zm-65.66-64.182c0 8.284-6.715 15-15 15H32c-8.284 0-15-6.716-15-15s6.716-15 15-15h79.34c8.285 0 15 6.716 15 15zM392.62 108.95c-5.858 5.856-15.356 5.856-21.214 0-5.858-5.858-5.858-15.356 0-21.214l96.2-96.196c2.93-2.93 6.768-4.395 10.606-4.395s7.678 1.465 10.606 4.394c5.858 5.85 5.858 15.35 0 21.21l-96.198 96.2zm-72.703-12.61c-8.285 0-15-6.715-15-15V2.003c0-8.285 6.715-15 15-15s15 6.715 15 15v79.34c0 8.284-6.717 15-15 15zm65.657 64.18c0-8.282 6.716-15 15-15h79.342c8.283 0 15 6.718 15 15s-6.717 15-15 15h-79.343c-8.284 0-15-6.713-15-15z"/><glyph unicode="î€" d="M221.533 116.203L184.5 81.873c-8.995-8.32-20.297-12.08-31.93-11.68-11.11.453-21.96 5.06-30.33 14.056l-3.38 3.662c-8.304 8.996-12.085 20.234-11.68 31.698.462 11.304 5.052 22.16 14.053 30.525l85.934 79.644c9.028 8.334 20.233 12.1 31.64 11.7 11.367-.468 22.25-5.077 30.62-14.075l3.38-3.67 52.42 48.59-3.385 3.652-6.175 6.646c-2.637 2.84-5.61 5.156-8.84 6.96-19.25 14.6-42.242 22.474-65.31 23.32-29.45 1.155-59.625-9.097-82.928-30.707l-85.94-79.64c-23.27-21.53-35.837-50.785-36.92-80.225-1.16-29.4 9.043-59.64 30.7-83.01l3.38-3.65C91.247 12.52 120.358-.14 149.84-1.25l.164-.006c29.32-1.117 59.624 8.968 83.062 30.703l37.03 34.314c14.476 13.417 15.337 36.025 1.922 50.497-13.408 14.48-36.017 15.34-50.49 1.944zM445.597 408.67l-3.384 3.67c-21.592 23.318-50.937 35.823-80.354 36.91-29.42 1.153-59.6-9.08-82.9-30.69l-35.34-32.746c-14.477-13.428-15.34-36.038-1.928-50.513s36.02-15.33 50.497-1.92l35.336 32.75c9.028 8.333 20.23 12.1 31.603 11.715 11.4-.483 22.283-5.09 30.62-14.085l3.417-3.655c8.302-9.012 12.08-20.215 11.682-31.537-.47-11.435-5.097-22.336-14.097-30.703l-85.932-79.63c-8.995-8.317-20.265-12.1-31.93-11.686-11.11.445-21.927 5.043-30.295 14.06l-3.387 3.65-52.42-48.585 3.38-3.654c21.4-23.132 50.51-35.81 79.994-36.896l.195-.008c29.32-1.118 59.59 8.954 83.024 30.702l85.967 79.63c23.34 21.64 35.84 50.98 36.9 80.403 1.205 29.426-9.1 59.556-30.658 82.825z"/><glyph unicode="î" d="M351.996 415.998V237.18L96.002 448V0l255.994 210.82V32.002h96v383.996z"/><glyph unicode="î‚" d="M482.178 233.834L342.742 379.832c-2.575 2.665-6.122 4.166-9.828 4.166H45.484c-7.56 0-13.687-6.126-13.687-13.688V78.315c0-7.562 6.126-13.688 13.687-13.688h287.43c3.706 0 7.253 1.502 9.828 4.166L482.178 214.79c5.146 5.308 5.146 13.737 0 19.044zM327.112 95.93H64.002v256.194h263.11l126.18-127.81L327.112 95.93zm-59.685 229.382l-73.664-74.96-73.67 74.96-26.033-25.588 74.118-75.412-74.118-75.418 26.034-25.588 73.67 74.964 73.663-74.964 26.037 25.588-74.115 75.418 74.11 75.412z"/><glyph unicode="îƒ" d="M29.815 214.79L169.25 68.794c2.576-2.664 6.123-4.166 9.83-4.166h287.428c7.562 0 13.688 6.127 13.688 13.688V370.31c0 7.56-6.126 13.688-13.688 13.688h-287.43c-3.705 0-7.252-1.5-9.827-4.166L29.82 233.834c-5.146-5.307-5.146-13.736 0-19.043zm28.886 9.522l126.18 127.81h263.11V95.93H184.88L58.7 224.312zm159.83 75.412l74.12-75.412-74.116-75.418 26.037-25.588 73.663 74.964 73.667-74.964 26.032 25.588-74.116 75.418 74.118 75.412-26.033 25.588-73.67-74.96-73.66 74.96z"/><glyph unicode="î„" d="M48.073.002l79.01.017.01 45.523 49.23.013.008 50.45 47.68-.01-.005 45.555 50.567.01 37.57 32.034c44.066-12.065 92.903-1.09 127.278 33.167 51.184 51.348 50.762 134.8-.91 186.7-51.782 51.555-135.24 51.98-186.4.613-34.485-34.34-45.464-83.307-33.298-127.415L32 79.86l.29-64.07C32.356 4.206 36.602.243 48.072.002zM361.38 316.957c-13.714 13.92-13.843 36.085-.298 49.49 13.64 13.763 35.798 13.644 49.488-.3 13.755-13.5 13.886-35.67.313-49.5-13.61-13.347-35.775-13.218-49.503.31z"/><glyph unicode="î…" d="M295.446 31.498H108.404l3.648 21.205c21.455 8.767 42.38 14.598 62.836 17.525l91.34 305.806c-9.793 1.964-45.406 14.313-54.793 18.273l5.114 21.19h187.04l-4.4-21.19c-22.02-8.825-58.624-17.432-62.835-18.273L245.05 70.228c10.51-2.12 47.09-13.814 54.07-17.525l-3.674-21.205z"/><glyph unicode="î†" d="M335.49 115.19c-9.558 0-47.096-58-67.553-58-5.46 0-8.17 4.788-8.17 9.56 0 10.908 7.506 27.978 11.58 38.215l49.13 133.01c24.56 66.192-6.834 83.923-36.15 83.923-39.573 0-75.063-19.786-102.333-45.708-5.076-5.068-16.97-16.65-26.377-27.822-7.69-9.13-6.813-18.64-2.32-21.406 5.626-3.464 14.265 3.05 18.405 7.886 14.99 17.518 34.313 42.02 50.52 42.02 5.463 0 11.606-6.137 6.833-18.408l-47.737-120.078c-4.796-11.606-27.983-67.556-27.983-100.294 0-25.93 17.05-37.517 41.61-37.517 68.91 0 148.724 84.61 148.724 104.39-.007 6.15-4.78 10.23-8.18 10.23zm-13.662 332.233c-30.018 0-55.938-24.553-55.938-54.568 0-27.98 18.435-46.41 46.398-46.41 30.703 0 56.615 23.196 56.615 54.59 0 27.98-19.766 46.388-47.075 46.388z"/><glyph unicode="î‡" d="M352.38 251.944c19.51 0 35.293 16 35.293 35.758 0 19.743-15.784 35.765-35.292 35.765-19.45 0-35.27-16.022-35.27-35.765 0-19.758 15.826-35.758 35.276-35.758zM244.8 175.92l-88.126 94.967-59.926-112.3v-30.94h297.645C356.49 160.777 276.54 231.63 276.54 231.63l-31.74-55.71zM32 384V64.218h447.5V384H32zm41.072-279.458l-.02 237.854H438.44v-.012h1.32l.005-237.842H73.073z"/><glyph unicode="îˆ" d="M395.84 276.128v83.904h-55.938v-27.968L256 415.968 32.255 191.932H96.5V31.598h128.05v128h63.95v-128h128v160.334h63.242z"/><glyph unicode="î‰" d="M415.46 383.458c-42.594 42.593-99.225 66.05-159.46 66.05-60.235 0-116.865-23.457-159.458-66.05C53.95 340.865 30.492 284.235 30.492 224S53.95 107.134 96.542 64.54C139.135 21.95 195.765-1.51 256-1.51s116.866 23.46 159.46 66.05 66.05 99.225 66.05 159.46-23.458 116.865-66.05 159.458zM256 31.092C149.63 31.092 63.093 117.63 63.093 224c0 106.37 86.538 192.907 192.907 192.907 106.37 0 192.908-86.538 192.908-192.907 0-106.37-86.538-192.908-192.908-192.908zm86.29 325.394c-21.753 19.24-51.032 28.86-87.84 28.86-34.987 0-63.24-9.506-84.76-28.518-21.525-19.015-27.814-41.74-29.486-68.966l55.262.27c4.107 19.012 9.93 25.195 20.88 34.475 10.952 9.275 24.564 13.917 40.844 13.917 16.882 0 30.305-4.45 40.27-13.346 9.958-8.898 14.942-19.586 14.942-32.056 0-8.976-2.816-17.19-8.44-24.64-3.652-4.717-14.83-14.68-33.54-29.888-18.71-15.212-31.185-28.917-37.42-41.083-6.238-12.17-9.277-27.14-9.125-35.502h64.113c-.307 17.643 10.188 26.305 23.728 37.56 26.158 21.767 43.235 38.953 51.22 51.58 7.986 12.623 11.98 26.01 11.98 40.154-.002 25.55-10.88 47.947-32.627 67.19zM223.878 128.01h64.113V63.904h-64.11z"/><glyph unicode="îŠ" d="M32.002 447.998h128v-128h-128zm159.998 0h128v-128H192zm159.996 0h128v-128h-128zM32.002 288h128V160h-128zM192 288h128V160H192zm159.996 0h128V160h-128zM32.002 128.002h128v-128h-128zm159.998 0h128v-128H192zm159.996 0h128v-128h-128z"/><glyph unicode="î‹" d="M279.533 448h-133.97c-60.06 0-116.586-45.503-116.586-98.21 0-53.864 40.94-97.334 102.044-97.334 4.25 0 8.38.085 12.427.376-3.965-7.593-6.8-16.144-6.8-25.02 0-14.97 8.05-27.106 18.233-37.013-7.694 0-15.12-.23-23.228-.23C57.258 190.572 0 143.192 0 94.062 0 45.677 62.77 15.41 137.167 15.41c84.812 0 131.652 48.122 131.652 96.514 0 38.8-11.45 62.036-46.85 87.067-12.106 8.57-35.264 29.42-35.264 41.67 0 14.36 4.1 21.438 25.714 38.327 22.157 17.312 37.837 41.65 37.837 69.958 0 33.704-15.01 66.55-43.184 77.387h42.477L279.53 448zM232.74 120.27c1.063-4.485 1.642-9.103 1.642-13.813 0-39.1-25.196-69.655-97.487-69.655-51.42 0-88.558 32.552-88.558 71.65 0 38.32 46.063 70.222 97.48 69.666 12-.127 23.186-2.058 33.336-5.345 27.913-19.414 47.94-30.38 53.587-52.502zm-82.33 145.842c-34.52 1.032-67.32 38.613-73.277 83.93-5.958 45.333 17.185 80.02 51.694 78.995 34.505-1.037 67.318-37.407 73.278-82.73 5.954-45.33-17.194-81.228-51.696-80.195zM416 352v96h-32v-96h-96v-32h96v-96h32v96h96v32h-96z"/><glyph unicode="îŒ" d="M248.023 234.684l-.673 1.125-.787 2.242.56.673-.337 1.572-2.022-1.574.45-1.35.56-2.133h-1.01v-1.01l1.125-.675zm-6.068 1.575l.338-1.58 1.686.786.44 1.35-.672.672zm2.135 8.87l.336.9-.897.9-1.8.11.11-1.347zm12.248 8.876l.56-.223.114.896-.674.34.447 1.122-2.02-1.123.785-1.684zm4.94 3.26l-1.12.56-.788-.788 1.46-.224zM256 449.076c-124.305 0-225.078-100.77-225.078-225.08S131.695-1.075 256-1.075c124.303 0 225.078 100.77 225.078 225.078S380.303 449.08 256 449.08zM62.028 224c0 41.132 12.838 79.24 34.674 110.627l2.504-1.877-1.513-6.073 5.56-1.52-1.014 8.092 4.55.5v10.622h4.55s.8-2.062 1.64-4.224c.924-2.376 1.9-4.88 1.9-4.88l5.055-5.568s-6.07-1.508-8.09-1.508c-2.02 0-1.012-8.093-1.012-8.093l7.076-2.525 4.572 8.443 10.6 11.782 5.057 15.674 9.612 9.11-5.565 4.033 6.073 4.046.508 5.568-17.7-5.055-.56.663c9.64 8.19 20.078 15.456 31.202 21.654l8.3-3.613-5.56-10.623h-11.13l-2.026-9.603h9.106l13.15 8.095 9.106 9.095 1.513 8.6-13.15 1.01 9.1 6.07 8.6-1.52-1.515-9.1L198.84 399l2.026-5.566 2.53-8.095-6.577-8.098-7.088-6.572-10.623 1.52 5.06-10.617-9.61 1.517-16.18-16.69 4.044-5.566 13.15 1.018 11.127 3.546 14.168 1.507 6.57 1.52s0 4.045-.51 6.57c-.5 2.53 5.06-.5 5.06-.5l6.07 3.533 4.554 14.167 16.688 7.595-2.525 4.037 4.046 5.063-13.147 2.026 3.537 5.055-16.692 5.57h-8.6l3.036 7.58 3.54 3.55-.284.286c14.076 3.244 28.72 5.018 43.787 5.018 23.48 0 45.98-4.17 66.81-11.816l-.508-1.19-8.424.562v-5.065l3.377-2.245v-4.494l2.805-3.93-10.11 6.176-6.736-3.37 3.367-7.874 1.687-8.986 4.493-5.064 10.665-1.684-2.244-4.493-2.25-6.75 9.557-6.177-.563-2.81-17.98 15.178-1.115-5.626 7.86-7.864 4.49-1.685-10.11-2.245-1.126-5.064-7.297 7.317-4.5 9.548-1.69 9.56-4.5-5.617 3.376-13.488 5.616-3.944-2.24-12.913-3.378 1.687.562-6.752-5.063.564-5.052 7.316h-6.174l-8.995 1.125-9-.562-8.42-6.752-5.624-9.547L235.763 310l-1.127-5.055v-6.19l2.81-6.177 5.622 4.492 1.683-3.367 2.815-5.056.564-1.136 2.81-3.37 5.06 3.368-.564 12.367 6.177 7.87s.31 1.333.662 2.87c.48 2.046 1.023 4.433 1.023 4.433l2.242 6.19 3.94-.563-1.12-5.065-2.26-11.233 10.69 1.125 3.935-1.125-8.435-2.255 1.12-5.618-9.556-6.177.562-6.19-8.423-2.25-1.685-4.493-6.748 2.248h-4.497v9.557l-5.06-1.7v-5.054l-14.05-11.245-7.87-2.81-3.37-3.93-11.244 2.81-.56-5.055 7.302-2.817-.563-10.105-20.234.567-2.81-4.493-2.81-7.874-3.375-6.752 5.06-5.617 5.624-6.74L207.11 224l1.124 6.74 3.94 3.38 6.742 2.246-.563 4.493 6.185 1.682 8.988 1.684 5.623-6.74 10.11-7.314 4.495-7.297v-3.37l5.613 3.37-2.805 5.05 1.12 5.626-5.056 2.248-4.497 6.175 2.81 9 5.05-7.313 7.302-5.618 2.805-10.12 7.31-5.615 1.7-6.19 3.37 7.31-1.124 3.373 1.684 2.81 10.664 8.992 2.25 11.246 4.503 3.37 5.618-.562 8.433 8.435.563-6.75 12.35-3.93v-6.19h-10.1l-15.176-7.86-12.366-6.75 3.37-7.303 11.234-2.246 6.19-2.81 6.742 4.494.554-19.113-19.112-3.93-20.21 5.63-7.873-6.19 3.367-3.368-6.19 1.124-19.662 7.31-5.618-.57-4.496 7.31v8.995h-10.12l-5.616 1.125-17.988-3.944-14.05 1.137-6.18-3.38-3.936-.564-2.25-7.297-12.925-9-17.99-13.484-1.125-17.413-5.06-11.246.563-6.734 4.498-7.878 12.93-21.91 13.488-6.185 22.48-1.687-1.124 9.562-5.06 2.805 2.247 5.055 3.94-4.492 3.93-11.805 16.86-1.124 6.744-6.734 9.554-3.94 1.125-16.3 10.122-12.926 9.553-16.856-8.428-10.12 8.606-13.39C145.056 33.97 62.028 119.27 62.028 224zm260.44-182.277l23.45 17.047-8.424 20.802 26.975 35.397 8.42 22.48 3.93 12.37-14.03-6.757-8.44-1.688-20.79 12.932-6.19 14.05-7.867 7.87-10.11 22.47 8.422-6.74 15.746-17.42 5.62-7.87 11.23-5.617 3.374-14.61 13.494 8.986 16.29 20.24 7.87 20.79-6.187 5.05-3.372 6.19-3.937-7.312-7.864-8.985-11.24 12.365-3.368 9.542 7.87-1.687 7.863-3.93 11.24 3.93 6.755-2.244 17.966 12.364 10.135-5.626 6.177 3.38 13.438-21.157 6.656 6.35.134 8.062.554 24.17 4.132 11.45c1.007-7.99 1.582-16.117 1.582-24.38-.003-83.768-53.116-155.14-127.507-182.274z"/><glyph unicode="î" d="M116.838 355.64c-25.396 0-47.242-8.403-65.542-25.208-19.043-17.926-28.57-40.33-28.57-67.218 0-17.926 5.188-34.73 15.647-50.416 9.337-14.563 19.09-23.903 31.89-28.012v-1.12c-12.8-5.225-18.483-18.296-18.483-39.21 0-16.062 5.686-28.01 18.482-35.854v-1.12c-35.327-11.574-51.496-33.05-51.496-64.416 0-27.268 11.874-47.244 35.033-59.94C72.09-26.958 95.582-32 123.97-32c69.085 0 103.703 28.94 103.703 86.832 0 36.223-26.66 58.44-80.063 66.658-12.323 1.863-21.644 6.348-27.99 13.445-4.855 4.854-7.272 9.71-7.272 14.563 0 13.816 7.48 21.848 22.41 24.088 22.78 3.357 41.364 13.912 55.743 31.648 14.38 17.74 21.57 38.56 21.57 62.458 0 7.47-2.26 15.498-5.244 24.086 9.71 2.244 16.524 4.297 21.646 6.166v57.696c-22.526-8.964-43.495-13.442-61.42-13.442-15.69 8.96-31.914 13.442-50.212 13.442zM123 76.115c31.372 0 47.052-9.52 47.052-28.57 0-20.168-14.377-30.246-43.132-30.246-32.862 0-49.293 9.71-49.293 29.12 0 19.796 15.122 29.69 45.373 29.69zM119.08 224c-23.528 0-35.294 12.882-35.294 38.654 0 27.63 11.766 41.453 35.293 41.453 11.2 0 19.973-4.298 26.32-12.884 5.23-7.845 7.845-17.18 7.845-28.01 0-26.14-11.394-39.213-34.17-39.213zm170.315 256c-10.828 0-20.07-4.107-27.727-12.324-7.66-8.218-11.49-18.108-11.49-29.688 0-11.205 3.83-20.91 11.49-29.13 7.654-8.216 16.896-12.32 27.727-12.32 10.455 0 19.514 4.105 27.17 12.32 7.656 8.22 11.48 17.925 11.48 29.13 0 11.58-3.824 21.472-11.48 29.688-7.66 8.217-16.715 12.324-27.17 12.324zm31.373-128h-63.303c.748-7.167-.32-18.02-.32-35.57V142.216c0-17.928 1.068-32.387.32-38.018h63.303c-.75 8.188-2.697 22.334-2.697 41.38V317.55c0 16.43 1.95 27.283 2.7 34.45zM460.37 157.9c-16.436 0-24.54 12.514-24.54 37.533v103.32h24.932c4.48 0 8.516.246 13.56-.123 5.042-.374 7.075-.125 9.64-.125V352h-48.13v23.808c0 8.96 1.407 17.15 2.526 22.27h-64.98c1.122-5.12 1.015-12.937 1.015-23.394V352h-28.16v-53.494c7.683 1.12 14.545 1.678 19.398 1.678l8.768-.56v-101.39c0-31.37 3.98-54.337 11.818-68.9 10.462-19.42 28.812-29.13 56.068-29.13 19.426 0 36.56 3.732 49.358 11.205v56.01c-10.236-6.35-19.69-9.523-31.263-9.523z"/><glyph unicode="îŽ" d="M444.797 255.998l-46.724 46.723 81.762 81.767-63.35 63.35-81.76-81.76L288 412.797V256zm-377.674 0l46.724 46.723-81.762 81.767 63.35 63.35 81.76-81.76L223.92 412.8V256zm377.674-64.078l-46.724-46.724 81.762-81.76-63.35-63.35-81.76 81.76L288 35.123V191.92zm-377.674 0l46.724-46.724-81.762-81.76L95.435.086l81.76 81.76 46.725-46.723V191.92z"/><glyph unicode="î" d="M177.285 208.636l-98.56-98.56-46.72 46.725V.01H188.8l-46.72 46.72 98.556 98.557zm11.516 239.36H32.01V291.2l46.722 46.722 98.56-98.558 63.35 63.35-98.558 98.558zm145.92-239.36l-63.35-63.35 98.56-98.558L323.197.004h156.796V156.8l-46.724-46.723zm-11.52 239.36l46.723-46.724-98.56-98.558 63.35-63.35 98.56 98.558 46.723-46.723v156.79z"/><glyph unicode="î" d="M466.766 288.6H110c-21.5 0-26.203-21.412-26.203-21.412L55.08 82.854c-1.24-7.888-14.837-6.083-13.466 2.646L57.25 287.998S61.5 320.6 96.5 320.6h351.496v14.71c0 9.222-7.475 16.688-16.69 16.688h-214.55l-43.623 58.994-.09-.026c-3.03 3.094-7.243 5.032-11.915 5.032H48.686c-9.21 0-16.683-7.475-16.683-22.56L33.508 81.25c0-9.223 7.472-16.688 16.683-16.688h381.12c9.218 0 16.69 7.465 16.69 16.688l35.6 185.334s5.74 21.7-16.83 22.013z"/><glyph unicode="î‘" d="M431.305 351.998H216.757l-43.624 58.994-.09-.026c-3.03 3.094-7.243 5.032-11.915 5.032H48.686c-9.21 0-16.683-7.475-16.683-22.56L33.508 81.25c0-9.223 7.472-16.688 16.683-16.688h381.12c9.218 0 16.69 7.465 16.69 16.688v254.06c0 9.222-7.473 16.688-16.69 16.688zM240 95.205c-62.186 0-112.596 50.41-112.596 112.596 0 62.187 50.41 112.597 112.596 112.597 62.184 0 112.596-50.41 112.596-112.59C352.596 145.62 302.184 95.21 240 95.21zM223.48 241.22l-62.478.003v-66.477h62.476v-44.67l94.396 77.905-94.394 77.92z"/><glyph unicode="î’" d="M160.5 223.696h159v-31.794h-159zm270.805 128.302H216.757l-43.624 58.994-.09-.026c-3.03 3.094-7.243 5.032-11.915 5.032H48.686c-9.21 0-16.683-7.475-16.683-22.56L33.508 81.25c0-9.223 7.472-16.688 16.683-16.688h381.12c9.218 0 16.69 7.465 16.69 16.688v254.06c0 9.222-7.473 16.688-16.69 16.688zM240 95.205c-62.186 0-112.596 50.41-112.596 112.596 0 62.187 50.41 112.597 112.596 112.597 62.184 0 112.596-50.41 112.596-112.59C352.596 145.62 302.184 95.21 240 95.21z"/><glyph unicode="î“" d="M431.305 351.998H216.757l-43.624 58.994-.09-.026c-3.03 3.094-7.243 5.032-11.915 5.032H48.686c-9.21 0-16.683-7.475-16.683-22.56L33.508 81.25c0-9.223 7.472-16.688 16.683-16.688h381.12c9.218 0 16.69 7.465 16.69 16.688v254.06c0 9.222-7.473 16.688-16.69 16.688zM240 95.205c-62.186 0-112.596 50.41-112.596 112.596 0 62.187 50.41 112.597 112.596 112.597 62.184 0 112.596-50.41 112.596-112.59C352.596 145.62 302.184 95.21 240 95.21zm15.898 192.092h-31.796v-63.6H160.5V191.9h63.602v-63.6h31.796v63.6H319.5v31.794h-63.602z"/><glyph unicode="î”" d="M431.305 351.998H216.757l-43.624 58.994-.09-.026c-3.03 3.094-7.243 5.032-11.915 5.032H48.686c-9.21 0-16.683-7.475-16.683-22.56L33.508 81.25c0-9.223 7.472-16.688 16.683-16.688h381.12c9.218 0 16.69 7.465 16.69 16.688v254.06c0 9.222-7.473 16.688-16.69 16.688z"/><glyph unicode="î•" d="M63.252 447.998H95.65V.002H63.252zm338.22-32l-95.14-95.145 96.833-96.85H160.01v191.995h241.46m77.253 32H128.01V192.002h352.4l-128.827 128.85 127.14 127.146z"/><glyph unicode="î–" d="M351.583 320.85L478.723 448H128.01V192.002h352.4zM63.253 448H95.65V.002H63.252z"/><glyph unicode="î—" d="M160.003 415.998V237.18L415.996 448V0L160.003 210.82V32.002h-96v383.996z"/><glyph unicode="î˜" d="M63.145 447.998v-64l150-171.712V40.86l85.71-42.857v214.283l150 171.712v64z"/><glyph unicode="î™" d="M503.61 146.99l-45.413 44.55c13.105 11.495 24.19 22.29 32.663 31.17-2.193 2.338-23.248 22.274-27.113 26.14-2.402-2.13-104.908-114.77-207.756-114.77-86.44 0-181.75 86.35-207.22 115.06-7.36-6.77-24.63-23.638-27.436-26.43 8.803-9.075 19.85-19.75 32.66-30.984L8.39 146.99c-8.29-8.13-8.42-21.44-.288-29.727 4.118-4.196 9.56-6.3 15.007-6.3 5.31 0 10.63 2 14.72 6.016l48.97 48.04c15.042-11.326 31.434-22.42 48.718-32.3l-29.785-62.36c-5.004-10.48-.57-23.03 9.908-28.038 2.05-.98 4.183-1.594 6.317-1.876 8.783-1.16 17.69 3.36 21.715 11.783l29.5 61.76c20.12-8.457 40.924-14.61 61.8-17.17V32.63c0-11.61 9.413-21.022 21.024-21.022S277.02 21.02 277.02 32.63v64.198c20.775 2.55 41.49 8.65 61.52 17.008l30.168-61.632c4.11-8.39 13.057-12.824 21.827-11.583 2.134.31 4.26.947 6.3 1.95 10.425 5.107 14.74 17.696 9.636 28.125l-30.235 61.77c17.486 9.932 34.025 21.075 49.12 32.4l48.81-47.88c4.095-4.018 9.41-6.018 14.72-6.018 5.45 0 10.89 2.105 15.01 6.302 8.13 8.287 8 21.6-.29 29.73z"/><glyph unicode="îš" d="M255.992 349.715c-116.967 0-234.758-127.177-234.758-127.177S139.024 95.372 255.992 95.372c116.984 0 234.773 127.166 234.773 127.166S372.977 349.715 255.992 349.715zm0-215.81c-49.705 0-90 40.26-90 90.01 0 49.704 40.296 89.99 90 89.99 49.73 0 90.023-40.286 90.023-89.99.003-49.75-40.294-90.01-90.023-90.01zm0 134.1c-24.32 0-44.104-19.78-44.104-44.09 0-24.312 19.784-44.11 44.104-44.11 24.332 0 44.126 19.8 44.126 44.11.002 24.31-19.792 44.09-44.126 44.09z"/><glyph unicode="î›" d="M468.328 387.262l-47.784 48.15c-12.065 12.14-31.647 12.19-43.8.157l-30.197-29.97 91.373-92.05 30.208 29.93c12.143 12.07 12.253 31.655.2 43.776zM85.75 146.692l91.38-92.023 238.882 237.06-91.432 92.095L85.75 146.693zm-36.214-81.57L32.512 2.57l62.703 16.563 58.26 15.346-88.153 88.86-15.786-58.22z"/><glyph unicode="îœ" d="M322.097 448.198H64.002V-.498H416.53V354.5l-94.433 93.698zm-2.73-32.823l64.454-63.377h-64.45v63.377zm64.63-383.373H96v383.996h192v-96h95.996V32.002zm-256.593 175.8c0-62.187 50.41-112.597 112.596-112.597 62.184 0 112.596 50.41 112.596 112.596 0 62.187-50.412 112.597-112.596 112.597-62.186 0-112.596-50.41-112.596-112.59zM319.5 223.695V191.9h-159v31.795h159z"/><glyph unicode="î" d="M322.097 448.198H64.002V-.498H416.53V354.5l-94.433 93.698zm-2.73-32.823l64.454-63.377h-64.45v63.377zm64.63-383.373H96v383.996h192v-96h95.996V32.002zm-256.593 175.8c0-62.187 50.41-112.597 112.596-112.597 62.184 0 112.596 50.41 112.596 112.596 0 62.187-50.412 112.597-112.596 112.597-62.186 0-112.596-50.41-112.596-112.59zM319.5 223.695V191.9h-63.602v-63.6H224.1v63.602h-63.6v31.794h63.602v63.6H255.9v-63.6h63.6z"/><glyph unicode="îž" d="M322.097 448.198H64.002V-.498H416.53V354.5l-94.433 93.698zm-2.73-32.823l64.454-63.377h-64.45v63.377zM96.003 32.002v383.996H288v-96h95.996V32.002H96.002z"/><glyph unicode="îŸ" d="M339.23 149.373c.008-.672.053-1.32.053-1.988 0-68.036-55.35-123.383-123.39-123.383-68.03 0-123.383 55.347-123.383 123.383 0 41.116 20.236 77.58 51.258 100.014l-4.197 36.86c-47.95-26.84-80.46-78.12-80.46-136.876C59.11 60.93 129.44-9.4 215.897-9.4c73.287 0 134.963 50.55 152.064 118.605l-28.73 40.166zM155.87 409.356a39.893 39.893 180 1 0 79.787 0 39.893 39.893 180 1 0-79.786 0zM452.94 100.23l-89.517 125.165c-4.685 6.555-12.505 9.654-20.44 8.976-.592.06-1.185.11-1.784.11H238.94l-2.538 22.264h76.006c8.842 0 16.01 7.165 16.01 16.004 0 8.837-7.168 16-16.01 16H232.76l-4.156 36.557c-2.432 21.384-21.74 36.74-43.12 34.308-21.382-2.436-36.74-21.74-34.304-43.116l11.75-103.236c2.275-19.966 19.246-34.657 38.882-34.55.067 0 .13-.014.2-.014h133.795l76.77-107.34c7.328-10.256 22.315-12.11 33.468-4.13 11.143 7.972 14.232 22.754 6.896 33.01z"/><glyph unicode="î " d="M380.476 96.165a36.94 36.94 180 1 0 73.88 0 36.94 36.94 180 1 0-73.88 0zm-243.392 36.94c-20.396 0-36.936-16.54-36.936-36.94s16.54-36.94 36.936-36.94c20.406 0 36.945 16.54 36.945 36.94s-16.54 36.94-36.95 36.94zM32.09 351.998h287.906V160.002H32.09zm415.906-64h-96.123V133.11H165.726c11.016-8.554 18.113-21.914 18.113-36.944h186.82c0 25.823 20.924 46.754 46.75 46.754 25.82 0 46.752-20.93 46.752-46.754h6.414c5.15 0 9.33 4.176 9.33 9.332V224l-31.915 63.998zm-63.7-78.46l.114 46.224h41.3l22.286-46.223h-63.7zM108.443 133.11H32.196l-.096-13.762s-1.21-23.182 22.168-23.182H90.33c0 15.03 7.098 28.39 18.114 36.944z"/><glyph unicode="î¡" d="M462.88 367.12l-63.76 63.765L256 287.77 111.883 431.882 48.12 368.12 192.233 224 47.113 78.885l63.766-63.77L256 160.238 400.125 16.11l63.758 63.77L319.763 224z"/><glyph unicode="î¢" d="M256.5 450.167c-123.433 0-223.495-30.976-223.495-58.084v-86C33.005 278.975 133.068 248 256.5 248c123.434 0 223.496 30.975 223.496 58.083v86c0 27.107-100.062 58.084-223.496 58.084zm0-97.95c-92.096 0-166.755 16.966-166.755 34.192 0 17.22 74.66 37.19 166.755 37.19 92.097 0 166.757-19.97 166.757-37.19 0-17.23-74.66-34.197-166.757-34.197zm0-277.25c-121.174 0-219.815 27.18-223.385 53.602-.066-.498-.11-.99-.11-1.488v-78C33.005 21.977 133.068-9 256.5-9c123.434 0 223.496 30.977 223.496 58.085v78c0 .496-.044.99-.11 1.482-3.57-26.424-102.21-53.603-223.386-53.603zm0 124.717c-121.174 0-219.815 30.18-223.385 56.602-.066-.492-.11-.986-.11-1.482v-78c0-27.108 100.063-58.084 223.495-58.084 123.434 0 223.496 30.976 223.496 58.084v78c0 .496-.044.99-.11 1.482-3.57-26.423-102.21-56.602-223.386-56.602z"/><glyph unicode="î£" d="M32.003 384.085V128.002h447.994v256.083H32.003zm415.994-192.083c-16.98 0-31.844-16.662-31.844-32H96.66c0 15.988-12.48 33.004-32.657 33.004V319.91c23.808 0 30.772 17.437 30.772 32.176h321.537c0-15.313 14.154-31.52 31.685-31.52V192zm-252.232 64.04a60.235 76.165 180 1 0 120.47 0 60.235 76.165 180 1 0-120.47 0zM32.003 96.002h447.994v-32H32.003z"/><glyph unicode="î¤" d="M479.748 355.514c0 15.757-12.77 28.528-28.528 28.528H60.78c-15.756 0-28.528-12.77-28.528-28.528V92.487c0-15.76 12.772-28.528 28.528-28.528h390.44c15.76 0 28.528 12.77 28.528 28.522V355.51zm-404.585-3.472h362.455c5.122 0 10.63-5.51 10.63-10.628V288.24H64.25v53.174c0 5.12 5.795 10.628 10.91 10.628zM437.617 96.046H75.163c-5.116 0-10.91 3.203-10.91 8.32v118.85h383.994v-118.85c0-5.117-5.508-8.32-10.63-8.32z"/><glyph unicode="î¥" d="M259.116 414.717C136.07 417.137 34.79 341.32 32.9 245.367c-.652-33.36 10.793-64.75 31.17-91.627h-.003C99.112 108.714 32.002 17.756 32.002 17.756L173.795 79.95c24.33-7.69 50.77-12.168 78.473-12.714 123.042-2.428 224.325 73.396 226.217 169.35 1.884 95.954-96.33 175.705-219.37 178.13z"/><glyph unicode="î¦" d="M256-.496C132.21-.496 31.504 100.216 31.504 224c0 123.79 100.707 224.496 224.496 224.496 123.79 0 224.496-100.708 224.496-224.496C480.496 100.216 379.79-.496 256-.496zm0 395.113c-94.078 0-170.617-76.54-170.617-170.617 0-94.082 76.54-170.617 170.617-170.617 94.087 0 170.617 76.535 170.617 170.617 0 94.078-76.53 170.617-170.617 170.617zM357.43 238.94h-83.642v102.79c0 12.34-9.996 22.34-22.345 22.34-12.34 0-22.344-10-22.344-22.34V216.278c0-12.165 9.87-22.025 22.023-22.025H357.43c12.34 0 22.345 10.005 22.345 22.344 0 12.34-10.006 22.345-22.345 22.345z"/><glyph unicode="î§" d="M182.964 32.002c-25.798 69.72-85.798 136.165-148.65 176.98l29.582 48.594c36.183-14.44 115.92-60.484 144.845-103.773 47.26 107.1 130.2 204.28 238.45 265.65l30.5-48.478C371.207 291.517 292.76 155.67 255.53 32.002h-72.566z"/><glyph unicode="î¨" d="M463.27 351.953H127.856l-74.126 73.56c-10.404 10.322-27.207 10.257-37.53-.146s-10.258-27.205.145-37.528l86.328-85.67 34.09-156.648c0-9.678 7.846-17.525 17.525-17.525h268.546c9.686 0 17.525 7.85 17.525 17.525l40.43 188.903c0 9.68-7.84 17.52-17.524 17.52zM334.076 48.083a47.978 47.978 180 1 0 95.956 0 47.978 47.978 180 1 0-95.955 0zm-189.816 0a47.978 47.978 180 1 0 95.955 0 47.978 47.978 180 1 0-95.956 0z"/><glyph unicode="î©" d="M256 447.998C132.29 447.998 32 347.71 32 224S132.29.002 256 .002 480 100.29 480 224 379.71 447.998 256 447.998zm-110.308-113.69c29.464 29.463 68.64 45.69 110.308 45.69 28.047 0 54.958-7.36 78.544-21.152L121.152 145.46c-13.79 23.584-21.15 50.494-21.15 78.54 0 41.668 16.226 80.843 45.69 110.307zm220.616-220.615c-29.464-29.465-68.64-45.69-110.308-45.69-28.047 0-54.958 7.36-78.544 21.152L390.843 302.55C404.637 278.96 412 252.05 412 224c0-41.67-16.228-80.843-45.692-110.307z"/><glyph unicode="îª" d="M172.063 193.823h45.78v-45.757h-45.78zm64.457-61.225h45.722v-45.75H236.52zm-64.457 0h45.78v-45.75h-45.78zm0 122.452h45.78v-45.73h-45.78zm196.412 89.124c10.47 0 18.95 8.495 18.95 18.977v65.39c-.002 10.48-8.482 18.964-18.95 18.964-10.494 0-18.98-8.483-18.98-18.964v-65.39c.005-10.48 8.486-18.976 18.98-18.976zm-224.103 0c10.467 0 18.946 8.495 18.946 18.977v65.39c0 10.48-8.48 18.964-18.946 18.964-10.495 0-18.98-8.483-18.98-18.964v-65.39c.003-10.48 8.485-18.976 18.98-18.976zm-36.77-150.35h45.758v-45.758h-45.757zm0-61.226h45.758v-45.75h-45.757zm128.918 61.225h45.722v-45.757H236.52zm128.88 0h45.755v-45.757H365.4zm0 61.227h45.755v-45.73H365.4zm28.276 159.943v-20.09c7.886-6.973 12.886-17.155 12.886-28.52 0-21.04-17.044-38.116-38.088-38.116-21.07 0-38.114 17.076-38.114 38.116 0 11.365 5 21.547 12.885 28.52v20.09h-173.67v-20.09c7.885-6.973 12.885-17.155 12.885-28.52 0-21.04-17.044-38.116-38.087-38.116-21.07 0-38.114 17.076-38.114 38.116 0 11.365 5 21.547 12.88 28.52v20.09H32.91V-.027h447.103v415.02h-86.337zM75.33 42.393v265.254h363.135V42.393H75.332zM236.52 255.05h45.722v-45.73H236.52zm64.452 0h45.755v-45.73h-45.755zm0-122.452h45.755v-45.75h-45.755zm0 61.225h45.755v-45.757h-45.755z"/><glyph unicode="î«" d="M317.874 207.586l-94.394 77.92v-44.68l-62.478.002v-66.476l62.476-.002v-44.668zm-190.47.215c0 33.48 14.616 63.54 37.808 84.16l-133.21 44.29V75.998L224.5 12v84.27c-54.85 7.552-97.096 54.603-97.096 111.53zM240 320.398c15.104 0 29.512-2.982 42.674-8.377l166.323 55.293-208.497 69.32L32.002 367.31l165.772-55.11c13.04 5.278 27.292 8.192 42.226 8.192zm112.596-112.59c0-56.84-42.12-103.834-96.848-111.495V12l192.497 63.995v260.247L314.855 291.9c23.153-20.624 37.74-50.656 37.74-84.1z"/><glyph unicode="î¬" d="M32.002 75.997L224.5 12.002V272.25L32.002 336.243zM240.5 436.634L32.002 367.31 240.5 297.994l208.497 69.314zm15.248-424.632l192.497 63.995v260.247L255.748 272.25z"/><glyph unicode="î" d="M381.254 375.126c11.73-16.323 17.626-35.857 17.626-58.604 0-23.444-5.932-42.296-17.78-56.524-6.646-7.99-16.385-15.3-29.295-21.893 19.58-7.107 34.383-18.403 44.35-33.856 9.958-15.46 14.955-34.23 14.955-56.27 0-22.744-5.71-43.132-17.1-61.192-7.23-11.98-16.294-22.063-27.19-30.225-12.257-9.372-26.717-15.826-43.382-19.27-16.664-3.51-34.728-5.214-54.244-5.214h-173v383.93h185.54c46.827-.684 80-14.32 99.52-40.885zm-208.472-25.788v-84.655h93.312c16.665 0 30.194 3.166 40.59 9.496 10.396 6.34 15.61 17.58 15.61 33.742 0 17.875-6.894 29.682-20.64 35.423-11.854 3.986-26.97 5.987-45.366 5.987h-83.506zm0-148.223V98.77h93.22c16.632 0 29.604 2.23 38.885 6.766 16.813 8.317 25.23 24.298 25.23 47.914 0 19.983-8.162 33.698-24.48 41.147-9.093 4.188-21.88 6.324-38.354 6.518h-94.5z"/><glyph unicode="î®" d="M448.146 103.733c-32.37 33.626-39.422 96.247-46.244 144.357C391.786 319.403 389.655 399.545 288 410.034v12.917c0 12.96-19.774 23.47-32.732 23.47-12.957 0-31.266-10.506-31.266-23.464V410.02c-100.815-10.56-104.324-90.675-114.348-161.95-6.768-48.13-13.766-110.76-45.87-144.4-6.48-6.796-8.294-16.798-4.6-25.43 3.698-8.64 12.184-14.237 21.576-14.237h350.482c9.406 0 17.907 5.62 21.597 14.286 3.67 8.65 1.83 18.67-4.7 25.44zM256-14.555c25.712 0 46.557 20.845 46.557 46.557h-93.113c0-25.712 20.843-46.557 46.556-46.557z"/><glyph unicode="î¯" d="M460.282 399.933c-29.56 29.43-80.832 26.523-110.294-3.05l-208.33-209.376c-21.037-21.13-23.085-57.45-1.915-78.236 21.114-21.162 57.36-19.01 78.394 2.12L347.59 241.67c5.136 4.71 5.526 12.354.21 18.147-4.96 5.41-15.47 5.63-19.812 1.268L199.015 131.4c-12.636-12.63-25.91-14.955-38.576-2.518-12.68 12.53-12.26 27.253.34 39.915L367.665 376.69l-.04.038c21.007 21.043 50.964 23.467 72 2.515 20.73-20.977 21.542-54.067.265-75.11l.01.044L186.925 49.795l.01-.03c-28.166-26.054-75.066-31.573-106.8-.542-29.504 29.422-26.094 77.855.507 107.7L256.117 333.39c2.717 2.804 5.62 13.407-.29 18.62-5.188 4.578-15.31 5.954-18.933 2.313L61.86 177.89C18.622 132.437 20.346 65.4 58.394 27.683c38.01-37.904 106.534-40.826 149.494 2.51L461.1 284.58c29.532 29.45 28.753 85.92-.818 115.353z"/><glyph unicode="î°" d="M256.023 463.354L32.188 192.187h128.348L160.53-1.098h190.962l.006 193.278h128.315z"/><glyph unicode="î±" d="M496.124 223.978L224.957 447.812V319.464l-193.285.005V128.502l193.277-.006V.19z"/><glyph unicode="î²" d="M15.544 223.978L286.71 447.812V319.464l193.286.005V128.502L286.72 128.5V.19z"/><glyph unicode="î³" d="M255.977-15.256l223.836 271.168h-128.35l.006 193.286H160.5L160.5 255.92H32.19z"/><glyph unicode="î´" d="M395.786 207.95c-.646 64.858 52.894 95.964 55.287 97.51-30.085 44.02-76.946 50.052-93.647 50.748-39.88 4.04-77.818-23.48-98.06-23.48-20.188 0-51.422 22.884-84.5 22.28-43.47-.645-83.55-25.274-105.934-64.206C23.768 212.432 57.367 96.33 101.386 32.77c21.51-31.112 47.16-66.058 80.835-64.81 32.43 1.296 44.7 20.984 83.9 20.984 39.21 0 50.23-20.983 84.55-20.34 34.9.65 57.01 31.708 78.37 62.915 24.7 36.09 34.87 71.032 35.47 72.83-.77.353-68.045 26.13-68.72 103.6zM331.3 398.286c17.875 21.685 29.94 51.77 26.648 81.783-25.746-1.05-56.954-17.15-75.426-38.79-16.575-19.194-31.083-49.826-27.194-79.24 28.74-2.243 58.08 14.605 75.973 36.242z"/><glyph unicode="îµ" d="M432 320c-17.6 0-32-14.4-32-32V160c0-17.6 14.4-32 32-32s32 14.4 32 32v128c0 17.6-14.4 32-32 32zm-384 0c-17.6 0-32-14.4-32-32V160c0-17.6 14.4-32 32-32s32 14.4 32 32v128c0 17.6-14.4 32-32 32zm48-208c0-26.51 21.49-48 48-48h16V0c0-17.6 14.4-32 32-32s32 14.4 32 32v64h32V0c0-17.6 14.4-32 32-32s32 14.4 32 32v64h16c26.51 0 48 21.49 48 48v176H96V112zm203.3 323.253l20.25 38.903c1.017 1.95.25 4.38-1.7 5.395-1.95 1.02-4.38.25-5.396-1.7l-20.56-39.49C275.798 444.58 258.3 448 240 448c-18.298 0-35.796-3.42-51.898-9.643l-20.558 39.492c-1.017 1.95-3.443 2.71-5.396 1.7-1.952-1.02-2.717-3.448-1.7-5.4l20.25-38.904c-45.315-20.51-78.12-63.79-83.81-115.25h286.22c-5.688 51.46-38.494 94.742-83.81 115.252zM176 344.8c-12.813 0-23.2 10.387-23.2 23.2s10.387 23.2 23.2 23.2c12.813 0 23.2-10.387 23.2-23.2 0-12.813-10.387-23.2-23.2-23.2zm128 0c-12.813 0-23.2 10.387-23.2 23.2s10.388 23.2 23.2 23.2 23.198-10.387 23.198-23.2-10.385-23.2-23.198-23.2z"/><glyph unicode="î¶" d="M32.74 415.823v-64.65H480v64.65H32.74zM480 320.15H32.74V255.5H480v64.65zm0-96.32H32.74v-64.666H480v64.667zm-.146-96H241.426V63.165h238.428v64.667z"/><glyph unicode="î·" d="M32.74 415.823v-64.65H480v64.65H32.74zm0-159.962H480v64.658H32.74V255.86zm0-96.69H480v64.666H32.74V159.17zm.147-96h238.427v64.667H32.887v-64.67z"/><glyph unicode="î¸" d="M32.37 415.823v-64.65h447.26v64.65H32.37zm0-159.962h447.26v64.658H32.37V255.86zm0-96.87h447.26v64.67H32.37v-64.67zm104.416-95.82h238.428v64.668H136.786v-64.67z"/><glyph unicode="î¹" d="M55.773 415.998l33.47-350.02 90.755 90.756 136.66-136.677 135.03 135.03L315.026 291.76l90.733 90.73z"/><glyph unicode="îº" d="M451.69 415.998l-33.47-350.02-90.755 90.756-136.66-136.677-135.032 135.03L192.438 291.76l-90.733 90.73z"/><glyph unicode="î»" d="M55.773 28.153l33.47 350.025 90.755-90.756L316.658 424.1l135.03-135.03-136.663-136.677 90.733-90.732z"/><glyph unicode="î¼" d="M451.69 28.153l-33.47 350.025-90.755-90.756L190.805 424.1 55.772 289.07l136.665-136.677-90.733-90.732z"/><glyph unicode="" d="M255.5 479L31.938 255.437h127.75V-32h191.625v287.437h127.75z"/><glyph unicode="" d="M142.056-32.65L-.91 156.134l88.93 67.317L182.044 99.3 418.53 479l94.682-58.958L233.86-32.65z"/><glyph unicode="î½" d="M511.352 435.355l-43.998 43.996L256 268 44.646 479.35.65 435.356 212.002 224 .65 12.647 44.645-31.35 256 180.003 467.354-31.35l43.998 43.997L299.997 224z"/><glyph unicode="î¾" d="M432.324 224.013c0 27.226 16.74 48.712 41.994 63.48-4.563 15.177-10.563 29.738-17.998 43.43-28.278-7.384-51.198 3.69-70.452 22.97-19.254 19.23-25.15 42.15-17.74 70.454-13.69 7.41-28.254 13.434-43.457 17.972-14.76-25.26-41.45-42-68.68-42-27.225 0-53.89 16.74-68.68 41.994-15.205-4.54-29.74-10.564-43.457-17.973 7.41-28.303 1.51-51.224-17.742-70.452-19.253-19.28-42.15-30.354-70.452-22.97-7.41-13.693-13.434-28.254-17.972-43.43 25.23-14.77 41.997-36.254 41.997-63.48 0-27.23-16.77-53.94-41.998-68.71 4.54-15.178 10.564-29.74 17.973-43.43 28.304 7.382 51.2 1.49 70.453-17.74 19.254-19.28 25.15-42.176 17.74-70.455 13.717-7.437 28.25-13.46 43.458-17.998C202.1 30.905 228.764 47.67 255.99 47.67c27.23 0 53.916-16.765 68.683-41.992 15.206 4.537 29.77 10.56 43.46 17.996-7.383 28.278-1.513 51.173 17.74 70.453 19.255 19.23 42.175 30.326 70.453 22.917 7.436 13.693 13.436 28.254 17.998 43.483-25.252 14.768-41.993 36.252-41.993 63.48zM255.986 129.05c-52.428 0-94.936 42.51-94.936 94.963 0 52.43 42.508 94.91 94.936 94.91 52.456 0 94.938-42.48 94.938-94.91 0-52.454-42.482-94.962-94.938-94.962z"/><glyph unicode="î¿" d="M427.555 397.486H84.457L55.65 342.648h400.7l-28.795 54.838zm-106.135 51.92H189.754v-26.548H321.42v26.547zM114.156-1.404h283.702l28.795 317.867H85.348l28.808-317.87zM322.633 288.83h25.488V27.337H322.64V288.83zm-80.21 0h26.315V27.337h-26.314V288.83zm-79.383 0h26.328V27.337H163.04V288.83z"/><glyph class="hidden" unicode="" d="M0 480L512-32H0z" horiz-adv-x="0"/></font></defs></svg> \ No newline at end of file diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.ttf b/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.ttf deleted file mode 100644 index ad27935ff5672575c593a4b1b86e8bd019b50456..0000000000000000000000000000000000000000 Binary files a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.ttf and /dev/null differ diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff b/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff deleted file mode 100644 index 699a9a667f4701a1cacffaf63f4951fc48f11c6c..0000000000000000000000000000000000000000 Binary files a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff and /dev/null differ diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff2 b/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff2 deleted file mode 100644 index 564c3e2191b5eeffceefd1b4c882e5b326f7fb30..0000000000000000000000000000000000000000 Binary files a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff2 and /dev/null differ diff --git a/app/code/Magento/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php b/app/code/Magento/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php index da5b79ad9dbec8a79cead48922eedbb0a1b7befc..bb986e14a26c9352c86a866ef652630d881e49d2 100644 --- a/app/code/Magento/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php +++ b/app/code/Magento/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php @@ -173,6 +173,8 @@ class Links extends \Magento\Backend\Block\Template $this->_sourceModel->toOptionArray() )->setValue( $this->getProduct()->getLinksPurchasedSeparately() + )->setClass( + 'admin__control-select' ); return $select->getHtml(); diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_downloadable.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_downloadable.xml index 136c8c3a07307f0d1131d52456f14204e73deba9..91234c097f475a6e26b6cac1b83ad4a637e374bf 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_downloadable.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_downloadable.xml @@ -8,6 +8,10 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="product_tabs"> + <!-- @todo ui: remove arguments within .admin__scope-old --> + <arguments> + <argument name="excluded_panel" xsi:type="string">product_info_tabs_downloadable_items_content</argument> + </arguments> <action method="addTab"> <argument name="name" xsi:type="string">downloadable_items</argument> <argument name="block" xsi:type="string">Magento\Downloadable\Block\Adminhtml\Catalog\Product\Edit\Tab\Downloadable</argument> 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 c7db53b3b85d63a7a0a6568f3efe26dea28270e1..dada69c3e47a9ba4ee7732276d71affd02ea4667 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 @@ -15,62 +15,60 @@ ?> <?php $_product = $block->getProduct()?> <?php $block->getConfigJson() ?> -<div class="admin__scope"> - <fieldset class="admin__fieldset downloadable-form"> - - <div class="admin__field" <?php echo !$block->isSingleStoreMode() ? ' data-config-scope="' . __('[STORE VIEW]') . '"' : ''; ?>> - <label class="admin__field-label" for="downloadable_links_title"><span><?php echo __('Title')?></span></label> - <div class="admin__field-control"> - <input type="text" class="admin__control-text" id="downloadable_links_title" name="product[links_title]" value="<?php echo $block->getLinksTitle() ?>" <?php echo($_product->getStoreId() && $block->getUsedDefault()) ? 'disabled="disabled"' : '' ?>> - <?php if ($_product->getStoreId()): ?> - <div class="admin__field admin__field-option"> - <input id="link_title_default" class="admin__control-checkbox" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $block->getUsedDefault() ? 'checked="checked"' : '' ?> /> - <label class="admin__field-label" for="link_title_default"><span><?php echo __('Use Default Value'); ?></span></label> - </div> - <?php endif; ?> - </div> +<fieldset class="admin__fieldset downloadable-form"> + + <div class="admin__field" <?php echo !$block->isSingleStoreMode() ? ' data-config-scope="' . __('[STORE VIEW]') . '"' : ''; ?>> + <label class="admin__field-label" for="downloadable_links_title"><span><?php echo __('Title')?></span></label> + <div class="admin__field-control"> + <input type="text" class="admin__control-text" id="downloadable_links_title" name="product[links_title]" value="<?php echo $block->getLinksTitle() ?>" <?php echo($_product->getStoreId() && $block->getUsedDefault()) ? 'disabled="disabled"' : '' ?>> + <?php if ($_product->getStoreId()): ?> + <div class="admin__field admin__field-option"> + <input id="link_title_default" class="admin__control-checkbox" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $block->getUsedDefault() ? 'checked="checked"' : '' ?> /> + <label class="admin__field-label" for="link_title_default"><span><?php echo __('Use Default Value'); ?></span></label> + </div> + <?php endif; ?> </div> + </div> - <div class="admin__field" <?php echo !$block->isSingleStoreMode() ? ' data-config-scope="' . __('[GLOBAL]') . '"' : ''; ?>> - <label class="admin__field-label" for="downloadable_link_purchase_type"><span><?php echo __('Links can be purchased separately')?></span></label> - <div class="admin__field-control"> - <?php echo $block->getPurchasedSeparatelySelect()?> - </div> + <div class="admin__field" <?php echo !$block->isSingleStoreMode() ? ' data-config-scope="' . __('[GLOBAL]') . '"' : ''; ?>> + <label class="admin__field-label" for="downloadable_link_purchase_type"><span><?php echo __('Links can be purchased separately')?></span></label> + <div class="admin__field-control"> + <?php echo $block->getPurchasedSeparatelySelect()?> </div> - <div class="admin__field admin__field-wide"> - <div class="admin__field-control"> - <div class="admin__control-table-wrapper"> - <table cellspacing="0" class="admin__control-table"> - <thead> - <tr> - <th class="col-title _required"><span><?php echo __('Title') ?></span></th> - <?php if ($block->getCanReadPrice() !== false) : ?> - <th class="col-price"><span><?php echo __('Price') ?></span></th> - <?php endif; ?> - <th class="col-limit"><span><?php echo __('Max. Downloads') ?></span></th> - <th class="col-option"><span><?php echo __('Shareable') ?></span></th> - <th class="col-sample"><span><?php echo __('Sample') ?></span></th> - <th class="col-file"><span><?php echo __('File') ?></span></th> - <th class="col-sort"><span><?php echo __('Sort Order') ?></span></th> - <th class="col-actions"> </th> - </tr> - </thead> - <tfoot> - <tr> - <td class="col-actions-add" colspan="8"><?php echo $block->getAddButtonHtml() ?></td> - </tr> - </tfoot> - <tbody id="link_items_body"> - </tbody> - </table> - </div> - <div class="admin__field-note"> - <span><?php echo __('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.')?></span> - </div> + </div> + <div class="admin__field admin__field-wide"> + <div class="admin__field-control"> + <div class="admin__control-table-wrapper"> + <table cellspacing="0" class="admin__control-table"> + <thead> + <tr> + <th class="col-title _required"><span><?php echo __('Title') ?></span></th> + <?php if ($block->getCanReadPrice() !== false) : ?> + <th class="col-price"><span><?php echo __('Price') ?></span></th> + <?php endif; ?> + <th class="col-limit"><span><?php echo __('Max. Downloads') ?></span></th> + <th class="col-option"><span><?php echo __('Shareable') ?></span></th> + <th class="col-sample"><span><?php echo __('Sample') ?></span></th> + <th class="col-file"><span><?php echo __('File') ?></span></th> + <th class="col-sort"><span><?php echo __('Sort Order') ?></span></th> + <th class="col-actions"> </th> + </tr> + </thead> + <tfoot> + <tr> + <td class="col-actions-add" colspan="8"><?php echo $block->getAddButtonHtml() ?></td> + </tr> + </tfoot> + <tbody id="link_items_body"> + </tbody> + </table> + </div> + <div class="admin__field-note"> + <span><?php echo __('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.')?></span> </div> </div> - </fieldset> -</div> + </div> +</fieldset> <script> require([ 'jquery', @@ -103,9 +101,9 @@ require([ <?php endif; ?> <?php endif; ?> '<td class="col-limit"><input type="text" id="downloadable_link_<%- data.id %>_downloads" name="downloadable[link][<%- data.id %>][number_of_downloads]" class="input-text admin__control-text downloads" value="<%- data.number_of_downloads %>" />'+ - '<p><input type="checkbox" class="checkbox" id="downloadable_link_<%- data.id %>_is_unlimited" name="downloadable[link][<%- data.id %>][is_unlimited]" value="1" <%- data.is_unlimited %> /> <label for="downloadable_link_<%- data.id %>_is_unlimited">Unlimited</label></p></td>'+ + '<p><input type="checkbox" class="checkbox admin__control-checkbox" id="downloadable_link_<%- data.id %>_is_unlimited" name="downloadable[link][<%- data.id %>][is_unlimited]" value="1" <%- data.is_unlimited %> /> <label for="downloadable_link_<%- data.id %>_is_unlimited">Unlimited</label></p></td>'+ '<td class="col-share">'+ - '<select id="downloadable_link _<%- data.id %>_shareable" name="downloadable[link][<%- data.id %>][is_shareable]">'+ + '<select id="downloadable_link _<%- data.id %>_shareable" class="admin__control-select" name="downloadable[link][<%- data.id %>][is_shareable]">'+ '<option value="1">Yes</option>'+ '<option value="0">No</option>'+ '<option value="2" selected="selected">Use config</option>'+ 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 85b099dd18a06cddb89a558f594cf399b3d4b7f3..82ba490f0cf862ddce3e8a84944e889443979a62 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 @@ -15,48 +15,46 @@ $_product = $block->getProduct(); $block->getConfigJson(); ?> -<div class="admin__scope"> - <fieldset class="admin__fieldset downloadable-form"> - <div class="admin__field"<?php echo !$block->isSingleStoreMode() ? ' data-config-scope="' . __('[STORE VIEW]') . '"' : ''; ?>> - <label class="admin__field-label" for="downloadable_samples_title"><span><?php echo __('Title')?></span></label> - <div class="admin__field-control"> - <input type="text" class="admin__control-text" id="downloadable_samples_title" name="product[samples_title]" value="<?php echo $block->getSamplesTitle() ?>" <?php echo($_product->getStoreId() && $block->getUsedDefault()) ? 'disabled="disabled"' : '' ?>> - <?php if ($_product->getStoreId()): ?> - <div class="admin__field admin__field-option"> - <input id="sample_title_default" class="admin__control-checkbox" type="checkbox" name="use_default[]" value="samples_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $block->getUsedDefault() ? 'checked="checked"' : '' ?> /> - <label class="admin__field-label" for="sample_title_default"><span>Use Default Value</span></label> - </div> - <?php endif; ?> - </div> - </div> - <div class="admin__field admin__field-wide"> - <div class="admin__field-control"> - <div class="admin__control-table-wrapper"> - <table cellspacing="0" class="admin__control-table"> - <thead> - <tr> - <th class="_required col-title"><span><?php echo __('Title') ?></span></th> - <th class="col-file"><span><?php echo __('File') ?></span></th> - <th class="col-sort"><span><?php echo __('Sort Order') ?></span></th> - <th class="col-actions"> </th> - </tr> - </thead> - <tfoot> - <tr> - <td colspan="4" class="col-actions"><?php echo $block->getAddButtonHtml() ?></td> - </tr> - </tfoot> - <tbody id="sample_items_body"> - </tbody> - </table> - </div> - <div class="admin__field-note"> - <span><?php echo __('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.')?></span> +<fieldset class="admin__fieldset downloadable-form"> + <div class="admin__field"<?php echo !$block->isSingleStoreMode() ? ' data-config-scope="' . __('[STORE VIEW]') . '"' : ''; ?>> + <label class="admin__field-label" for="downloadable_samples_title"><span><?php echo __('Title')?></span></label> + <div class="admin__field-control"> + <input type="text" class="admin__control-text" id="downloadable_samples_title" name="product[samples_title]" value="<?php echo $block->getSamplesTitle() ?>" <?php echo($_product->getStoreId() && $block->getUsedDefault()) ? 'disabled="disabled"' : '' ?>> + <?php if ($_product->getStoreId()): ?> + <div class="admin__field admin__field-option"> + <input id="sample_title_default" class="admin__control-checkbox" type="checkbox" name="use_default[]" value="samples_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $block->getUsedDefault() ? 'checked="checked"' : '' ?> /> + <label class="admin__field-label" for="sample_title_default"><span>Use Default Value</span></label> </div> + <?php endif; ?> + </div> + </div> + <div class="admin__field admin__field-wide"> + <div class="admin__field-control"> + <div class="admin__control-table-wrapper"> + <table cellspacing="0" class="admin__control-table"> + <thead> + <tr> + <th class="_required col-title"><span><?php echo __('Title') ?></span></th> + <th class="col-file"><span><?php echo __('File') ?></span></th> + <th class="col-sort"><span><?php echo __('Sort Order') ?></span></th> + <th class="col-actions"> </th> + </tr> + </thead> + <tfoot> + <tr> + <td colspan="4" class="col-actions"><?php echo $block->getAddButtonHtml() ?></td> + </tr> + </tfoot> + <tbody id="sample_items_body"> + </tbody> + </table> + </div> + <div class="admin__field-note"> + <span><?php echo __('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.')?></span> </div> </div> - </fieldset> -</div> + </div> +</fieldset> <script> require([ 'jquery', diff --git a/app/code/Magento/Eav/Block/Adminhtml/Attribute/Edit/Main/AbstractMain.php b/app/code/Magento/Eav/Block/Adminhtml/Attribute/Edit/Main/AbstractMain.php index bc7196634e0e80410fd37a4a665d5ec838f0e94b..597b4f563dd279b154b1518c1673a11e3178667f 100644 --- a/app/code/Magento/Eav/Block/Adminhtml/Attribute/Edit/Main/AbstractMain.php +++ b/app/code/Magento/Eav/Block/Adminhtml/Attribute/Edit/Main/AbstractMain.php @@ -210,7 +210,6 @@ abstract class AbstractMain extends \Magento\Backend\Block\Widget\Form\Generic 'name' => 'default_value_date', 'label' => __('Default Value'), 'title' => __('Default Value'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'value' => $attributeObject->getDefaultValue(), 'date_format' => $dateFormat ] diff --git a/app/code/Magento/Email/Model/Template.php b/app/code/Magento/Email/Model/Template.php index 5a331546d5831ca7bfafa0a00b84a85b342c5c91..8287fa82aca1e61954395a4611c788bc18c9410b 100644 --- a/app/code/Magento/Email/Model/Template.php +++ b/app/code/Magento/Email/Model/Template.php @@ -8,6 +8,7 @@ namespace Magento\Email\Model; use Magento\Email\Model\Template\Filter; use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Filter\Template as FilterTemplate; +use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; /** @@ -213,7 +214,7 @@ class Template extends \Magento\Email\Model\AbstractTemplate implements \Magento $store = $this->_storeManager->getStore($store); $fileName = $this->_scopeConfig->getValue( self::XML_PATH_DESIGN_EMAIL_LOGO, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE, + ScopeInterface::SCOPE_STORE, $store ); if ($fileName) { @@ -252,7 +253,7 @@ class Template extends \Magento\Email\Model\AbstractTemplate implements \Magento $store = $this->_storeManager->getStore($store); $alt = $this->_scopeConfig->getValue( self::XML_PATH_DESIGN_EMAIL_LOGO_ALT, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE, + ScopeInterface::SCOPE_STORE, $store ); if ($alt) { @@ -379,7 +380,7 @@ class Template extends \Magento\Email\Model\AbstractTemplate implements \Magento /** * Return true if this template can be used for sending queue as main template * - * @return boolean + * @return bool */ public function isValidForSend() { @@ -480,6 +481,7 @@ class Template extends \Magento\Email\Model\AbstractTemplate implements \Magento * Get exception, generated during send() method * * @return \Exception|null + * @codeCoverageIgnore */ public function getSendingException() { @@ -520,6 +522,7 @@ class Template extends \Magento\Email\Model\AbstractTemplate implements \Magento * * @param string|array $bcc * @return $this + * @codeCoverageIgnore */ public function addBcc($bcc) { @@ -532,6 +535,7 @@ class Template extends \Magento\Email\Model\AbstractTemplate implements \Magento * * @param string $email * @return $this + * @codeCoverageIgnore */ public function setReturnPath($email) { @@ -544,6 +548,7 @@ class Template extends \Magento\Email\Model\AbstractTemplate implements \Magento * * @param string $email * @return $this + * @codeCoverageIgnore */ public function setReplyTo($email) { diff --git a/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Edit/FormTest.php b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Edit/FormTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c5d1fefa9c28797f686e8247f61d1e696fbf3454 --- /dev/null +++ b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Edit/FormTest.php @@ -0,0 +1,103 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Test\Unit\Block\Adminhtml\Template\Edit; + +/** + * @covers \Magento\Email\Block\Adminhtml\Template\Edit\Form + */ +class FormTest extends \PHPUnit_Framework_TestCase +{ + /** @var \Magento\Email\Block\Adminhtml\Template\Edit\Form */ + protected $form; + + /** @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject */ + protected $registryMock; + + /** @var \Magento\Email\Model\Source\Variables|\PHPUnit_Framework_MockObject_MockObject */ + protected $variablesMock; + + /** @var \Magento\Variable\Model\VariableFactory|\PHPUnit_Framework_MockObject_MockObject */ + protected $variableFactoryMock; + + /** @var \Magento\Variable\Model\Variable|\PHPUnit_Framework_MockObject_MockObject */ + protected $variableMock; + + /** @var \Magento\Email\Model\Template|\PHPUnit_Framework_MockObject_MockObject */ + protected $templateMock; + + public function setUp() + { + $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry') + ->disableOriginalConstructor() + ->setMethods(['registry']) + ->getMock(); + $this->variablesMock = $this->getMockBuilder('Magento\Email\Model\Source\Variables') + ->disableOriginalConstructor() + ->setMethods(['toOptionArray']) + ->getMock(); + $this->variableFactoryMock = $this->getMockBuilder('Magento\Variable\Model\VariableFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->variableMock = $this->getMockBuilder('Magento\Variable\Model\Variable') + ->disableOriginalConstructor() + ->setMethods(['getVariablesOptionArray']) + ->getMock(); + $this->templateMock = $this->getMockBuilder('Magento\Email\Model\Template') + ->disableOriginalConstructor() + ->setMethods(['getId', 'getVariablesOptionArray']) + ->getMock(); + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->form = $objectManager->getObject( + 'Magento\Email\Block\Adminhtml\Template\Edit\Form', + [ + 'registry' => $this->registryMock, + 'variableFactory' => $this->variableFactoryMock, + 'variables' => $this->variablesMock + ] + ); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Edit\Form::getVariables + */ + public function testGetVariables() + { + $this->variablesMock->expects($this->once()) + ->method('toOptionArray') + ->willReturn(['var1', 'var2', 'var3']); + $this->variableFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($this->variableMock); + $this->variableMock->expects($this->once()) + ->method('getVariablesOptionArray') + ->willReturn(['custom var 1', 'custom var 2']); + $this->registryMock->expects($this->once()) + ->method('registry') + ->willReturn($this->templateMock); + $this->templateMock->expects($this->once()) + ->method('getId') + ->willReturn(1); + $this->templateMock->expects($this->once()) + ->method('getVariablesOptionArray') + ->willReturn(['template var 1', 'template var 2']); + $this->assertEquals( + [['var1', 'var2', 'var3'], ['custom var 1', 'custom var 2'], ['template var 1', 'template var 2']], + $this->form->getVariables() + ); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Edit\Form::getEmailTemplate + */ + public function testGetEmailTemplate() + { + $this->registryMock->expects($this->once()) + ->method('registry') + ->with('current_email_template'); + $this->form->getEmailTemplate(); + } +} diff --git a/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/ActionTest.php b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/ActionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fc41f9ff4aaf2b88e3227ac0f0ab9bb4f876a1c8 --- /dev/null +++ b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/ActionTest.php @@ -0,0 +1,63 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Test\Unit\Block\Adminhtml\Template\Grid\Renderer; + +/** + * @covers Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Action + */ +class ActionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Action + */ + protected $action; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $columnMock; + + protected function setUp() + { + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->columnMock = $this->getMockBuilder('Magento\Backend\Block\Widget\Grid\Column') + ->disableOriginalConstructor() + ->setMethods(['setActions', 'getActions']) + ->getMock(); + $this->action = $objectManager->getObject('Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Action'); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Action::render + */ + public function testRenderNoActions() + { + $this->columnMock->expects($this->once()) + ->method('setActions'); + $this->columnMock->expects($this->once()) + ->method('getActions') + ->willReturn(''); + $this->action->setColumn($this->columnMock); + $row = new \Magento\Framework\Object(); + $this->assertEquals(' ', $this->action->render($row)); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Action::render + */ + public function testRender() + { + $this->columnMock->expects($this->once()) + ->method('setActions'); + $this->columnMock->expects($this->once()) + ->method('getActions') + ->willReturn(['url', 'popup', 'caption']); + $this->action->setColumn($this->columnMock); + $row = new \Magento\Framework\Object(); + $row->setId(1); + $this->assertContains('action-select', $this->action->render($row)); + } +} diff --git a/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/SenderTest.php b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/SenderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..572b341759f50c4a7a92daf40444bdd028a05078 --- /dev/null +++ b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/SenderTest.php @@ -0,0 +1,63 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Test\Unit\Block\Adminhtml\Template\Grid\Renderer; + +/** + * @covers Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Sender + */ +class SenderTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Sender + */ + protected $sender; + + protected function setUp() + { + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->sender = $objectManager->getObject('Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Sender'); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Sender::render + */ + public function testRenderName() + { + $row = new \Magento\Framework\Object(); + $row->setTemplateSenderName('Sender Name'); + $this->assertEquals('Sender Name ', $this->sender->render($row)); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Sender::render + */ + public function testRenderEmail() + { + $row = new \Magento\Framework\Object(); + $row->setTemplateSenderEmail('Sender Email'); + $this->assertEquals('[Sender Email]', $this->sender->render($row)); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Sender::render + */ + public function testRenderNameAndEmail() + { + $row = new \Magento\Framework\Object(); + $row->setTemplateSenderName('Sender Name'); + $row->setTemplateSenderEmail('Sender Email'); + $this->assertEquals('Sender Name [Sender Email]', $this->sender->render($row)); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Sender::render + */ + public function testRenderEmpty() + { + $row = new \Magento\Framework\Object(); + $this->assertEquals('---', $this->sender->render($row)); + } +} diff --git a/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/TypeTest.php b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/TypeTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0e91708653a13afadd0af9a44dc282e5a0b83210 --- /dev/null +++ b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/Template/Grid/Renderer/TypeTest.php @@ -0,0 +1,53 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Test\Unit\Block\Adminhtml\Template\Grid\Renderer; + +/** + * @covers Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Type + */ +class TypeTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Type + */ + protected $type; + + protected function setUp() + { + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->type = $objectManager->getObject('Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Type'); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Type::render + */ + public function testRenderHtml() + { + $row = new \Magento\Framework\Object(); + $row->setTemplateType(\Magento\Framework\App\TemplateTypesInterface::TYPE_HTML); + $this->assertEquals('HTML', $this->type->render($row)); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Type::render + */ + public function testRenderText() + { + $row = new \Magento\Framework\Object(); + $row->setTemplateType(\Magento\Framework\App\TemplateTypesInterface::TYPE_TEXT); + $this->assertEquals('Text', $this->type->render($row)); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Grid\Renderer\Type::render + */ + public function testRenderUnknown() + { + $row = new \Magento\Framework\Object(); + $row->setTemplateType('xx'); + $this->assertEquals('Unknown', $this->type->render($row)); + } +} diff --git a/app/code/Magento/Email/Test/Unit/Block/Adminhtml/TemplateTest.php b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/TemplateTest.php new file mode 100644 index 0000000000000000000000000000000000000000..57cb9a6392f52fa592190c66b367c7af2f24c862 --- /dev/null +++ b/app/code/Magento/Email/Test/Unit/Block/Adminhtml/TemplateTest.php @@ -0,0 +1,121 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Test\Unit\Block\Adminhtml; + +/** + * @covers Magento\Email\Block\Adminhtml\Template + */ +class TemplateTest extends \PHPUnit_Framework_TestCase +{ + /** @var \Magento\Email\Block\Adminhtml\Template */ + protected $template; + + /** @var \Magento\Backend\Block\Template\Context */ + protected $context; + + /** @var \Magento\Framework\UrlInterface|\PHPUnit_Framework_MockObject_MockObject */ + protected $urlBuilderMock; + + /** @var \Magento\Backend\Block\Widget\Button\ItemFactory|\PHPUnit_Framework_MockObject_MockObject */ + protected $itemFactoryMock; + + /** @var \Magento\Backend\Block\Widget\Button\ButtonList */ + protected $buttonList; + + /** @var \Magento\Backend\Block\Widget\Button\Item|\PHPUnit_Framework_MockObject_MockObject */ + protected $buttonMock; + + /** @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->itemFactoryMock = $this->getMockBuilder('Magento\Backend\Block\Widget\Button\ItemFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->buttonMock = $this->getMockBuilder('Magento\Backend\Block\Widget\Button\Item') + ->disableOriginalConstructor() + ->getMock(); + $this->itemFactoryMock->expects($this->any()) + ->method('create') + ->willReturn($this->buttonMock); + $this->buttonList = $this->objectManager->getObject( + 'Magento\Backend\Block\Widget\Button\ButtonList', + [ 'itemFactory' => $this->itemFactoryMock] + ); + $this->urlBuilderMock = $this->getMockForAbstractClass( + 'Magento\Framework\UrlInterface', + [], + '', + false, + true, + true, + ['getUrl'] + ); + $this->context = $this->objectManager->getObject( + 'Magento\Backend\Block\Template\Context', + [ + 'urlBuilder' => $this->urlBuilderMock + ] + ); + $this->template = $this->objectManager->getObject( + 'Magento\Email\Block\Adminhtml\Template', + [ + 'context' => $this->context, + 'buttonList' => $this->buttonList + ] + ); + } + + public function testAddButton() + { + $this->template->addButton('1', ['title' => 'My Button']); + $buttons = $this->buttonList->getItems()[0]; + $this->assertContains('1', array_keys($buttons)); + } + + public function testUpdateButton() + { + $this->testAddButton(); + $this->buttonMock->expects($this->once()) + ->method('setData') + ->with('title', 'Updated Button') + ->willReturnSelf(); + $result = $this->template->updateButton('1', 'title', 'Updated Button'); + $this->assertSame($this->template, $result); + } + + public function testRemoveButton() + { + $this->testAddButton(); + $this->template->removeButton('1'); + $buttons = $this->buttonList->getItems()[0]; + $this->assertNotContains('1', array_keys($buttons)); + } + + public function testGetCreateUrl() + { + $this->urlBuilderMock->expects($this->once()) + ->method('getUrl') + ->with('adminhtml/*/new', []); + $this->template->getCreateUrl(); + } + + public function testGetHeaderText() + { + $this->assertEquals('Transactional Emails', $this->template->getHeaderText()); + } + + public function testCanRender() + { + $this->buttonMock->expects($this->once()) + ->method('isDeleted') + ->willReturn(false); + $this->assertTrue($this->template->canRender($this->buttonMock)); + } +} diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php new file mode 100644 index 0000000000000000000000000000000000000000..905318c274a3901b8f43cfc3f8afed87b4e04bdc --- /dev/null +++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php @@ -0,0 +1,259 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Test\Unit\Controller\Adminhtml\Email\Template; + +/** + * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit + */ +class EditTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Email\Controller\Adminhtml\Email\Template\Edit + */ + protected $editController; + + /** + * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject + */ + protected $registryMock; + + /** + * @var \Magento\Backend\App\Action\Context + */ + protected $context; + + /** + * @var \Magento\Framework\App\Request|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\App\View|\PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \Magento\Framework\View\Layout|\PHPUnit_Framework_MockObject_MockObject + */ + protected $layoutMock; + + /** + * @var \Magento\Backend\Block\Menu|\PHPUnit_Framework_MockObject_MockObject + */ + protected $menuBlockMock; + + /** + * @var \Magento\Backend\Block\Widget\Breadcrumbs|\PHPUnit_Framework_MockObject_MockObject + */ + protected $breadcrumbsBlockMock; + + /** + * @var \Magento\Backend\Block\Widget\Breadcrumbs|\PHPUnit_Framework_MockObject_MockObject + */ + protected $editBlockMock; + + /** + * @var \Magento\Framework\View\Result\Page|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resultPageMock; + + /** + * @var \Magento\Framework\View\Page\Config|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageConfigMock; + + /** + * @var \Magento\Framework\View\Page\Title|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageTitleMock; + + /** + * @return void + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + protected function setUp() + { + $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry') + ->disableOriginalConstructor() + ->setMethods(['registry', 'register']) + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Framework\App\View') + ->disableOriginalConstructor() + ->setMethods(['loadLayout', 'getLayout', 'getPage', 'renderLayout']) + ->getMock(); + $this->layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods(['getBlock', 'createBlock', 'setChild']) + ->getMock(); + $this->menuBlockMock = $this->getMockBuilder('\Magento\Backend\Block\Menu') + ->disableOriginalConstructor() + ->setMethods(['setActive', 'getMenuModel', 'getParentItems']) + ->getMock(); + $this->breadcrumbsBlockMock = $this->getMockBuilder('\Magento\Backend\Block\Widget\Breadcrumbs') + ->disableOriginalConstructor() + ->setMethods(['addLink']) + ->getMock(); + $this->editBlockMock = $this->getMockBuilder('\Magento\Backend\Block\Widget\Breadcrumbs') + ->disableOriginalConstructor() + ->setMethods(['setEditMode']) + ->getMock(); + $this->resultPageMock = $this->getMockBuilder('Magento\Framework\View\Result\Page') + ->disableOriginalConstructor() + ->setMethods(['setActiveMenu', 'getConfig', 'addBreadcrumb']) + ->getMock(); + $this->pageConfigMock = $this->getMockBuilder('Magento\Framework\View\Page\Config') + ->disableOriginalConstructor() + ->getMock(); + $this->pageTitleMock = $this->getMockBuilder('Magento\Framework\View\Page\Title') + ->disableOriginalConstructor() + ->getMock(); + + $this->viewMock->expects($this->atLeastOnce()) + ->method('getLayout') + ->willReturn($this->layoutMock); + $this->layoutMock->expects($this->any()) + ->method('getBlock') + ->willReturnMap( + [ + ['menu', $this->menuBlockMock], + ['breadcrumbs', $this->breadcrumbsBlockMock], + ['edit', $this->editBlockMock] + ] + ); + $this->menuBlockMock->expects($this->any()) + ->method('getMenuModel') + ->will($this->returnSelf()); + $this->menuBlockMock->expects($this->any()) + ->method('getParentItems') + ->will($this->returnValue([])); + $this->viewMock->expects($this->any()) + ->method('getPage') + ->willReturn($this->resultPageMock); + $this->resultPageMock->expects($this->any()) + ->method('getConfig') + ->willReturn($this->pageConfigMock); + $this->pageConfigMock->expects($this->any()) + ->method('getTitle') + ->willReturn($this->pageTitleMock); + $this->layoutMock->expects($this->once()) + ->method('createBlock') + ->with('Magento\Email\Block\Adminhtml\Template\Edit', 'template_edit', []) + ->willReturn($this->editBlockMock); + $this->editBlockMock->expects($this->once()) + ->method('setEditMode') + ->willReturnSelf(); + + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $templateMock = $this->getMockBuilder('Magento\Email\Model\Template') + ->disableOriginalConstructor() + ->getMock(); + $templateMock->expects($this->once()) + ->method('getId') + ->willReturn(1); + $templateMock->expects($this->any()) + ->method('getTemplateCode') + ->willReturn('My Template'); + $objectManagerMock = $this->getMockBuilder('Magento\Framework\App\ObjectManager') + ->disableOriginalConstructor() + ->getMock(); + $objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Email\Model\BackendTemplate') + ->willReturn($templateMock); + $this->context = $objectManager->getObject( + 'Magento\Backend\App\Action\Context', + [ + 'request' => $this->requestMock, + 'objectManager' => $objectManagerMock, + 'view' => $this->viewMock + ] + ); + $this->editController = $objectManager->getObject( + 'Magento\Email\Controller\Adminhtml\Email\Template\Edit', + [ + 'context' => $this->context, + 'coreRegistry' => $this->registryMock + ] + ); + } + + /** + * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::execute + */ + public function testExecuteNewTemplate() + { + $this->requestMock->expects($this->any()) + ->method('getParam') + ->with('id') + ->willReturn(0); + $this->registryMock->expects($this->atLeastOnce()) + ->method('registry') + ->willReturnMap( + [ + ['email_template', true], + ['current_email_template', true] + ] + ); + $this->pageTitleMock->expects($this->any()) + ->method('prepend') + ->willReturnMap( + [ + ['Email Templates', $this->returnSelf()], + ['New Template', $this->returnSelf()] + ] + ); + $this->breadcrumbsBlockMock->expects($this->any()) + ->method('addLink') + ->willReturnMap( + [ + ['Transactional Emails', 'Transactional Emails', null, $this->returnSelf()], + ['New Template', 'New System Template', null, $this->returnSelf()] + ] + ); + + $this->assertNull($this->editController->execute()); + } + + /** + * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::execute + */ + public function testExecuteEdit() + { + $this->requestMock->expects($this->any()) + ->method('getParam') + ->with('id') + ->willReturn(1); + $this->registryMock->expects($this->atLeastOnce()) + ->method('registry') + ->willReturnMap( + [ + ['email_template', false], + ['current_email_template', false] + ] + ); + $this->pageTitleMock->expects($this->any()) + ->method('prepend') + ->willReturnMap( + [ + ['Email Templates', $this->returnSelf()], + ['My Template', $this->returnSelf()] + ] + ); + $this->breadcrumbsBlockMock->expects($this->any()) + ->method('addLink') + ->willReturnMap( + [ + ['Transactional Emails', 'Transactional Emails', null, $this->returnSelf()], + ['Edit Template', 'Edit System Template', null, $this->returnSelf()] + ] + ); + + $this->assertNull($this->editController->execute()); + } +} diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c5ada6573f6b86c0c52a99a850944c56aacfc26b --- /dev/null +++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php @@ -0,0 +1,192 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Test\Unit\Controller\Adminhtml\Email\Template; + +/** + * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index + */ +class IndexTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Email\Controller\Adminhtml\Email\Template\Index + */ + protected $indexController; + + /** + * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject + */ + protected $registryMock; + + /** + * @var \Magento\Backend\App\Action\Context + */ + protected $context; + + /** + * @var \Magento\Framework\App\Request|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\App\View|\PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \Magento\Framework\View\Layout|\PHPUnit_Framework_MockObject_MockObject + */ + protected $layoutMock; + + /** + * @var \Magento\Backend\Block\Menu|\PHPUnit_Framework_MockObject_MockObject + */ + protected $menuBlockMock; + + /** + * @var \Magento\Backend\Block\Widget\Breadcrumbs|\PHPUnit_Framework_MockObject_MockObject + */ + protected $breadcrumbsBlockMock; + + /** + * @var \Magento\Framework\View\Result\Page|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resultPageMock; + + /** + * @var \Magento\Framework\View\Page\Config|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageConfigMock; + + /** + * @var \Magento\Framework\View\Page\Title|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageTitleMock; + + protected function setUp() + { + $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry') + ->disableOriginalConstructor() + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Framework\App\View') + ->disableOriginalConstructor() + ->setMethods(['loadLayout', 'getLayout', 'getPage', 'renderLayout']) + ->getMock(); + $this->layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods(['getBlock']) + ->getMock(); + $this->menuBlockMock = $this->getMockBuilder('\Magento\Backend\Block\Menu') + ->disableOriginalConstructor() + ->setMethods(['setActive', 'getMenuModel', 'getParentItems']) + ->getMock(); + $this->breadcrumbsBlockMock = $this->getMockBuilder('\Magento\Backend\Block\Widget\Breadcrumbs') + ->disableOriginalConstructor() + ->setMethods(['addLink']) + ->getMock(); + $this->resultPageMock = $this->getMockBuilder('Magento\Framework\View\Result\Page') + ->disableOriginalConstructor() + ->setMethods(['setActiveMenu', 'getConfig', 'addBreadcrumb']) + ->getMock(); + $this->pageConfigMock = $this->getMockBuilder('Magento\Framework\View\Page\Config') + ->disableOriginalConstructor() + ->getMock(); + $this->pageTitleMock = $this->getMockBuilder('Magento\Framework\View\Page\Title') + ->disableOriginalConstructor() + ->getMock(); + + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->context = $objectManager->getObject( + 'Magento\Backend\App\Action\Context', + [ + 'request' => $this->requestMock, + 'view' => $this->viewMock + ] + ); + $this->indexController = $objectManager->getObject( + 'Magento\Email\Controller\Adminhtml\Email\Template\Index', + [ + 'context' => $this->context, + 'coreRegistry' => $this->registryMock + ] + ); + } + + /** + * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::execute + */ + public function testExecute() + { + $this->prepareExecute(); + + $this->viewMock->expects($this->atLeastOnce()) + ->method('getLayout') + ->willReturn($this->layoutMock); + $this->layoutMock->expects($this->at(0)) + ->method('getBlock') + ->with('menu') + ->will($this->returnValue($this->menuBlockMock)); + $this->menuBlockMock->expects($this->any()) + ->method('getMenuModel') + ->will($this->returnSelf()); + $this->menuBlockMock->expects($this->any()) + ->method('getParentItems') + ->will($this->returnValue([])); + $this->viewMock->expects($this->once()) + ->method('getPage') + ->willReturn($this->resultPageMock); + $this->resultPageMock->expects($this->once()) + ->method('getConfig') + ->willReturn($this->pageConfigMock); + $this->pageConfigMock->expects($this->once()) + ->method('getTitle') + ->willReturn($this->pageTitleMock); + $this->pageTitleMock->expects($this->once()) + ->method('prepend') + ->with('Email Templates'); + $this->layoutMock->expects($this->at(1)) + ->method('getBlock') + ->with('breadcrumbs') + ->will($this->returnValue($this->breadcrumbsBlockMock)); + $this->breadcrumbsBlockMock->expects($this->any()) + ->method('addLink') + ->willReturnSelf(); + + $this->assertNull($this->indexController->execute()); + } + + /** + * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::execute + */ + public function testExecuteAjax() + { + $this->prepareExecute(true); + $indexController = $this->getMockBuilder('Magento\Email\Controller\Adminhtml\Email\Template\Index') + ->setMethods(['getRequest', '_forward']) + ->disableOriginalConstructor() + ->getMock(); + $indexController->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $indexController->expects($this->once()) + ->method('_forward') + ->with('grid'); + $this->assertNull($indexController->execute()); + } + + /** + * @param bool $ajax + */ + protected function prepareExecute($ajax = false) + { + $this->requestMock->expects($this->once()) + ->method('getQuery') + ->with('ajax') + ->willReturn($ajax); + } +} diff --git a/app/code/Magento/Email/Test/Unit/Model/Source/VariablesTest.php b/app/code/Magento/Email/Test/Unit/Model/Source/VariablesTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e74ee0d625c59904e80c1e974f5edff2314be4c4 --- /dev/null +++ b/app/code/Magento/Email/Test/Unit/Model/Source/VariablesTest.php @@ -0,0 +1,90 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Test\Unit\Model\Source; + +use Magento\Store\Model\Store; + +/** + * Unit test for Magento\Email\Model\Source\Variables + */ +class VariablesTest extends \PHPUnit_Framework_TestCase +{ + /** + * Variables model + * + * @var \Magento\Email\Model\Source\Variables + */ + protected $model; + + /** + * Config variables + * + * @var array + */ + protected $configVariables; + + protected function setup() + { + $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->model = $helper->getObject('Magento\Email\Model\Source\Variables'); + $this->configVariables = [ + [ + 'value' => Store::XML_PATH_UNSECURE_BASE_URL, + 'label' => __('Base Unsecure URL'), + ], + ['value' => Store::XML_PATH_SECURE_BASE_URL, 'label' => __('Base Secure URL')], + ['value' => 'trans_email/ident_general/name', 'label' => __('General Contact Name')], + ['value' => 'trans_email/ident_general/email', 'label' => __('General Contact Email')], + ['value' => 'trans_email/ident_sales/name', 'label' => __('Sales Representative Contact Name')], + ['value' => 'trans_email/ident_sales/email', 'label' => __('Sales Representative Contact Email')], + ['value' => 'trans_email/ident_custom1/name', 'label' => __('Custom1 Contact Name')], + ['value' => 'trans_email/ident_custom1/email', 'label' => __('Custom1 Contact Email')], + ['value' => 'trans_email/ident_custom2/name', 'label' => __('Custom2 Contact Name')], + ['value' => 'trans_email/ident_custom2/email', 'label' => __('Custom2 Contact Email')], + ['value' => 'general/store_information/name', 'label' => __('Store Name')], + ['value' => 'general/store_information/phone', 'label' => __('Store Phone Number')], + ['value' => 'general/store_information/country_id', 'label' => __('Country')], + ['value' => 'general/store_information/region_id', 'label' => __('Region/State')], + ['value' => 'general/store_information/postcode', 'label' => __('Zip/Postal Code')], + ['value' => 'general/store_information/city', 'label' => __('City')], + ['value' => 'general/store_information/street_line1', 'label' => __('Street Address 1')], + ['value' => 'general/store_information/street_line2', 'label' => __('Street Address 2')], + ]; + } + + public function testToOptionArrayWithoutGroup() + { + $optionArray = $this->model->toOptionArray(); + $this->assertEquals(count($this->configVariables), count($optionArray)); + + $index = 0; + foreach ($optionArray as $variable) { + $expectedValue = '{{config path="' . $this->configVariables[$index]['value'] . '"}}'; + $expectedLabel = $this->configVariables[$index]['label']; + $this->assertEquals($expectedValue, $variable['value']); + $this->assertEquals($expectedLabel, $variable['label']->getText()); + $index++; + } + } + + public function testToOptionArrayWithGroup() + { + $optionArray = $this->model->toOptionArray(true); + $this->assertEquals('Store Contact Information', $optionArray['label']->getText()); + + $optionArrayValues = $optionArray['value']; + $this->assertEquals(count($this->configVariables), count($optionArrayValues)); + + $index = 0; + foreach ($optionArrayValues as $variable) { + $expectedValue = '{{config path="' . $this->configVariables[$index]['value'] . '"}}'; + $expectedLabel = $this->configVariables[$index]['label']; + $this->assertEquals($expectedValue, $variable['value']); + $this->assertEquals($expectedLabel, $variable['label']->getText()); + $index++; + } + } +} diff --git a/app/code/Magento/Email/Test/Unit/Model/TemplateTest.php b/app/code/Magento/Email/Test/Unit/Model/TemplateTest.php index 304621aa78b5ee06d108e5a8ddb4f83c448e2ef1..c18cab16cf5844c798af57c0bc12b19711802c76 100644 --- a/app/code/Magento/Email/Test/Unit/Model/TemplateTest.php +++ b/app/code/Magento/Email/Test/Unit/Model/TemplateTest.php @@ -5,8 +5,737 @@ */ namespace Magento\Email\Test\Unit\Model; +use Magento\Email\Model\Template\Filter; +use Magento\Framework\App\Filesystem\DirectoryList; +use Magento\Framework\Filter\Template as FilterTemplate; + +/** + * Covers \Magento\Email\Model\Template + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class TemplateTest extends \PHPUnit_Framework_TestCase { + /** + * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject + */ + private $context; + + /** + * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $design; + + /** + * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject + */ + private $registry; + + /** + * @var \Magento\Store\Model\App\Emulation|\PHPUnit_Framework_MockObject_MockObject + */ + private $appEmulation; + + /** + * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $storeManager; + + /** + * @var \Magento\Framework\Filesystem|\PHPUnit_Framework_MockObject_MockObject + */ + private $filesystem; + + /** + * @var \Magento\Framework\View\Asset\Repository|\PHPUnit_Framework_MockObject_MockObject + */ + private $assetRepo; + + /** + * @var \Magento\Framework\View\FileSystem|\PHPUnit_Framework_MockObject_MockObject + */ + private $viewFileSystem; + + /** + * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $scopeConfig; + + /** + * @var \Magento\Email\Model\Template\FilterFactory|\PHPUnit_Framework_MockObject_MockObject + */ + private $emailFilterFactory; + + /** + * @var \Magento\Email\Model\Template\Config|\PHPUnit_Framework_MockObject_MockObject + */ + private $emailConfig; + + public function setUp() + { + $this->context = $this->getMockBuilder('Magento\Framework\Model\Context') + ->disableOriginalConstructor() + ->getMock(); + $this->design = $this->getMockBuilder('Magento\Framework\View\DesignInterface') + ->disableOriginalConstructor() + ->getMock(); + $this->registry = $this->getMockBuilder('Magento\Framework\Registry') + ->disableOriginalConstructor() + ->getMock(); + $this->appEmulation = $this->getMockBuilder('Magento\Store\Model\App\Emulation') + ->disableOriginalConstructor() + ->getMock(); + $this->storeManager = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface') + ->disableOriginalConstructor() + ->getMock(); + $this->filesystem = $this->getMockBuilder('Magento\Framework\Filesystem') + ->disableOriginalConstructor() + ->getMock(); + $this->assetRepo = $this->getMockBuilder('Magento\Framework\View\Asset\Repository') + ->disableOriginalConstructor() + ->getMock(); + $this->viewFileSystem = $this->getMockBuilder('Magento\Framework\View\FileSystem') + ->disableOriginalConstructor() + ->getMock(); + $this->scopeConfig = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface') + ->disableOriginalConstructor() + ->getMock(); + $this->emailFilterFactory = $this->getMockBuilder('Magento\Email\Model\Template\FilterFactory') + ->disableOriginalConstructor() + ->getMock(); + $this->emailConfig = $this->getMockBuilder('Magento\Email\Model\Template\Config') + ->disableOriginalConstructor() + ->getMock(); + } + + /** + * Return the model under test with additional methods mocked. + * + * @param $mockedMethods array + * @return \Magento\Email\Model\Template|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getModelMock(array $mockedMethods = []) + { + return $this->getMockBuilder('Magento\Email\Model\Template') + ->setMethods(array_merge($mockedMethods, ['__wakeup', '__sleep', '_init'])) + ->setConstructorArgs( + [ + $this->context, + $this->design, + $this->registry, + $this->appEmulation, + $this->storeManager, + $this->filesystem, + $this->assetRepo, + $this->viewFileSystem, + $this->scopeConfig, + $this->emailFilterFactory, + $this->emailConfig + ] + ) + ->getMock(); + } + + public function testGetDefaultEmailLogo() + { + $model = $this->getModelMock(); + $value = 'urlWithParamsValue'; + $this->assetRepo->method('getUrlWithParams') + ->with('Magento_Email::logo_email.png', ['area' => \Magento\Framework\App\Area::AREA_FRONTEND]) + ->will($this->returnValue($value)); + $this->assertEquals($value, $model->getDefaultEmailLogo()); + } + + public function testSetAndGetTemplateFilter() + { + $model = $this->getModelMock(); + $filterTemplate = $this->getMockBuilder('Magento\Framework\Filter\Template') + ->disableOriginalConstructor() + ->getMock(); + $model->setTemplateFilter($filterTemplate); + $this->assertSame($filterTemplate, $model->getTemplateFilter()); + } + + public function testGetTemplateFilterWithEmptyValue() + { + $filterTemplate = $this->getMockBuilder('Magento\Framework\Filter\Template') + ->setMethods(['setUseAbsoluteLinks', 'setStoreId']) + ->disableOriginalConstructor() + ->getMock(); + $filterTemplate->expects($this->once()) + ->method('setUseAbsoluteLinks') + ->will($this->returnSelf()); + $filterTemplate->expects($this->once()) + ->method('setStoreId') + ->will($this->returnSelf()); + $this->emailFilterFactory->method('create') + ->will($this->returnValue($filterTemplate)); + $designConfig = $this->getMockBuilder('Magento\Framework\Object') + ->setMethods(['getStore']) + ->disableOriginalConstructor() + ->getMock(); + + $model = $this->getModelMock(['getUseAbsoluteLinks', 'getDesignConfig']); + $model->expects($this->once()) + ->method('getDesignConfig') + ->will($this->returnValue($designConfig)); + + $this->assertSame($filterTemplate, $model->getTemplateFilter()); + } + + /** + * @param $templateType string + * @param $templateText string + * @param $parsedTemplateText string + * @param $expectedTemplateSubject string|null + * @param $expectedOrigTemplateVariables array|null + * @param $expectedTemplateStyles string|null + * @dataProvider loadDefaultDataProvider + */ + public function testLoadDefault( + $templateType, + $templateText, + $parsedTemplateText, + $expectedTemplateSubject, + $expectedOrigTemplateVariables, + $expectedTemplateStyles + ) { + $model = $this->getModelMock(); + + $templateId = 'templateId'; + + $templateFile = 'templateFile'; + $this->emailConfig->expects($this->once()) + ->method('getTemplateFilename') + ->with($templateId) + ->will($this->returnValue($templateFile)); + $this->emailConfig->expects($this->once()) + ->method('getTemplateType') + ->with($templateId) + ->will($this->returnValue($templateType)); + + $modulesDir = $this->getMockBuilder('Magento\Framework\Filesystem\Directory\ReadInterface') + ->setMethods(['readFile', 'getRelativePath']) + ->getMockForAbstractClass(); + + $relativePath = 'relativePath'; + $modulesDir->expects($this->once()) + ->method('getRelativePath') + ->with($templateFile) + ->will($this->returnValue($relativePath)); + $modulesDir->expects($this->once()) + ->method('readFile') + ->will($this->returnValue($templateText)); + + $this->filesystem->expects($this->once()) + ->method('getDirectoryRead') + ->with(\Magento\Framework\App\Filesystem\DirectoryList::MODULES) + ->will($this->returnValue($modulesDir)); + + $model->loadDefault($templateId); + + if ($templateType === 'html') { + $this->assertEquals(\Magento\Email\Model\Template::TYPE_HTML, $model->getTemplateType()); + } else { + $this->assertEquals(\Magento\Email\Model\Template::TYPE_TEXT, $model->getTemplateType()); + } + $this->assertEquals($templateId, $model->getId()); + $this->assertEquals($parsedTemplateText, $model->getTemplateText()); + $this->assertEquals($expectedTemplateSubject, $model->getTemplateSubject()); + $this->assertEquals($expectedOrigTemplateVariables, $model->getData('orig_template_variables')); + $this->assertEquals($expectedTemplateStyles, $model->getTemplateStyles()); + } + + public function loadDefaultDataProvider() + { + return [ + 'empty' => [ + 'templateType' => 'html', + 'templateText' => '', + 'parsedTemplateText' => '', + 'expectedTemplateSubject' => null, + 'expectedOrigTemplateVariables' => null, + 'expectedTemplateStyles' => null, + ], + 'copyright in Plain Text Removed' => [ + 'templateType' => 'text', + 'templateText' => '<!-- Copyright © 2015 Magento. All rights reserved. -->', + 'parsedTemplateText' => '', + 'expectedTemplateSubject' => null, + 'expectedOrigTemplateVariables' => null, + 'expectedTemplateStyles' => null, + ], + 'copyright in HTML Remains' => [ + 'templateType' => 'html', + 'templateText' => '<!-- Copyright © 2015 Magento. All rights reserved. -->', + 'parsedTemplateText' => '<!-- Copyright © 2015 Magento. All rights reserved. -->', + 'expectedTemplateSubject' => null, + 'expectedOrigTemplateVariables' => null, + 'expectedTemplateStyles' => null, + ], + 'subject set' => [ + 'templateType' => 'html', + 'templateText' => '<!--@subject Email Subject @-->', + 'parsedTemplateText' => '', + 'expectedTemplateSubject' => 'Email Subject', + 'expectedOrigTemplateVariables' => null, + 'expectedTemplateStyles' => null, + ], + 'orig_template_variables set' => [ + 'templateType' => 'html', + 'templateText' => '<!--@vars {"store url=\"\"":"Store Url"} @-->Some Other Text', + 'parsedTemplateText' => 'Some Other Text', + 'expectedTemplateSubject' => null, + 'expectedOrigTemplateVariables' => '{"store url=\"\"":"Store Url"}', + 'expectedTemplateStyles' => null, + ], + 'styles' => [ + 'templateType' => 'html', + 'templateText' => '<!--@vars {"store url=\"\"":"Store Url"} @-->Some Other Text', + 'parsedTemplateText' => 'Some Other Text', + 'expectedTemplateSubject' => null, + 'expectedOrigTemplateVariables' => '{"store url=\"\"":"Store Url"}', + 'expectedTemplateStyles' => null, + ], + ]; + } + + public function testLoadByCode() + { + $templateCode = 'templateCode'; + $templateData = ['templateData']; + $resource = $this->getMockBuilder('Magento\Email\Model\Resource\Template') + ->setMethods(['loadByCode']) + ->disableOriginalConstructor() + ->getMock(); + $resource->expects($this->once()) + ->method('loadByCode') + ->with($templateCode) + ->will($this->returnValue($templateData)); + $model = $this->getModelMock(['addData', 'getResource']); + $model->expects($this->once()) + ->method('getResource') + ->will($this->returnValue($resource)); + $model->expects($this->once()) + ->method('addData') + ->with($templateData); + $this->assertEquals($model, $model->loadByCode($templateCode)); + } + + public function testGetAndSetId() + { + $model = $this->getModelMock(); + $templateId = 'templateId'; + $this->assertEquals($model, $model->setId($templateId)); + $this->assertEquals($templateId, $model->getId()); + } + + /** + * @param $isSMTPDisabled bool + * @param $senderName string + * @param $senderEmail string + * @param $templateSubject string + * @dataProvider isValidForSendDataProvider + */ + public function testIsValidForSend($isSMTPDisabled, $senderName, $senderEmail, $templateSubject, $expectedValue) + { + $this->scopeConfig->expects($this->once()) + ->method('isSetFlag') + ->with('system/smtp/disable', \Magento\Store\Model\ScopeInterface::SCOPE_STORE) + ->will($this->returnValue($isSMTPDisabled)); + $model = $this->getModelMock(['getSenderName', 'getSenderEmail', 'getTemplateSubject']); + $model->expects($this->any()) + ->method('getSenderName') + ->will($this->returnValue($senderName)); + $model->expects($this->any()) + ->method('getSenderEmail') + ->will($this->returnValue($senderEmail)); + $model->expects($this->any()) + ->method('getTemplateSubject') + ->will($this->returnValue($templateSubject)); + $this->assertEquals($expectedValue, $model->isValidForSend()); + } + + public function isValidForSendDataProvider() + { + return [ + 'should be valid' => [ + 'isSMTPDisabled' => false, + 'senderName' => 'sender name', + 'senderEmail' => 'email@example.com', + 'templateSubject' => 'template subject', + 'expectedValue' => true + ], + 'no smtp so not valid' => [ + 'isSMTPDisabled' => true, + 'senderName' => 'sender name', + 'senderEmail' => 'email@example.com', + 'templateSubject' => 'template subject', + 'expectedValue' => false + ], + 'no sender name so not valid' => [ + 'isSMTPDisabled' => false, + 'senderName' => '', + 'senderEmail' => 'email@example.com', + 'templateSubject' => 'template subject', + 'expectedValue' => false + ], + 'no sender email so not valid' => [ + 'isSMTPDisabled' => false, + 'senderName' => 'sender name', + 'senderEmail' => '', + 'templateSubject' => 'template subject', + 'expectedValue' => false + ], + 'no subject so not valid' => [ + 'isSMTPDisabled' => false, + 'senderName' => 'sender name', + 'senderEmail' => 'email@example.com', + 'templateSubject' => '', + 'expectedValue' => false + ], + ]; + } + + /** + * @param $variables array + * @param $templateType string + * @param $storeId int + * @param $expectedVariables array + * @param $expectedResult string + * @dataProvider getProcessedTemplateProvider + */ + public function testGetProcessedTemplate($variables, $templateType, $storeId, $expectedVariables, $expectedResult) + { + $filterTemplate = $this->getMockBuilder('Magento\Framework\Filter\Template') + ->setMethods([ + 'setUseSessionInUrl', + 'setPlainTemplateMode', + 'setVariables', + 'setStoreId', + 'filter', + 'getStoreId', + ]) + ->disableOriginalConstructor() + ->getMock(); + $filterTemplate->expects($this->once()) + ->method('setUseSessionInUrl') + ->with(false) + ->will($this->returnSelf()); + $filterTemplate->expects($this->once()) + ->method('setPlainTemplateMode') + ->with($templateType === \Magento\Framework\App\TemplateTypesInterface::TYPE_TEXT) + ->will($this->returnSelf()); + $filterTemplate->expects($this->any()) + ->method('setStoreId') + ->will($this->returnSelf()); + $filterTemplate->expects($this->any()) + ->method('getStoreId') + ->will($this->returnValue($storeId)); + + $store = $this->getMockBuilder('Magento\Store\Model\Store') + ->setMethods(['getFrontendName']) + ->disableOriginalConstructor() + ->getMock(); + $store->expects($this->any()) + ->method('getFrontendName') + ->will($this->returnValue('frontendName')); + $this->storeManager->expects($this->any()) + ->method('getStore') + ->will($this->returnValue($store)); + + $model = $this->getModelMock(['getDesignConfig', '_applyDesignConfig', 'getPreparedTemplateText']); + $model->setTemplateFilter($filterTemplate); + $model->setTemplateType($templateType); + + $designConfig = $this->getMockBuilder('Magento\Framework\Object') + ->setMethods(['getStore']) + ->disableOriginalConstructor() + ->getMock(); + $storeId = 'storeId'; + $designConfig->expects($this->once()) + ->method('getStore') + ->will($this->returnValue($storeId)); + $model->expects($this->once()) + ->method('getDesignConfig') + ->will($this->returnValue($designConfig)); + $filterTemplate->expects($this->once()) + ->method('setVariables') + ->with(array_merge([ 'this' => $model], $expectedVariables)); + + $preparedTemplateText = 'prepared text'; + $model->expects($this->once()) + ->method('getPreparedTemplateText') + ->will($this->returnValue($preparedTemplateText)); + $filterTemplate->expects($this->once()) + ->method('filter') + ->with($preparedTemplateText) + ->will($this->returnValue($expectedResult)); + + $this->assertEquals($expectedResult, $model->getProcessedTemplate($variables)); + } + + /** + * @return array + */ + public function getProcessedTemplateProvider() + { + return [ + 'default' => [ + 'variables' => [], + 'templateType' => \Magento\Framework\App\TemplateTypesInterface::TYPE_TEXT, + 'storeId' => 1, + 'expectedVariables' => [ + 'logo_url' => null, + 'logo_alt' => 'frontendName', + ], + 'expectedResult' => 'expected result', + ], + 'logo variables set' => [ + 'variables' => [ + 'logo_url' => 'http://example.com/logo', + 'logo_alt' => 'Logo Alt', + ], + 'templateType' => \Magento\Framework\App\TemplateTypesInterface::TYPE_HTML, + 'storeId' => 1, + 'expectedVariables' => [ + 'logo_url' => 'http://example.com/logo', + 'logo_alt' => 'Logo Alt', + ], + 'expectedResult' => 'expected result', + ], + ]; + } + + /** + * @param $templateType string + * @param $templateStyles string + * @param $templateText string + * @param $expectedResult string + * @dataProvider getPreparedTemplateTextProvider + */ + public function testGetPreparedTemplateText($templateType, $templateStyles, $templateText, $expectedResult) + { + $model = $this->getModelMock(); + $model->setTemplateType($templateType); + $model->setTemplateStyles($templateStyles); + $model->setTemplateText($templateText); + $this->assertEquals($expectedResult, $model->getPreparedTemplateText()); + } + + public function getPreparedTemplateTextProvider() + { + return [ + 'plain text' => [ + 'templateType' => \Magento\Framework\App\TemplateTypesInterface::TYPE_TEXT, + 'templateStyles' => '<style>', + 'templateText' => 'template text', + 'expectedResult' => 'template text', + ], + 'html no style' => [ + 'templateType' => \Magento\Framework\App\TemplateTypesInterface::TYPE_HTML, + 'templateStyles' => '', + 'templateText' => 'template text', + 'expectedResult' => 'template text', + ], + 'html with style' => [ + 'templateType' => \Magento\Framework\App\TemplateTypesInterface::TYPE_HTML, + 'templateStyles' => '.body { color: orange }', + 'templateText' => 'template text', + 'expectedResult' => + '<style type="text/css">' . "\n.body { color: orange }\n</style>\n" . 'template text', + ], + ]; + } + + public function testGetProcessedTemplateSubject() + { + $model = $this->getModelMock(['getTemplateFilter', 'getDesignConfig', '_applyDesignConfig']); + + $templateSubject = 'templateSubject'; + $model->setTemplateSubject($templateSubject); + + $filterTemplate = $this->getMockBuilder('Magento\Framework\Filter\Template') + ->setMethods(['setVariables', 'setStoreId', 'filter']) + ->disableOriginalConstructor() + ->getMock(); + $model->expects($this->once()) + ->method('getTemplateFilter') + ->will($this->returnValue($filterTemplate)); + + $model->expects($this->once()) + ->method('_applyDesignConfig'); + + $designConfig = $this->getMockBuilder('Magento\Framework\Object') + ->setMethods(['getStore']) + ->disableOriginalConstructor() + ->getMock(); + $storeId = 'storeId'; + $designConfig->expects($this->once()) + ->method('getStore') + ->will($this->returnValue($storeId)); + $model->expects($this->once()) + ->method('getDesignConfig') + ->will($this->returnValue($designConfig)); + + $filterTemplate->expects($this->once()) + ->method('setStoreId') + ->with($storeId) + ->will($this->returnSelf()); + $expectedResult = 'expected'; + $filterTemplate->expects($this->once()) + ->method('filter') + ->with($templateSubject) + ->will($this->returnValue($expectedResult)); + + $variables = [ 'key' => 'value' ]; + $filterTemplate->expects($this->once()) + ->method('setVariables') + ->with(array_merge($variables, ['this' => $model])); + $this->assertEquals($expectedResult, $model->getProcessedTemplateSubject($variables)); + } + + /** + * @param $withGroup bool + * @param $templateVariables string + * @param $expectedResult array + * @dataProvider getVariablesOptionArrayDataProvider + */ + public function testGetVariablesOptionArray($withGroup, $templateVariables, $expectedResult) + { + $model = $this->getModelMock(); + $model->setData('orig_template_variables', $templateVariables); + $this->assertEquals($expectedResult, $model->getVariablesOptionArray($withGroup)); + } + + public function getVariablesOptionArrayDataProvider() + { + return [ + 'empty variables' => [ + 'withGroup' => false, + 'templateVariables' => '', + 'expectedResult' => [], + ], + 'empty variables with grouped option' => [ + 'withGroup' => true, + 'templateVariables' => '', + 'expectedResult' => [], + ], + 'customer account new variables' => [ + 'withGroup' => false, + 'templateVariables' => '{"store url=\"\"":"Store Url","var logo_url":"Email Logo Image Url",' + . '"escapehtml var=$customer.name":"Customer Name"}', + 'expectedResult' => [ + [ + 'value' => '{{store url=""}}', + 'label' => __('%1', 'Store Url'), + ], + [ + 'value' => '{{var logo_url}}', + 'label' => __('%1', 'Email Logo Image Url'), + ], + [ + 'value' => '{{escapehtml var=$customer.name}}', + 'label' => __('%1', 'Customer Name'), + ], + ], + ], + 'customer account new variables with grouped option' => [ + 'withGroup' => true, + 'templateVariables' => '{"store url=\"\"":"Store Url","var logo_url":"Email Logo Image Url",' + . '"escapehtml var=$customer.name":"Customer Name"}', + 'expectedResult' => [ + 'label' => __('Template Variables'), + 'value' => [ + [ + 'value' => '{{store url=""}}', + 'label' => __('%1', 'Store Url'), + ], + [ + 'value' => '{{var logo_url}}', + 'label' => __('%1', 'Email Logo Image Url'), + ], + [ + 'value' => '{{escapehtml var=$customer.name}}', + 'label' => __('%1', 'Customer Name'), + ], + ], + ], + ], + ]; + } + + /** + * @param $templateId string|int + * @param $expectedResult string + * @dataProvider processTemplateVariable + */ + public function testProcessTemplate($templateId, $expectedResult) + { + $model = $this->getModelMock([ + 'load', + 'loadDefault', + 'getProcessedTemplate' + ]); + $model->setId($templateId); + if (is_numeric($templateId)) { + $model->expects($this->once()) + ->method('load') + ->with($templateId); + } else { + $model->expects($this->once()) + ->method('loadDefault') + ->with($templateId); + } + + $vars = [ 'key' => 'value' ]; + $model->setVars($vars); + $model->expects($this->once()) + ->method('getProcessedTemplate') + ->with($vars, true) + ->will($this->returnValue($expectedResult)); + + $this->assertEquals($expectedResult, $model->processTemplate()); + $this->assertTrue($model->getUseAbsoluteLinks()); + } + + public function processTemplateVariable() + { + return [ + 'numeric id' => [ + 'templateId' => 1, + 'expectedResult' => 'expected result', + ], + 'string id' => [ + 'templateId' => 'my id', + 'expectedResult' => 'expected result', + ], + ]; + } + + public function testGetSubject() + { + $variables = [ 'key' => 'value' ]; + $model = $this->getModelMock(['getProcessedTemplateSubject']); + $model->setVars($variables); + $expectedResult = 'result'; + $model->expects($this->once()) + ->method('getProcessedTemplateSubject') + ->with($variables) + ->will($this->returnValue($expectedResult)); + $this->assertEquals($expectedResult, $model->getSubject()); + } + + public function testSetOptions() + { + $options = ['someOption' => 'someValue']; + $model = $this->getModelMock(['setDesignConfig']); + $model->expects($this->once()) + ->method('setDesignConfig') + ->with($options); + $model->setOptions($options); + } + /** * @dataProvider getTypeDataProvider * @param string $templateType diff --git a/app/code/Magento/GiftMessage/Api/CartRepositoryInterface.php b/app/code/Magento/GiftMessage/Api/CartRepositoryInterface.php index 62a7916c14ca9479e2a9feefa458aa2c8aacf5ed..7e34c18ed0d6531fef0ce82b093e9b0551aa549f 100644 --- a/app/code/Magento/GiftMessage/Api/CartRepositoryInterface.php +++ b/app/code/Magento/GiftMessage/Api/CartRepositoryInterface.php @@ -8,7 +8,7 @@ namespace Magento\GiftMessage\Api; interface CartRepositoryInterface { /** - * Returns the gift message for a specified order. + * Return the gift message for a specified order. * * @param int $cartId The shopping cart ID. * @return \Magento\GiftMessage\Api\Data\MessageInterface Gift message. @@ -16,7 +16,7 @@ interface CartRepositoryInterface public function get($cartId); /** - * Sets the gift message for an entire order. + * Set the gift message for an entire order. * * @param int $cartId The cart ID. * @param \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage The gift message. diff --git a/app/code/Magento/GiftMessage/Api/Data/MessageInterface.php b/app/code/Magento/GiftMessage/Api/Data/MessageInterface.php index a044e7c0ab0c72253dc3b375c1ed2677fb47c389..5faf04f77045c257707bc84fd3e9466380aa6349 100644 --- a/app/code/Magento/GiftMessage/Api/Data/MessageInterface.php +++ b/app/code/Magento/GiftMessage/Api/Data/MessageInterface.php @@ -18,14 +18,14 @@ interface MessageInterface extends \Magento\Framework\Api\ExtensibleDataInterfac /**#@-*/ /** - * Returns the gift message ID. + * Return the gift message ID. * * @return int|null Gift message ID. Otherwise, null. */ public function getGiftMessageId(); /** - * Sets the gift message ID. + * Set the gift message ID. * * @param int|null $id * @return $this @@ -33,14 +33,14 @@ interface MessageInterface extends \Magento\Framework\Api\ExtensibleDataInterfac public function setGiftMessageId($id); /** - * Returns the customer ID. + * Return the customer ID. * * @return int|null Customer ID. Otherwise, null. */ public function getCustomerId(); /** - * Sets the customer ID. + * Set the customer ID. * * @param int|null $id * @return $this @@ -48,14 +48,14 @@ interface MessageInterface extends \Magento\Framework\Api\ExtensibleDataInterfac public function setCustomerId($id); /** - * Returns the sender name. + * Return the sender name. * * @return string Sender name. */ public function getSender(); /** - * Sets the sender name. + * Set the sender name. * * @param string $sender * @return $this @@ -63,14 +63,14 @@ interface MessageInterface extends \Magento\Framework\Api\ExtensibleDataInterfac public function setSender($sender); /** - * Returns the recipient name. + * Return the recipient name. * * @return string Recipient name. */ public function getRecipient(); /** - * Gets the recipient name. + * Get the recipient name. * * @param string $recipient * @return $this @@ -78,14 +78,14 @@ interface MessageInterface extends \Magento\Framework\Api\ExtensibleDataInterfac public function setRecipient($recipient); /** - * Returns the message text. + * Return the message text. * * @return string Message text. */ public function getMessage(); /** - * Sets the message text. + * Set the message text. * * @param string $message * @return $this diff --git a/app/code/Magento/GiftMessage/Api/ItemRepositoryInterface.php b/app/code/Magento/GiftMessage/Api/ItemRepositoryInterface.php index f0141740b3ed9b34f40822415c3d301e16e27876..3e2f771fad1337908d2fa1759d8760911c7b0bf7 100644 --- a/app/code/Magento/GiftMessage/Api/ItemRepositoryInterface.php +++ b/app/code/Magento/GiftMessage/Api/ItemRepositoryInterface.php @@ -8,7 +8,7 @@ namespace Magento\GiftMessage\Api; interface ItemRepositoryInterface { /** - * Returns the gift message for a specified item in a specified shopping cart. + * Return the gift message for a specified item in a specified shopping cart. * * @param int $cartId The shopping cart ID. * @param int $itemId The item ID. @@ -18,7 +18,7 @@ interface ItemRepositoryInterface public function get($cartId, $itemId); /** - * Sets the gift message for a specified item in a specified shopping cart. + * Set the gift message for a specified item in a specified shopping cart. * * @param int $cartId The cart ID. * @param \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage The gift message. diff --git a/app/code/Magento/GiftMessage/Api/OrderItemRepositoryInterface.php b/app/code/Magento/GiftMessage/Api/OrderItemRepositoryInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..4b94af3ce5f6155fb451021ed6ae1b581b9fbf8f --- /dev/null +++ b/app/code/Magento/GiftMessage/Api/OrderItemRepositoryInterface.php @@ -0,0 +1,32 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Api; + +interface OrderItemRepositoryInterface +{ + /** + * Return the gift message for a specified item in a specified order. + * + * @param int $orderId The order ID. + * @param int $orderItemId The item ID. + * @return \Magento\GiftMessage\Api\Data\MessageInterface Gift message. + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($orderId, $orderItemId); + + /** + * Set the gift message for a specified item in a specified order. + * + * @param int $orderId The order ID. + * @param int $orderItemId The item ID. + * @param \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage The gift message. + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + * @throws \Magento\Framework\Exception\State\InvalidTransitionException + * @throws \Magento\Framework\Exception\CouldNotSaveException + */ + public function save($orderId, $orderItemId, \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage); +} diff --git a/app/code/Magento/GiftMessage/Api/OrderRepositoryInterface.php b/app/code/Magento/GiftMessage/Api/OrderRepositoryInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..28f5b54dde526722c322f5c319cfb8c48b1c943e --- /dev/null +++ b/app/code/Magento/GiftMessage/Api/OrderRepositoryInterface.php @@ -0,0 +1,31 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Api; + +interface OrderRepositoryInterface +{ + /** + * Return the gift message for a specified order. + * + * @param int $orderId The order ID. + * @return \Magento\GiftMessage\Api\Data\MessageInterface Gift message. + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($orderId); + + /** + * Set the gift message for an entire order. + * + * @param int $orderId The order ID. + * @param \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage The gift message. + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + * @throws \Magento\Framework\Exception\InputException + * @throws \Magento\Framework\Exception\CouldNotSaveException + * @throws \Magento\Framework\Exception\State\InvalidTransitionException + */ + public function save($orderId, \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage); +} diff --git a/app/code/Magento/GiftMessage/Block/Adminhtml/Sales/Order/Create/Form.php b/app/code/Magento/GiftMessage/Block/Adminhtml/Sales/Order/Create/Form.php index 44933c3de7c0ce179be214e10f64ec62bc047491..c5d2d46cccfb1f1904b25be12d0a83610de04f2b 100644 --- a/app/code/Magento/GiftMessage/Block/Adminhtml/Sales/Order/Create/Form.php +++ b/app/code/Magento/GiftMessage/Block/Adminhtml/Sales/Order/Create/Form.php @@ -47,6 +47,6 @@ class Form extends \Magento\Backend\Block\Template public function canDisplayGiftmessageForm() { $quote = $this->_sessionQuote->getQuote(); - return $this->_messageHelper->getIsMessagesAvailable('items', $quote, $quote->getStore()); + return $this->_messageHelper->isMessagesAllowed('items', $quote, $quote->getStore()); } } diff --git a/app/code/Magento/GiftMessage/Block/Adminhtml/Sales/Order/Create/Items.php b/app/code/Magento/GiftMessage/Block/Adminhtml/Sales/Order/Create/Items.php index ebd3613070da152027828aa917a87d1514f9e2a5..f343fce19c7d8d64243d6806bb1bb42784af755e 100644 --- a/app/code/Magento/GiftMessage/Block/Adminhtml/Sales/Order/Create/Items.php +++ b/app/code/Magento/GiftMessage/Block/Adminhtml/Sales/Order/Create/Items.php @@ -52,7 +52,7 @@ class Items extends \Magento\Backend\Block\Template if (!$item) { return false; } - return $this->_messageHelper->getIsMessagesAvailable('item', $item, $item->getStoreId()); + return $this->_messageHelper->isMessagesAllowed('item', $item, $item->getStoreId()); } /** diff --git a/app/code/Magento/GiftMessage/Block/Message/Inline.php b/app/code/Magento/GiftMessage/Block/Message/Inline.php index 71edfa4fe880d23684edf68185276ec1c6d2677f..4a7640f3aa7814cbdfb04a47430d3905d7236065 100644 --- a/app/code/Magento/GiftMessage/Block/Message/Inline.php +++ b/app/code/Magento/GiftMessage/Block/Message/Inline.php @@ -317,7 +317,7 @@ class Inline extends \Magento\Framework\View\Element\Template */ public function isMessagesAvailable() { - return $this->_giftMessageMessage->isMessagesAvailable('quote', $this->getEntity()); + return $this->_giftMessageMessage->isMessagesAllowed('quote', $this->getEntity()); } /** @@ -329,7 +329,7 @@ class Inline extends \Magento\Framework\View\Element\Template public function isItemMessagesAvailable($item) { $type = substr($this->getType(), 0, 5) == 'multi' ? 'address_item' : 'item'; - return $this->_giftMessageMessage->isMessagesAvailable($type, $item); + return $this->_giftMessageMessage->isMessagesAllowed($type, $item); } /** diff --git a/app/code/Magento/GiftMessage/Helper/Message.php b/app/code/Magento/GiftMessage/Helper/Message.php index a54b8c5db8c53d005aa7c6968e8ac4c4767d3594..e2ab3e3eefa6fcce05032ef3437ee17b771616b4 100644 --- a/app/code/Magento/GiftMessage/Helper/Message.php +++ b/app/code/Magento/GiftMessage/Helper/Message.php @@ -109,7 +109,7 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper */ public function getInline($type, \Magento\Framework\Object $entity, $dontDisplayContainer = false) { - if (!$this->skipPage($type) && !$this->isMessagesAvailable($type, $entity)) { + if (!$this->skipPage($type) && !$this->isMessagesAllowed($type, $entity)) { return ''; } return $this->_layoutFactory->create()->createBlock('Magento\GiftMessage\Block\Message\Inline') @@ -129,7 +129,7 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper } /** - * Check availability of giftmessages for specified entity. + * Check if giftmessages is allowed for specified entity. * * @param string $type * @param \Magento\Framework\Object $entity @@ -137,12 +137,16 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper * @return bool|string|null * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ - public function isMessagesAvailable($type, \Magento\Framework\Object $entity, $store = null) + public function isMessagesAllowed($type, \Magento\Framework\Object $entity, $store = null) { if ($type == 'items') { $items = $entity->getAllItems(); if (!is_array($items) || empty($items)) { - return $this->scopeConfig->getValue(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ITEMS, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store); + return $this->scopeConfig->getValue( + self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ITEMS, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE, + $store + ); } if ($entity instanceof \Magento\Quote\Model\Quote) { $_type = $entity->getIsMultiShipping() ? 'address_item' : 'item'; @@ -153,7 +157,7 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper if ($item->getParentItem()) { continue; } - if ($this->isMessagesAvailable($_type, $item, $store)) { + if ($this->isMessagesAllowed($_type, $item, $store)) { return true; } } @@ -177,7 +181,11 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper $store ); } else { - return $this->scopeConfig->getValue(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ORDER, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store); + return $this->scopeConfig->getValue( + self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ORDER, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE, + $store + ); } return false; } @@ -191,7 +199,10 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper */ protected function _getDependenceFromStoreConfig($productGiftMessageAllow, $store = null) { - $result = $this->scopeConfig->getValue(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ITEMS, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store); + $result = $this->scopeConfig->getValue( + self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ITEMS, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store + ); if ($productGiftMessageAllow === '' || is_null($productGiftMessageAllow)) { return $result; } else { @@ -199,19 +210,6 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper } } - /** - * Alias for isMessagesAvailable(...) - * - * @param string $type - * @param \Magento\Framework\Object $entity - * @param \Magento\Store\Model\Store|int|null $store - * @return bool|null|string - */ - public function getIsMessagesAvailable($type, \Magento\Framework\Object $entity, $store = null) - { - return $this->isMessagesAvailable($type, $entity, $store); - } - /** * Retrieve escaped and preformated gift message text for specified entity * @@ -293,7 +291,7 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper public function getAvailableForQuoteItems($quote, $store = null) { foreach ($quote->getAllItems() as $item) { - if ($this->isMessagesAvailable('item', $item, $store)) { + if ($this->isMessagesAllowed('item', $item, $store)) { return true; } } @@ -311,7 +309,7 @@ class Message extends \Magento\Framework\App\Helper\AbstractHelper public function getAvailableForAddressItems($items, $store = null) { foreach ($items as $item) { - if ($this->isMessagesAvailable('address_item', $item, $store)) { + if ($this->isMessagesAllowed('address_item', $item, $store)) { return true; } } diff --git a/app/code/Magento/GiftMessage/Model/CartRepository.php b/app/code/Magento/GiftMessage/Model/CartRepository.php index bb1b66db7d20d0f5b42e2321eaf354030e4661f9..4fe6b988236c6258fc0d7f7068a72f803468debb 100644 --- a/app/code/Magento/GiftMessage/Model/CartRepository.php +++ b/app/code/Magento/GiftMessage/Model/CartRepository.php @@ -107,7 +107,7 @@ class CartRepository implements \Magento\GiftMessage\Api\CartRepositoryInterface if ($quote->isVirtual()) { throw new InvalidTransitionException(__('Gift Messages is not applicable for virtual products')); } - if (!$this->helper->getIsMessagesAvailable('quote', $quote, $this->storeManager->getStore())) { + if (!$this->helper->isMessagesAllowed('quote', $quote, $this->storeManager->getStore())) { throw new CouldNotSaveException(__('Gift Message is not available')); } $this->giftMessageManager->setMessage($quote, 'quote', $giftMessage); diff --git a/app/code/Magento/GiftMessage/Model/ItemRepository.php b/app/code/Magento/GiftMessage/Model/ItemRepository.php index 16d442a769240fef8fb93ced6c29ea8fc479d022..d7220d2516f7a2b934d9365a83c481f13249b1c2 100644 --- a/app/code/Magento/GiftMessage/Model/ItemRepository.php +++ b/app/code/Magento/GiftMessage/Model/ItemRepository.php @@ -121,7 +121,7 @@ class ItemRepository implements \Magento\GiftMessage\Api\ItemRepositoryInterface if ($item->getIsVirtual()) { throw new InvalidTransitionException(__('Gift Messages is not applicable for virtual products')); } - if (!$this->helper->getIsMessagesAvailable('items', $quote, $this->storeManager->getStore())) { + if (!$this->helper->isMessagesAllowed('items', $quote, $this->storeManager->getStore())) { throw new CouldNotSaveException(__('Gift Message is not available')); } $this->giftMessageManager->setMessage($quote, 'quote_item', $giftMessage, $itemId); diff --git a/app/code/Magento/GiftMessage/Model/Observer.php b/app/code/Magento/GiftMessage/Model/Observer.php index 696b4f38f5f6ae96d869838106d96d524bafeb81..342bc8cb133106011900935328a3d356036a47c4 100644 --- a/app/code/Magento/GiftMessage/Model/Observer.php +++ b/app/code/Magento/GiftMessage/Model/Observer.php @@ -74,7 +74,7 @@ class Observer extends \Magento\Framework\Object return $this; } - if (!$this->_giftMessageMessage->isMessagesAvailable('order', $order, $order->getStore())) { + if (!$this->_giftMessageMessage->isMessagesAllowed('order', $order, $order->getStore())) { return $this; } $giftMessageId = $order->getGiftMessageId(); @@ -102,7 +102,7 @@ class Observer extends \Magento\Framework\Object return $this; } - $isAvailable = $this->_giftMessageMessage->isMessagesAvailable( + $isAvailable = $this->_giftMessageMessage->isMessagesAllowed( 'order_item', $orderItem, $orderItem->getStoreId() diff --git a/app/code/Magento/GiftMessage/Model/OrderItemRepository.php b/app/code/Magento/GiftMessage/Model/OrderItemRepository.php new file mode 100644 index 0000000000000000000000000000000000000000..4c71f599f0b1fe88dba1c1a4948c1b7db8db07a4 --- /dev/null +++ b/app/code/Magento/GiftMessage/Model/OrderItemRepository.php @@ -0,0 +1,155 @@ +<?php +/** + * + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\GiftMessage\Model; + +use Magento\Framework\Exception\CouldNotSaveException; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Framework\Exception\State\InvalidTransitionException; + +/** + * Order item gift message repository object. + */ +class OrderItemRepository implements \Magento\GiftMessage\Api\OrderItemRepositoryInterface +{ + /** + * Order factory. + * + * @var \Magento\Sales\Model\OrderFactory + */ + protected $orderFactory; + + /** + * Store manager interface. + * + * @var \Magento\Store\Model\StoreManagerInterface + */ + protected $storeManager; + + /** + * Gift message save model. + * + * @var \Magento\GiftMessage\Model\Save + */ + protected $giftMessageSaveModel; + + /** + * Message helper. + * + * @var \Magento\GiftMessage\Helper\Message + */ + protected $helper; + + /** + * Message factory. + * + * @var \Magento\GiftMessage\Model\MessageFactory + */ + protected $messageFactory; + + /** + * @param \Magento\Sales\Model\OrderFactory $orderFactory + * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param \Magento\GiftMessage\Model\Save $giftMessageSaveModel + * @param \Magento\GiftMessage\Helper\Message $helper + * @param MessageFactory $messageFactory + */ + public function __construct( + \Magento\Sales\Model\OrderFactory $orderFactory, + \Magento\Store\Model\StoreManagerInterface $storeManager, + \Magento\GiftMessage\Model\Save $giftMessageSaveModel, + \Magento\GiftMessage\Helper\Message $helper, + \Magento\GiftMessage\Model\MessageFactory $messageFactory + ) { + $this->orderFactory = $orderFactory; + $this->giftMessageSaveModel = $giftMessageSaveModel; + $this->storeManager = $storeManager; + $this->helper = $helper; + $this->messageFactory = $messageFactory; + } + + /** + * {@inheritDoc} + */ + public function get($orderId, $orderItemId) + { + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + if (!$orderItem = $this->getItemById($orderId, $orderItemId)) { + throw new NoSuchEntityException(__('There is no item with provided id in the order')); + }; + + if (!$this->helper->isMessagesAllowed('order_item', $orderItem, $this->storeManager->getStore())) { + throw new NoSuchEntityException( + __('There is no item with provided id in the order or gift message isn\'t allowed') + ); + } + + $messageId = $orderItem->getGiftMessageId(); + if (!$messageId) { + throw new NoSuchEntityException(__('There is no item with provided id in the order')); + } + + return $this->messageFactory->create()->load($messageId); + } + + /** + * {@inheritDoc} + */ + public function save($orderId, $orderItemId, \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage) + { + /** @var \Magento\Sales\Api\Data\OrderInterface $order */ + $order = $this->orderFactory->create()->load($orderId); + + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + if (!$orderItem = $this->getItemById($orderId, $orderItemId)) { + throw new NoSuchEntityException(__('There is no item with provided id in the order')); + }; + + if ($order->getIsVirtual()) { + throw new InvalidTransitionException(__('Gift Messages is not applicable for virtual products')); + } + if (!$this->helper->isMessagesAllowed('order_item', $orderItem, $this->storeManager->getStore())) { + throw new CouldNotSaveException(__('Gift Message is not available')); + } + + $message = []; + $message[$orderItemId] = [ + 'type' => 'order_item', + 'sender' => $giftMessage->getSender(), + 'recipient' => $giftMessage->getRecipient(), + 'message' => $giftMessage->getMessage(), + ]; + + $this->giftMessageSaveModel->setGiftmessages($message); + try { + $this->giftMessageSaveModel->saveAllInOrder(); + } catch (\Exception $e) { + throw new CouldNotSaveException(__('Could not add gift message to order: "%1"', $e->getMessage()), $e); + } + return true; + } + + /** + * Get order item by id + * + * @param int $orderId + * @param int $orderItemId + * @return \Magento\Sales\Api\Data\OrderItemInterface|bool + */ + protected function getItemById($orderId, $orderItemId) + { + /** @var \Magento\Sales\Api\Data\OrderInterface $order */ + $order = $this->orderFactory->create()->load($orderId); + /** @var \Magento\Sales\Api\Data\OrderItemInterface $item */ + foreach ($order->getItems() as $item) { + if ($item->getItemId() === $orderItemId) { + return $item; + } + } + return false; + } +} diff --git a/app/code/Magento/GiftMessage/Model/OrderRepository.php b/app/code/Magento/GiftMessage/Model/OrderRepository.php new file mode 100644 index 0000000000000000000000000000000000000000..5bbff94c44bf9cb0d26b84683964dfc051ed1a17 --- /dev/null +++ b/app/code/Magento/GiftMessage/Model/OrderRepository.php @@ -0,0 +1,137 @@ +<?php +/** + * + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\GiftMessage\Model; + +use Magento\Framework\Exception\CouldNotSaveException; +use Magento\Framework\Exception\InputException; +use Magento\Framework\Exception\State\InvalidTransitionException; +use Magento\Framework\Exception\NoSuchEntityException; + +/** + * Order gift message repository object. + */ +class OrderRepository implements \Magento\GiftMessage\Api\OrderRepositoryInterface +{ + /** + * Order factory. + * + * @var \Magento\Sales\Model\OrderFactory + */ + protected $orderFactory; + + /** + * Store manager interface. + * + * @var \Magento\Store\Model\StoreManagerInterface + */ + protected $storeManager; + + /** + * Gift message save model. + * + * @var \Magento\GiftMessage\Model\Save + */ + protected $giftMessageSaveModel; + + /** + * Message helper. + * + * @var \Magento\GiftMessage\Helper\Message + */ + protected $helper; + + /** + * Message factory. + * + * @var \Magento\GiftMessage\Model\MessageFactory + */ + protected $messageFactory; + + /** + * @param \Magento\Sales\Model\OrderFactory $orderFactory + * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param \Magento\GiftMessage\Model\Save $giftMessageSaveModel + * @param \Magento\GiftMessage\Helper\Message $helper + * @param MessageFactory $messageFactory + */ + public function __construct( + \Magento\Sales\Model\OrderFactory $orderFactory, + \Magento\Store\Model\StoreManagerInterface $storeManager, + \Magento\GiftMessage\Model\Save $giftMessageSaveModel, + \Magento\GiftMessage\Helper\Message $helper, + \Magento\GiftMessage\Model\MessageFactory $messageFactory + ) { + $this->orderFactory = $orderFactory; + $this->giftMessageSaveModel = $giftMessageSaveModel; + $this->storeManager = $storeManager; + $this->helper = $helper; + $this->messageFactory = $messageFactory; + } + + /** + * {@inheritDoc} + */ + public function get($orderId) + { + /** @var \Magento\Sales\Api\Data\OrderInterface $order */ + $order = $this->orderFactory->create()->load($orderId); + + if (!$this->helper->isMessagesAllowed('order', $order, $this->storeManager->getStore())) { + throw new NoSuchEntityException( + __('There is no order with provided id or gift message isn\'t allowed') + ); + } + + $messageId = $order->getGiftMessageId(); + if (!$messageId) { + throw new NoSuchEntityException(__('There is no item with provided id in the order')); + } + + return $this->messageFactory->create()->load($messageId); + } + + /** + * {@inheritDoc} + */ + public function save($orderId, \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage) + { + /** @var \Magento\Sales\Api\Data\OrderInterface $order */ + $order = $this->orderFactory->create()->load($orderId); + if (!$order->getEntityId()) { + throw new NoSuchEntityException(__('There is no order with provided id')); + }; + + if (0 == $order->getTotalItemCount()) { + throw new InputException(__('Gift Messages is not applicable for empty order')); + } + + if ($order->getIsVirtual()) { + throw new InvalidTransitionException(__('Gift Messages is not applicable for virtual products')); + } + if (!$this->helper->isMessagesAllowed('order', $order, $this->storeManager->getStore())) { + throw new CouldNotSaveException(__('Gift Message is not available')); + } + + $message = []; + $message[$orderId] = [ + 'type' => 'order', + $giftMessage::CUSTOMER_ID => $giftMessage->getCustomerId(), + $giftMessage::SENDER => $giftMessage->getSender(), + $giftMessage::RECIPIENT => $giftMessage->getRecipient(), + $giftMessage::MESSAGE => $giftMessage->getMessage(), + ]; + + $this->giftMessageSaveModel->setGiftmessages($message); + try { + $this->giftMessageSaveModel->saveAllInOrder(); + } catch (\Exception $e) { + throw new CouldNotSaveException(__('Could not add gift message to order: "%1"', $e->getMessage()), $e); + } + return true; + } +} diff --git a/app/code/Magento/GiftMessage/Model/Plugin/OrderGet.php b/app/code/Magento/GiftMessage/Model/Plugin/OrderGet.php new file mode 100644 index 0000000000000000000000000000000000000000..c63a726d8e8449e3ebe709aac5828803a12961de --- /dev/null +++ b/app/code/Magento/GiftMessage/Model/Plugin/OrderGet.php @@ -0,0 +1,129 @@ +<?php +/** + * + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\GiftMessage\Model\Plugin; + +use Magento\Framework\Exception\NoSuchEntityException; + +class OrderGet +{ + /** @var \Magento\GiftMessage\Api\OrderRepositoryInterface */ + protected $giftMessageOrderRepository; + + /** @var \Magento\GiftMessage\Api\OrderItemRepositoryInterface */ + protected $giftMessageOrderItemRepository; + + /** @var \Magento\Sales\Api\Data\OrderExtensionFactory */ + protected $orderExtensionFactory; + + /** @var \Magento\Sales\Api\Data\OrderItemExtensionFactory */ + protected $orderItemExtensionFactory; + + /** + * Init plugin + * + * @param \Magento\GiftMessage\Api\OrderRepositoryInterface $giftMessageOrderRepository + * @param \Magento\GiftMessage\Api\OrderItemRepositoryInterface $giftMessageOrderItemRepository + * @param \Magento\Sales\Api\Data\OrderExtensionFactory $orderExtensionFactory + * @param \Magento\Sales\Api\Data\OrderItemExtensionFactory $orderItemExtensionFactory + */ + public function __construct( + \Magento\GiftMessage\Api\OrderRepositoryInterface $giftMessageOrderRepository, + \Magento\GiftMessage\Api\OrderItemRepositoryInterface $giftMessageOrderItemRepository, + \Magento\Sales\Api\Data\OrderExtensionFactory $orderExtensionFactory, + \Magento\Sales\Api\Data\OrderItemExtensionFactory $orderItemExtensionFactory + ) { + $this->giftMessageOrderRepository = $giftMessageOrderRepository; + $this->giftMessageOrderItemRepository = $giftMessageOrderItemRepository; + $this->orderExtensionFactory = $orderExtensionFactory; + $this->orderItemExtensionFactory = $orderItemExtensionFactory; + } + + /** + * Get gift message + * + * @param \Magento\Sales\Api\OrderRepositoryInterface $subject + * @param callable $proceed + * @param int $orderId + * @return \Magento\Sales\Api\Data\OrderInterface + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + public function aroundGet( + \Magento\Sales\Api\OrderRepositoryInterface $subject, + \Closure $proceed, + $orderId + ) { + /** @var \Magento\Sales\Api\Data\OrderInterface $resultOrder */ + $resultOrder = $proceed($orderId); + + $resultOrder = $this->getOrderGiftMessage($resultOrder); + $resultOrder = $this->getOrderItemGiftMessage($resultOrder); + + return $resultOrder; + } + + /** + * Get gift message for order + * + * @param \Magento\Sales\Api\Data\OrderInterface $order + * @return \Magento\Sales\Api\Data\OrderInterface + */ + protected function getOrderGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order) + { + if ($order->getExtensionAttributes() && $order->getExtensionAttributes()->getGiftMessage()) { + return $order; + } + + try { + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */ + $giftMessage = $this->giftMessageOrderRepository->get($order->getEntityId()); + } catch (NoSuchEntityException $e) { + return $order; + } + + /** @var \Magento\Sales\Api\Data\OrderExtension $orderExtension */ + $orderExtension = $this->orderExtensionFactory->create(); + $orderExtension->setGiftMessage($giftMessage); + $order->setExtensionAttributes($orderExtension); + + return $order; + } + + /** + * Get gift message for items of order + * + * @param \Magento\Sales\Api\Data\OrderInterface $order + * @return \Magento\Sales\Api\Data\OrderInterface + */ + protected function getOrderItemGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order) + { + if (null !== $order->getItems()) { + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + foreach ($order->getItems() as $orderItem) { + if ($orderItem->getExtensionAttributes() && $orderItem->getExtensionAttributes()->getGiftMessage()) { + continue; + } + + try { + /* @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */ + $giftMessage = $this->giftMessageOrderItemRepository->get( + $order->getEntityId(), + $orderItem->getItemId() + ); + } catch (NoSuchEntityException $e) { + continue; + } + + /** @var \Magento\Sales\Api\Data\OrderItemExtension $orderItemExtension */ + $orderItemExtension = $this->orderItemExtensionFactory->create(); + $orderItemExtension->setGiftMessage($giftMessage); + $orderItem->setExtensionAttributes($orderItemExtension); + } + } + return $order; + } +} diff --git a/app/code/Magento/GiftMessage/Model/Plugin/OrderSave.php b/app/code/Magento/GiftMessage/Model/Plugin/OrderSave.php new file mode 100644 index 0000000000000000000000000000000000000000..8acac4ecd67e230d8e0dc7c75ff7e0daee0301d9 --- /dev/null +++ b/app/code/Magento/GiftMessage/Model/Plugin/OrderSave.php @@ -0,0 +1,118 @@ +<?php +/** + * + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\GiftMessage\Model\Plugin; + +use Magento\Framework\Exception\CouldNotSaveException; + +class OrderSave +{ + /** @var \Magento\GiftMessage\Api\OrderRepositoryInterface */ + protected $giftMessageOrderRepository; + + /** @var \Magento\GiftMessage\Api\OrderItemRepositoryInterface */ + protected $giftMessageOrderItemRepository; + + /** + * Init plugin + * + * @param \Magento\GiftMessage\Api\OrderRepositoryInterface $giftMessageOrderRepository + * @param \Magento\GiftMessage\Api\OrderItemRepositoryInterface $giftMessageOrderItemRepository + */ + public function __construct( + \Magento\GiftMessage\Api\OrderRepositoryInterface $giftMessageOrderRepository, + \Magento\GiftMessage\Api\OrderItemRepositoryInterface $giftMessageOrderItemRepository + ) { + $this->giftMessageOrderRepository = $giftMessageOrderRepository; + $this->giftMessageOrderItemRepository = $giftMessageOrderItemRepository; + } + + /** + * Save gift message + * + * @param \Magento\Sales\Api\OrderRepositoryInterface $subject + * @param callable $proceed + * @param \Magento\Sales\Api\Data\OrderInterface $order + * @return \Magento\Sales\Api\Data\OrderInterface + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + public function aroundSave( + \Magento\Sales\Api\OrderRepositoryInterface $subject, + \Closure $proceed, + \Magento\Sales\Api\Data\OrderInterface $order + ) { + /** @var \Magento\Sales\Api\Data\OrderInterface $resultOrder */ + $resultOrder = $proceed($order); + $resultOrder = $this->saveOrderGiftMessage($resultOrder); + $resultOrder = $this->saveOrderItemGiftMessage($resultOrder); + + return $resultOrder; + } + + /** + * Save gift message for order + * + * @param \Magento\Sales\Api\Data\OrderInterface $order + * @return \Magento\Sales\Api\Data\OrderInterface + */ + protected function saveOrderGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order) + { + if ( + null !== $order->getExtensionAttributes() && + null !== $order->getExtensionAttributes()->getGiftMessage() + ) { + /* @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */ + $giftMessage = $order->getExtensionAttributes()->getGiftMessage(); + if (null !== $giftMessage) { + try { + $this->giftMessageOrderRepository->save($order->getEntityId(), $giftMessage); + } catch (\Exception $e) { + throw new CouldNotSaveException( + __('Could not add gift message to order: "%1"', $e->getMessage()), + $e + ); + } + } + } + return $order; + } + + /** + * Save gift message for items of order + * + * @param \Magento\Sales\Api\Data\OrderInterface $order + * @return \Magento\Sales\Api\Data\OrderInterface + */ + protected function saveOrderItemGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order) + { + if (null !== $order->getItems()) { + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + foreach ($order->getItems() as $orderItem) { + if ( + null !== $orderItem->getExtensionAttributes() && + null !== $orderItem->getExtensionAttributes()->getGiftMessage() + ) { + /* @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */ + $giftMessage = $orderItem->getExtensionAttributes()->getGiftMessage(); + try { + $this->giftMessageOrderItemRepository->save( + $order->getEntityId(), + $orderItem->getItemId(), + $giftMessage + ); + } catch (\Exception $e) { + throw new CouldNotSaveException( + __('Could not add gift message to order\'s item: "%1"', $e->getMessage()), + $e + ); + } + } + } + } + return $order; + } +} diff --git a/app/code/Magento/GiftMessage/Model/Plugin/QuoteItem.php b/app/code/Magento/GiftMessage/Model/Plugin/QuoteItem.php index f2538b84b6a2353b25108cb1ad2162ad0784519e..9889f7261d2310678930b16aced1e23bec09d08b 100644 --- a/app/code/Magento/GiftMessage/Model/Plugin/QuoteItem.php +++ b/app/code/Magento/GiftMessage/Model/Plugin/QuoteItem.php @@ -39,7 +39,7 @@ class QuoteItem ) { /** @var $orderItem Item */ $orderItem = $proceed($item, $additional); - $isAvailable = $this->_helper->isMessagesAvailable('item', $item, $item->getStoreId()); + $isAvailable = $this->_helper->isMessagesAllowed('item', $item, $item->getStoreId()); $orderItem->setGiftMessageId($item->getGiftMessageId()); $orderItem->setGiftMessageAvailable($isAvailable); diff --git a/app/code/Magento/GiftMessage/Model/Save.php b/app/code/Magento/GiftMessage/Model/Save.php index 131624415b58208aa61e1fce40f4e8e69cba396f..7841e2f37867c7395203ef3ec4d90f273a79e6b2 100644 --- a/app/code/Magento/GiftMessage/Model/Save.php +++ b/app/code/Magento/GiftMessage/Model/Save.php @@ -265,7 +265,7 @@ class Save extends \Magento\Framework\Object */ public function isGiftMessagesAvailable($item) { - return $this->_giftMessageMessage->getIsMessagesAvailable('item', $item, $item->getStore()); + return $this->_giftMessageMessage->isMessagesAllowed('item', $item, $item->getStore()); } /** diff --git a/app/code/Magento/GiftMessage/Test/Unit/Helper/MessageTest.php b/app/code/Magento/GiftMessage/Test/Unit/Helper/MessageTest.php index 3821d4f05b760a9dc1d6542e08fbcdd10c4a9451..9b1748b1052c1a4cfbdcfb8dad31d19e62a3b78a 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Helper/MessageTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Helper/MessageTest.php @@ -29,7 +29,7 @@ class MessageTest extends \PHPUnit_Framework_TestCase } /** - * Make sure that isMessagesAvailable is not called + * Make sure that isMessagesAllowed is not called */ public function testGetInlineForCheckout() { diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php index c510e993f35c3355f96eda09fa189a6fb5e56924..6974c1f131cda2f511408dde59205c496619a7a1 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php @@ -163,7 +163,6 @@ class CartRepositoryTest extends \PHPUnit_Framework_TestCase { $this->quoteMock->expects($this->once())->method('getItemsCount')->will($this->returnValue(1)); $this->quoteMock->expects($this->once())->method('isVirtual')->will($this->returnValue(true)); - $this->cartRepository->save($this->cartId, $this->messageMock); } @@ -173,7 +172,7 @@ class CartRepositoryTest extends \PHPUnit_Framework_TestCase $this->quoteMock->expects($this->once())->method('getItemsCount')->will($this->returnValue(1)); $this->storeManagerMock->expects($this->once())->method('getStore')->will($this->returnValue($this->storeMock)); $this->helperMock->expects($this->once()) - ->method('getIsMessagesAvailable') + ->method('isMessagesAllowed') ->with('quote', $this->quoteMock, $this->storeMock) ->will($this->returnValue(true)); $this->giftMessageManagerMock->expects($this->once()) diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php index a97f5f9bd380007f3a0e238a3d940cf1c30ba2d5..5caa71f1b2bd2a492dc92b99c63c92970169d1bf 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php @@ -211,7 +211,7 @@ class ItemRepositoryTest extends \PHPUnit_Framework_TestCase $quoteItem->expects($this->once())->method('getIsVirtual')->will($this->returnValue(0)); $this->storeManagerMock->expects($this->once())->method('getStore')->will($this->returnValue($this->storeMock)); $this->helperMock->expects($this->once()) - ->method('getIsMessagesAvailable') + ->method('isMessagesAllowed') ->with('items', $this->quoteMock, $this->storeMock) ->will($this->returnValue(true)); $this->giftMessageManagerMock->expects($this->once()) diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/Plugin/QuoteItemTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/Plugin/QuoteItemTest.php index 61afb0c179fc69e84d8b16316dbd57ff5982a23d..b748345a177d1cf92bf81258c5b0c5bebdb1f329 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/Plugin/QuoteItemTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/Plugin/QuoteItemTest.php @@ -60,7 +60,7 @@ class QuoteItemTest extends \PHPUnit_Framework_TestCase $this->subjectMock = $this->getMock('Magento\Quote\Model\Quote\Item\ToOrderItem', [], [], '', false); $this->helperMock = $this->getMock( 'Magento\GiftMessage\Helper\Message', - ['setGiftMessageId', 'isMessagesAvailable'], + ['setGiftMessageId', 'isMessagesAllowed'], [], '', false @@ -86,7 +86,7 @@ class QuoteItemTest extends \PHPUnit_Framework_TestCase $this->helperMock->expects( $this->once() )->method( - 'isMessagesAvailable' + 'isMessagesAllowed' )->with( 'item', $this->quoteItemMock, diff --git a/app/code/Magento/GiftMessage/etc/adminhtml/di.xml b/app/code/Magento/GiftMessage/etc/adminhtml/di.xml deleted file mode 100644 index 961c8c6ff61369d74a53d6a9a943c067933e6345..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/etc/adminhtml/di.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?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="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> - <type name="Magento\GiftMessage\Model\Plugin\QuoteItem" shared="false" /> - <type name="Magento\Quote\Model\Quote\Item\ToOrderItem"> - <plugin name="gift_message_quote_item_conversion" type="Magento\GiftMessage\Model\Plugin\QuoteItem"/> - </type> -</config> diff --git a/app/code/Magento/GiftMessage/etc/data_object.xml b/app/code/Magento/GiftMessage/etc/data_object.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1255cc8a161a5a8d28090697088a87ede8920e7 --- /dev/null +++ b/app/code/Magento/GiftMessage/etc/data_object.xml @@ -0,0 +1,15 @@ +<?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="../../../../../lib/internal/Magento/Framework/Api/etc/data_object.xsd"> + <custom_attributes for="Magento\Sales\Api\Data\OrderInterface"> + <attribute code="gift_message" type="Magento\GiftMessage\Api\Data\MessageInterface" /> + </custom_attributes> + <custom_attributes for="Magento\Sales\Api\Data\OrderItemInterface"> + <attribute code="gift_message" type="Magento\GiftMessage\Api\Data\MessageInterface" /> + </custom_attributes> +</config> diff --git a/app/code/Magento/GiftMessage/etc/di.xml b/app/code/Magento/GiftMessage/etc/di.xml index 2c674334652effc113de85057424dc8be4f74d73..d8ea087e62d735c09063af6d8f3cf518179df33f 100644 --- a/app/code/Magento/GiftMessage/etc/di.xml +++ b/app/code/Magento/GiftMessage/etc/di.xml @@ -15,5 +15,15 @@ </type> <preference for="Magento\GiftMessage\Api\CartRepositoryInterface" type="Magento\GiftMessage\Model\CartRepository"/> <preference for="Magento\GiftMessage\Api\ItemRepositoryInterface" type="Magento\GiftMessage\Model\ItemRepository"/> + <preference for="Magento\GiftMessage\Api\OrderRepositoryInterface" type="Magento\GiftMessage\Model\OrderRepository"/> + <preference for="Magento\GiftMessage\Api\OrderItemRepositoryInterface" type="Magento\GiftMessage\Model\OrderItemRepository"/> <preference for="Magento\GiftMessage\Api\Data\MessageInterface" type="Magento\GiftMessage\Model\Message"/> + <type name="Magento\GiftMessage\Model\Plugin\QuoteItem" shared="false" /> + <type name="Magento\Quote\Model\Quote\Item\ToOrderItem"> + <plugin name="gift_message_quote_item_conversion" type="Magento\GiftMessage\Model\Plugin\QuoteItem"/> + </type> + <type name="Magento\Sales\Api\OrderRepositoryInterface"> + <plugin name="save_gift_message" type="Magento\GiftMessage\Model\Plugin\OrderSave"/> + <plugin name="get_gift_message" type="Magento\GiftMessage\Model\Plugin\OrderGet"/> + </type> </config> diff --git a/app/code/Magento/GoogleShopping/view/adminhtml/templates/captcha.phtml b/app/code/Magento/GoogleShopping/view/adminhtml/templates/captcha.phtml index ba0d01345700119c949a48e3f48e24372d5e983b..9d206cf76d080882935ce49267d9a98cd2e7d755 100644 --- a/app/code/Magento/GoogleShopping/view/adminhtml/templates/captcha.phtml +++ b/app/code/Magento/GoogleShopping/view/adminhtml/templates/captcha.phtml @@ -9,11 +9,9 @@ ?> <?php if ($block->getGcontentCaptchaToken() && $block->getGcontentCaptchaUrl()): ?> -<div class="admin__scope"> - <div class="messages"> - <div class="message message-error error"> - <div><img src="<?php echo $block->getGcontentCaptchaUrl() ?>"> <input type="text" id="user_confirm"> <?php echo $block->getConfirmButtonHtml() ?></div> - </div> +<div class="messages"> + <div class="message message-error error"> + <div><img src="<?php echo $block->getGcontentCaptchaUrl() ?>"> <input type="text" id="user_confirm"> <?php echo $block->getConfirmButtonHtml() ?></div> </div> </div> <?php endif; ?> diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js b/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js index 363841686c8aee2b9792ecd42ea5522feb8acccc..c5437123aea58b42d4c3cb41d21a076709d3a7eb 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js +++ b/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js @@ -121,6 +121,8 @@ define([ var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 55; $(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'); diff --git a/app/code/Magento/ImportExport/Block/Adminhtml/Export/Filter.php b/app/code/Magento/ImportExport/Block/Adminhtml/Export/Filter.php index 4f0408598040781afb0783254bf0ff4fc15c447a..0dfd086c2d0fe443af7450ea65be44826973abaf 100644 --- a/app/code/Magento/ImportExport/Block/Adminhtml/Export/Filter.php +++ b/app/code/Magento/ImportExport/Block/Adminhtml/Export/Filter.php @@ -80,7 +80,6 @@ class Filter extends \Magento\Backend\Block\Widget\Grid\Extended 'date_format' => $this->_localeDate->getDateFormat( \IntlDateFormatter::SHORT ), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), ]; /** @var $selectBlock \Magento\Framework\View\Element\Html\Date */ $dateBlock = $this->_layout->createBlock( diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml index 49c4283cc60e81c3f490e4ff247e65f9878a0dad..db1ffd3e47096bbe81af91505799de67e60e004b 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml +++ b/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml @@ -8,11 +8,9 @@ <div class="legend"> <span><?php echo __('Status'); ?></span> </div><br> - <div class="admin__scope"> - <div class="messages"> - <div class="message message-success success"> - <div><?php echo $block->getStatusMessage(); ?>hh</div> - </div> + <div class="messages"> + <div class="message message-success success"> + <div><?php echo $block->getStatusMessage(); ?>hh</div> </div> </div> </div> diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml index bfc09cbbdf22a7bb7f7ab0489f4a5ecaec17f765..98557c0254c317fbcb7b6803508e9759e222e90b 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml +++ b/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml @@ -9,7 +9,7 @@ <span class="icon-head head-edit-form fieldset-legend" id="import_validation_container_header"><?php echo __('Validation Results'); ?></span> </div><br> - <div id="import_validation_messages" class="fieldset "><!-- --></div> + <div id="import_validation_messages" class="fieldset admin__scope"><!-- --></div> </div> <script> require(['jquery', 'prototype'], function(jQuery){ diff --git a/app/code/Magento/Integration/view/adminhtml/templates/integration/activate/permissions.phtml b/app/code/Magento/Integration/view/adminhtml/templates/integration/activate/permissions.phtml index 201baa3fd24c39cd963b89029ff7358e4e23bfd5..1efdefbb0206ee0e0b6a63629a5a81509f0a5a7c 100644 --- a/app/code/Magento/Integration/view/adminhtml/templates/integration/activate/permissions.phtml +++ b/app/code/Magento/Integration/view/adminhtml/templates/integration/activate/permissions.phtml @@ -9,9 +9,7 @@ */ ?> <div><p><?php echo __('The integration you selected asks you to approve access to the following:'); ?></p></div> -<div class="admin__scope"> - <div id="integration-activate-permissions-tabs"> - <?php echo $block->getChildHtml('tabs'); ?> - </div> - <div id="integrations-activate-permissions-content"></div> -</div> \ No newline at end of file +<div id="integration-activate-permissions-tabs"> + <?php echo $block->getChildHtml('tabs'); ?> +</div> +<div id="integrations-activate-permissions-content"></div> \ No newline at end of file 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 7c4083e2387ed2526f55ee887a4bc6c3ec95b00c..c30380511ed23927563d16f7f0f725154e78b5e8 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 @@ -74,7 +74,7 @@ require([ <div id="integration-popup-container" style="display: none;"></div> <div id="integration-delete-container" - class="messages admin__scope" + class="messages" style="display: none;" title="<?php echo __('Are you sure ?'); ?>"> <div class="message message-notice notice"> diff --git a/app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml b/app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml index 1bd26773cd483696932f4817d8074011b17510f1..dec37ad6d2e775888c6978208b970410549475bf 100644 --- a/app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml +++ b/app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml @@ -46,7 +46,7 @@ if ($product->isSaleable()) { } ?> <?php if ($product->getMsrp()): ?> - <span class="old-price map-old-price msrp-price-wrapper"><?php echo $msrpPrice ?></span> + <span class="old-price map-old-price"><?php echo $msrpPrice ?></span> <?php endif; ?> <?php if ($priceType->isShowPriceOnGesture()): ?> diff --git a/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php b/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php index b590aa30c731f0a90799f55bee4a6926feeab409..e6fe3f8f8341e240a0af4e173546b45ffdb3e348 100644 --- a/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php +++ b/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php @@ -92,8 +92,7 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic 'name' => 'start_at', 'date_format' => $dateFormat, 'time_format' => $timeFormat, - 'label' => __('Queue Date Start'), - 'image' => $this->getViewFileUrl('images/grid-cal.png') + 'label' => __('Queue Date Start') ] ); @@ -104,7 +103,6 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic [ 'name' => 'stores[]', 'label' => __('Subscribers From'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'values' => $this->_systemStore->getStoreValuesForForm(), 'value' => $queue->getStores() ] @@ -126,8 +124,7 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic 'style' => 'width:38%;', 'date_format' => $dateFormat, 'time_format' => $timeFormat, - 'label' => __('Queue Date Start'), - 'image' => $this->getViewFileUrl('images/grid-cal.png') + 'label' => __('Queue Date Start') ] ); @@ -138,7 +135,6 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic [ 'name' => 'stores[]', 'label' => __('Subscribers From'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'required' => true, 'values' => $this->_systemStore->getStoreValuesForForm(), 'value' => $queue->getStores() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php b/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php index ebb83d33ff59e4793fe68abc806ad30e7fd9a8e3..7c18123b5fa881d59ad91ce148ca94d2ed168e22 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php @@ -147,7 +147,6 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic [ 'name' => 'from', 'date_format' => $dateFormat, - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'label' => __('From'), 'title' => __('From'), 'required' => true @@ -160,7 +159,6 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic [ 'name' => 'to', 'date_format' => $dateFormat, - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'label' => __('To'), 'title' => __('To'), 'required' => true diff --git a/app/code/Magento/Reports/view/adminhtml/templates/grid.phtml b/app/code/Magento/Reports/view/adminhtml/templates/grid.phtml index c4f544199ee5961e7af2feb2faf1847ef6fb4220..8d8ee2a1a08b6f6b982ee807ee03af4ac45714de 100644 --- a/app/code/Magento/Reports/view/adminhtml/templates/grid.phtml +++ b/app/code/Magento/Reports/view/adminhtml/templates/grid.phtml @@ -69,7 +69,6 @@ require([ $("#<?php echo $block->getSuffixId('period_date_range') ?>").dateRange({ dateFormat:"<?php echo $block->getDateFormat() ?>", - buttonImage:"<?php echo $block->getViewFileUrl('images/grid-cal.png') ?>", buttonText:"<?php echo __('Select Date') ?>", from:{ id:"<?php echo $block->getSuffixId('period_date_from')?>" diff --git a/app/code/Magento/Review/view/adminhtml/templates/rating/form.phtml b/app/code/Magento/Review/view/adminhtml/templates/rating/form.phtml index 0fbed76b6a38335059ecea71b5b475044a95be20..23c88259d8c259d9cc0290f609a7938f2217aeac 100644 --- a/app/code/Magento/Review/view/adminhtml/templates/rating/form.phtml +++ b/app/code/Magento/Review/view/adminhtml/templates/rating/form.phtml @@ -7,11 +7,9 @@ // @codingStandardsIgnoreFile ?> -<div class="admin__scope"> - <div class="messages"> - <div class="message message-notice message-in-rating-edit"> - <div><?php echo __('Please specify a rating title for a store, or we\'ll just use the default value.'); ?></div> - </div> +<div class="messages"> + <div class="message message-notice message-in-rating-edit"> + <div><?php echo __('Please specify a rating title for a store, or we\'ll just use the default value.'); ?></div> </div> </div> diff --git a/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php b/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php index 6384f3ad9aada395dd5f3bb3b7605eaf56e68add..79c0ebe18c8af49cb581e0a354194430cf65d83d 100644 --- a/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php +++ b/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php @@ -415,27 +415,6 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon } } - /** - * Retrieve value element - * - * @return \Magento\Framework\Data\Form\Element\AbstractElement - */ - public function getValueElement() - { - $element = parent::getValueElement(); - if (is_object($this->getAttributeObject())) { - switch ($this->getAttributeObject()->getFrontendInput()) { - case 'date': - $element->setImage($this->_assetRepo->getUrl('images/grid-cal.png')); - break; - default: - break; - } - } - - return $element; - } - /** * Retrieve value element chooser URL * diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Form/AbstractForm.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Form/AbstractForm.php index 03a8a5c98552da01db2f727e1a0a5925b36140c6..89b8068e9c59bc585b79c43de644343e7babbb5b 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Form/AbstractForm.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Form/AbstractForm.php @@ -204,7 +204,6 @@ abstract class AbstractForm extends \Magento\Sales\Block\Adminhtml\Order\Create\ $format = $this->_localeDate->getDateFormat( \IntlDateFormatter::SHORT ); - $element->setImage($this->getViewFileUrl('images/grid-cal.png')); $element->setDateFormat($format); } } diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Giftmessage.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Giftmessage.php index f5f53b3f736c8c754b79c56ac89a81ce005010bf..52cc36384d6367e90a2ffb300629f43b8fd993ca 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Giftmessage.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Giftmessage.php @@ -84,7 +84,7 @@ class Giftmessage extends \Magento\Sales\Block\Adminhtml\Order\Create\AbstractCr foreach ($allItems as $item) { if ($this->_getGiftmessageSaveModel()->getIsAllowedQuoteItem( $item - ) && $this->_messageHelper->getIsMessagesAvailable( + ) && $this->_messageHelper->isMessagesAllowed( 'item', $item, $this->getStore() diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php index 86fcf0a4ee35338465e2da808978bb9d46128852..fe33696ba778625a5c27be6b4bf8b43f7fcfd75e 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php @@ -232,9 +232,9 @@ class Grid extends \Magento\Sales\Block\Adminhtml\Order\Create\AbstractCreate public function isGiftMessagesAvailable($item = null) { if ($item === null) { - return $this->_messageHelper->getIsMessagesAvailable('items', $this->getQuote(), $this->getStore()); + return $this->_messageHelper->isMessagesAllowed('items', $this->getQuote(), $this->getStore()); } - return $this->_messageHelper->getIsMessagesAvailable('item', $item, $this->getStore()); + return $this->_messageHelper->isMessagesAllowed('item', $item, $this->getStore()); } /** diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Giftmessage.php b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Giftmessage.php index 546a3e5682549e3431f7b0dbcac1df1631c32990..2f70036c540aa9eb25c9cabe74b542e91451aa81 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Giftmessage.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Giftmessage.php @@ -290,7 +290,7 @@ class Giftmessage extends \Magento\Backend\Block\Widget */ public function canDisplayGiftmessage() { - return $this->_messageHelper->getIsMessagesAvailable( + return $this->_messageHelper->isMessagesAllowed( 'order', $this->getEntity(), $this->getEntity()->getStoreId() diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Items/Renderer/DefaultRenderer.php b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Items/Renderer/DefaultRenderer.php index 22ca91855bedc6b0d921ffb9afd26464a2ab990d..92cc81fa6f2a8c54deebcec06b1190d71a205308 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Items/Renderer/DefaultRenderer.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Items/Renderer/DefaultRenderer.php @@ -220,7 +220,7 @@ class DefaultRenderer extends \Magento\Sales\Block\Adminhtml\Items\Renderer\Defa */ public function canDisplayGiftmessage() { - return $this->_messageHelper->getIsMessagesAvailable( + return $this->_messageHelper->isMessagesAllowed( 'order_item', $this->getItem(), $this->getItem()->getOrder()->getStoreId() diff --git a/app/code/Magento/Sales/Model/Config/Backend/Grid/AsyncIndexing.php b/app/code/Magento/Sales/Model/Config/Backend/Grid/AsyncIndexing.php new file mode 100644 index 0000000000000000000000000000000000000000..b7eb6d8457f8188701f00cc5f9a717c3352fea15 --- /dev/null +++ b/app/code/Magento/Sales/Model/Config/Backend/Grid/AsyncIndexing.php @@ -0,0 +1,38 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Sales\Model\Config\Backend\Grid; + +/** + * Backend model for global configuration value + * 'dev/grid/async_indexing'. + */ +class AsyncIndexing extends \Magento\Framework\App\Config\Value +{ + /** + * Dispatches corresponding event after saving of configuration + * value if it was changed. + * + * Dispatches next events: + * + * - config_data_dev_grid_async_indexing_enabled + * - config_data_dev_grid_async_indexing_disabled + * + * @return $this + */ + public function afterSave() + { + if ($this->isValueChanged()) { + $state = $this->getValue() ? 'enabled' : 'disabled'; + + $this->_eventManager->dispatch( + $this->_eventPrefix . '_dev_grid_async_indexing_' . $state, + $this->_getEventData() + ); + } + + return $this; + } +} diff --git a/app/code/Magento/Sales/Model/Observer/IndexGrid.php b/app/code/Magento/Sales/Model/Observer/IndexGrid.php new file mode 100644 index 0000000000000000000000000000000000000000..fdf54b0f8f48a0aeafe7a4b3ecf172be97b04996 --- /dev/null +++ b/app/code/Magento/Sales/Model/Observer/IndexGrid.php @@ -0,0 +1,104 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Sales\Model\Observer; + +/** + * Sales entity grids indexing observer. + * + * Performs handling of events and cron jobs related to indexing + * of Order, Invoice, Shipment and Creditmemo grids. + */ +class IndexGrid +{ + /** + * Entity grid model. + * + * @var \Magento\Sales\Model\Resource\GridInterface + */ + protected $entityGrid; + + /** + * Global configuration storage. + * + * @var \Magento\Framework\App\Config\ScopeConfigInterface + */ + protected $globalConfig; + + /** + * @param \Magento\Sales\Model\Resource\GridInterface $entityGrid + * @param \Magento\Framework\App\Config\ScopeConfigInterface $globalConfig + */ + public function __construct( + \Magento\Sales\Model\Resource\GridInterface $entityGrid, + \Magento\Framework\App\Config\ScopeConfigInterface $globalConfig + ) { + $this->entityGrid = $entityGrid; + $this->globalConfig = $globalConfig; + } + + /** + * Handles synchronous insertion of the new entity into + * corresponding grid on certain events. + * + * Used in the next events: + * + * - sales_order_save_after + * - sales_order_invoice_save_after + * - sales_order_shipment_save_after + * - sales_order_creditmemo_save_after + * + * Works only if asynchronous grid indexing is disabled + * in global settings. + * + * @param \Magento\Framework\Event\Observer $observer + * @return void + */ + public function syncInsert(\Magento\Framework\Event\Observer $observer) + { + if (!$this->globalConfig->getValue('dev/grid/async_indexing')) { + $this->entityGrid->refresh($observer->getDataObject()->getId()); + } + } + + /** + * Handles synchronous removing of the entity from + * corresponding grid on certain events. + * + * Used in the next events: + * + * - sales_order_delete_after + * - sales_order_invoice_delete_after + * - sales_order_shipment_delete_after + * - sales_order_creditmemo_delete_after + * + * @param \Magento\Framework\Event\Observer $observer + * @return void + */ + public function syncRemove(\Magento\Framework\Event\Observer $observer) + { + $this->entityGrid->purge($observer->getDataObject()->getId()); + } + + /** + * Handles asynchronous insertion of the new entity into + * corresponding grid during cron job. + * + * Also method is used in the next events: + * + * - config_data_dev_grid_async_indexing_disabled + * + * Works only if asynchronous grid indexing is enabled + * in global settings. + * + * @return void + */ + public function asyncInsert() + { + if ($this->globalConfig->getValue('dev/grid/async_indexing')) { + $this->entityGrid->refreshBySchedule(); + } + } +} diff --git a/app/code/Magento/Sales/Model/Resource/AbstractGrid.php b/app/code/Magento/Sales/Model/Resource/AbstractGrid.php index ec8941c2ba11f91649a8abc9d9a6d243da9f552f..862b5079bad3c3a0db285fb9a7588c8493597d12 100644 --- a/app/code/Magento/Sales/Model/Resource/AbstractGrid.php +++ b/app/code/Magento/Sales/Model/Resource/AbstractGrid.php @@ -71,4 +71,24 @@ abstract class AbstractGrid extends AbstractDb implements GridInterface [($field ?: 'entity_id') . ' = ?' => $value] ); } + + /** + * Returns update time of the last row in the grid. + * + * If there are no rows in the grid, default value will be returned. + * + * @param string $default + * @return string + */ + protected function getLastUpdatedAtValue($default = '0000-00-00 00:00:00') + { + $select = $this->getConnection()->select() + ->from($this->getTable($this->gridTableName), ['updated_at']) + ->order('updated_at DESC') + ->limit(1); + + $row = $this->getConnection()->fetchRow($select); + + return isset($row['updated_at']) ? $row['updated_at'] : $default; + } } diff --git a/app/code/Magento/Sales/Model/Resource/Entity.php b/app/code/Magento/Sales/Model/Resource/Entity.php index ada1a586187ca71f5705579f6395d6048ac4a762..9c1f3f65522ad540885b495a9f130661d12181ee 100644 --- a/app/code/Magento/Sales/Model/Resource/Entity.php +++ b/app/code/Magento/Sales/Model/Resource/Entity.php @@ -50,28 +50,20 @@ abstract class Entity extends AbstractDb */ protected $salesIncrement; - /** - * @var \Magento\Sales\Model\Resource\GridInterface - */ - protected $gridAggregator; - /** * @param \Magento\Framework\Model\Resource\Db\Context $context * @param Attribute $attribute * @param \Magento\Sales\Model\Increment $salesIncrement * @param string|null $resourcePrefix - * @param GridInterface|null $gridAggregator */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, \Magento\Sales\Model\Resource\Attribute $attribute, \Magento\Sales\Model\Increment $salesIncrement, - $resourcePrefix = null, - \Magento\Sales\Model\Resource\GridInterface $gridAggregator = null + $resourcePrefix = null ) { $this->attribute = $attribute; $this->salesIncrement = $salesIncrement; - $this->gridAggregator = $gridAggregator; parent::__construct($context, $resourcePrefix); } @@ -89,6 +81,24 @@ abstract class Entity extends AbstractDb return $this; } + /** + * Prepares data for saving and removes update time (if exists). + * This prevents saving same update time on each entity update. + * + * @param \Magento\Framework\Model\AbstractModel $object + * @return array + */ + protected function _prepareDataForSave(\Magento\Framework\Model\AbstractModel $object) + { + $data = parent::_prepareDataForTable($object, $this->getMainTable()); + + if (isset($data['updated_at'])) { + unset($data['updated_at']); + } + + return $data; + } + /** * Perform actions before object save * @@ -127,10 +137,6 @@ abstract class Entity extends AbstractDb */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { - if ($this->gridAggregator) { - $this->gridAggregator->refresh($object->getId()); - } - $adapter = $this->_getReadAdapter(); $columns = $adapter->describeTable($this->getMainTable()); @@ -158,9 +164,6 @@ abstract class Entity extends AbstractDb */ protected function _afterDelete(\Magento\Framework\Model\AbstractModel $object) { - if ($this->gridAggregator) { - $this->gridAggregator->purge($object->getId()); - } parent::_afterDelete($object); return $this; } diff --git a/app/code/Magento/Sales/Model/Resource/GridInterface.php b/app/code/Magento/Sales/Model/Resource/GridInterface.php index b257a569cf0b5a5370e8d7683dfbfe22ee6ad175..138d7726f41a42313a40b40d8f78d64b25099fb4 100644 --- a/app/code/Magento/Sales/Model/Resource/GridInterface.php +++ b/app/code/Magento/Sales/Model/Resource/GridInterface.php @@ -12,12 +12,25 @@ namespace Magento\Sales\Model\Resource; interface GridInterface { /** + * Adds new rows to the grid. + * + * Only rows that correspond to $value and $field parameters should be added. + * * @param int|string $value * @param null|string $field * @return \Zend_Db_Statement_Interface */ public function refresh($value, $field = null); + /** + * Adds new rows to the grid. + * + * Only rows created/updated since the last method call should be added. + * + * @return \Zend_Db_Statement_Interface + */ + public function refreshBySchedule(); + /** * @param int|string $value * @param null|string $field diff --git a/app/code/Magento/Sales/Model/Resource/Order.php b/app/code/Magento/Sales/Model/Resource/Order.php index f25e34923c21c51bc297793e8133fbcc42925a1a..5a2cd7fedbdb9ba58feb7a9d830015b8e0182077 100644 --- a/app/code/Magento/Sales/Model/Resource/Order.php +++ b/app/code/Magento/Sales/Model/Resource/Order.php @@ -9,7 +9,6 @@ use Magento\Framework\App\Resource as AppResource; use Magento\Framework\Math\Random; use Magento\Sales\Model\Increment as SalesIncrement; use Magento\Sales\Model\Resource\Entity as SalesResource; -use Magento\Sales\Model\Resource\Order\Grid as OrderGrid; use Magento\Sales\Model\Resource\Order\Handler\Address as AddressHandler; use Magento\Sales\Model\Resource\Order\Handler\State as StateHandler; use Magento\Sales\Model\Spi\OrderResourceInterface; @@ -61,7 +60,6 @@ class Order extends SalesResource implements OrderResourceInterface * @param SalesIncrement $salesIncrement * @param AddressHandler $addressHandler * @param StateHandler $stateHandler - * @param OrderGrid $gridAggregator * @param string|null $resourcePrefix */ public function __construct( @@ -70,12 +68,11 @@ class Order extends SalesResource implements OrderResourceInterface SalesIncrement $salesIncrement, AddressHandler $addressHandler, StateHandler $stateHandler, - OrderGrid $gridAggregator, $resourcePrefix = null ) { $this->stateHandler = $stateHandler; $this->addressHandler = $addressHandler; - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** @@ -199,6 +196,7 @@ class Order extends SalesResource implements OrderResourceInterface $relatedObject->save(); $relatedObject->setOrder($object); } + return parent::_afterSave($object); } } diff --git a/app/code/Magento/Sales/Model/Resource/Order/Address.php b/app/code/Magento/Sales/Model/Resource/Order/Address.php index 0ae0007afce4c6df73de79ae9dfb3a79fd7bee57..bacacbbcd01e37894b0cbbe547f002d8db5d4545 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Address.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Address.php @@ -37,7 +37,6 @@ class Address extends SalesResource implements OrderAddressResourceInterface * @param \Magento\Sales\Model\Order\Address\Validator $validator * @param \Magento\Sales\Model\Resource\GridPool $gridPool * @param string|null $resourcePrefix - * @param \Magento\Sales\Model\Resource\GridInterface $gridAggregator */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, @@ -45,12 +44,11 @@ class Address extends SalesResource implements OrderAddressResourceInterface \Magento\Sales\Model\Increment $salesIncrement, \Magento\Sales\Model\Order\Address\Validator $validator, \Magento\Sales\Model\Resource\GridPool $gridPool, - $resourcePrefix = null, - \Magento\Sales\Model\Resource\GridInterface $gridAggregator = null + $resourcePrefix = null ) { $this->_validator = $validator; $this->gridPool = $gridPool; - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** diff --git a/app/code/Magento/Sales/Model/Resource/Order/Creditmemo.php b/app/code/Magento/Sales/Model/Resource/Order/Creditmemo.php index 11123a7771cc03258f42cfb5318f72e6b08b0722..5f2797d8efcef0b57860d26d44f81219d405a679 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Creditmemo.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Creditmemo.php @@ -9,7 +9,6 @@ use Magento\Framework\App\Resource as AppResource; use Magento\Sales\Model\Increment as SalesIncrement; use Magento\Sales\Model\Resource\Attribute; use Magento\Sales\Model\Resource\Entity as SalesResource; -use Magento\Sales\Model\Resource\Order\Creditmemo\Grid as CreditmemoGrid; use Magento\Sales\Model\Spi\CreditmemoResourceInterface; /** @@ -42,17 +41,15 @@ class Creditmemo extends SalesResource implements CreditmemoResourceInterface * @param \Magento\Framework\Model\Resource\Db\Context $context * @param Attribute $attribute * @param SalesIncrement $salesIncrement - * @param CreditmemoGrid $gridAggregator * @param string|null $resourcePrefix */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, Attribute $attribute, SalesIncrement $salesIncrement, - CreditmemoGrid $gridAggregator, $resourcePrefix = null ) { - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** @@ -93,6 +90,7 @@ class Creditmemo extends SalesResource implements CreditmemoResourceInterface $comment->save(); } } + return parent::_afterSave($object); } } diff --git a/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Comment.php b/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Comment.php index 4bd2bc8463cfeec1d5a6d18b75f2196f71ae6e31..dce44c4bb8673690183a8013b40a0b19405d1549 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Comment.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Comment.php @@ -35,18 +35,16 @@ class Comment extends Entity implements CreditmemoCommentResourceInterface * @param \Magento\Sales\Model\Increment $salesIncrement * @param \Magento\Sales\Model\Order\Creditmemo\Comment\Validator $validator * @param string|null $resourcePrefix - * @param \Magento\Sales\Model\Resource\GridInterface $gridAggregator */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, \Magento\Sales\Model\Resource\Attribute $attribute, \Magento\Sales\Model\Increment $salesIncrement, \Magento\Sales\Model\Order\Creditmemo\Comment\Validator $validator, - $resourcePrefix = null, - \Magento\Sales\Model\Resource\GridInterface $gridAggregator = null + $resourcePrefix = null ) { $this->validator = $validator; - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** diff --git a/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Grid.php b/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Grid.php index 512b2b6879ee9d26ef74b873b8d1ee3d5a0cc438..7d769253351d876da7f1ccba803da175bb195a10 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Grid.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Grid.php @@ -24,7 +24,10 @@ class Grid extends AbstractGrid protected $creditmemoTableName = 'sales_creditmemo'; /** - * Refresh grid row + * Adds new order creditmemos to the grid. + * + * Only order creditmemos that correspond to $value and $field + * parameters will be added. * * @param int|string $value * @param null|string $field @@ -34,6 +37,31 @@ class Grid extends AbstractGrid { $select = $this->getGridOriginSelect() ->where(($field ?: 'sfc.entity_id') . ' = ?', $value); + + return $this->getConnection()->query( + $this->getConnection() + ->insertFromSelect( + $select, + $this->getTable($this->gridTableName), + [], + AdapterInterface::INSERT_ON_DUPLICATE + ) + ); + } + + /** + * Adds new order creditmemos to the grid. + * + * Only order creditmemos created/updated since the last method call + * will be added. + * + * @return \Zend_Db_Statement_Interface + */ + public function refreshBySchedule() + { + $select = $this->getGridOriginSelect() + ->where('sfc.updated_at >= ?', $this->getLastUpdatedAtValue()); + return $this->getConnection()->query( $this->getConnection() ->insertFromSelect( @@ -81,6 +109,7 @@ class Grid extends AbstractGrid 'increment_id' => 'sfc.increment_id', 'order_increment_id' => 'sfo.increment_id', 'created_at' => 'sfc.created_at', + 'updated_at' => 'sfc.updated_at', 'order_created_at' => 'sfo.created_at', 'billing_name' => "trim(concat(ifnull(sba.firstname, ''), ' ', ifnull(sba.lastname, '')))", ] diff --git a/app/code/Magento/Sales/Model/Resource/Order/Grid.php b/app/code/Magento/Sales/Model/Resource/Order/Grid.php index 4dbd369c9989f512275335bc848e69628bf8b25c..92bccf926f30a0f069e4def9af00929ab7282975 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Grid.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Grid.php @@ -19,7 +19,9 @@ class Grid extends AbstractGrid protected $gridTableName = 'sales_order_grid'; /** - * Refresh grid row + * Adds new orders to the grid. + * + * Only orders that correspond to $value and $field parameters will be added. * * @param int|string $value * @param null|string $field @@ -29,6 +31,30 @@ class Grid extends AbstractGrid { $select = $this->getGridOriginSelect() ->where(($field ?: 'sfo.entity_id') . ' = ?', $value); + + return $this->getConnection()->query( + $this->getConnection() + ->insertFromSelect( + $select, + $this->getTable($this->gridTableName), + [], + AdapterInterface::INSERT_ON_DUPLICATE + ) + ); + } + + /** + * Adds new orders to the grid. + * + * Only orders created/updated since the last method call will be added. + * + * @return \Zend_Db_Statement_Interface + */ + public function refreshBySchedule() + { + $select = $this->getGridOriginSelect() + ->where('sfo.updated_at >= ?', $this->getLastUpdatedAtValue()); + return $this->getConnection()->query( $this->getConnection() ->insertFromSelect( diff --git a/app/code/Magento/Sales/Model/Resource/Order/Invoice.php b/app/code/Magento/Sales/Model/Resource/Order/Invoice.php index 79317bda2843a1869942360867eb84c9fd28ad70..406589dafd152ccf2f0f602f01fe74bf38188955 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Invoice.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Invoice.php @@ -9,7 +9,6 @@ use Magento\Framework\App\Resource; use Magento\Sales\Model\Increment as SalesIncrement; use Magento\Sales\Model\Resource\Attribute; use Magento\Sales\Model\Resource\Entity as SalesResource; -use Magento\Sales\Model\Resource\Order\Invoice\Grid as InvoiceGrid; use Magento\Sales\Model\Spi\InvoiceResourceInterface; /** @@ -38,17 +37,15 @@ class Invoice extends SalesResource implements InvoiceResourceInterface * @param \Magento\Framework\Model\Resource\Db\Context $context * @param Attribute $attribute * @param SalesIncrement $salesIncrement - * @param InvoiceGrid $gridAggregator * @param string|null $resourcePrefix */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, Attribute $attribute, SalesIncrement $salesIncrement, - InvoiceGrid $gridAggregator, $resourcePrefix = null ) { - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** @@ -93,6 +90,7 @@ class Invoice extends SalesResource implements InvoiceResourceInterface $comment->save(); } } + return parent::_afterSave($object); } } diff --git a/app/code/Magento/Sales/Model/Resource/Order/Invoice/Comment.php b/app/code/Magento/Sales/Model/Resource/Order/Invoice/Comment.php index 32d95112c41bf7215db251323aa6d313f596b9d1..5d44bd40bd5c0d50c8632f7647c16a089e026a0e 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Invoice/Comment.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Invoice/Comment.php @@ -34,7 +34,6 @@ class Comment extends Entity implements InvoiceCommentResourceInterface * @param \Magento\Sales\Model\Resource\Attribute $attribute * @param \Magento\Sales\Model\Increment $salesIncrement * @param \Magento\Sales\Model\Order\Invoice\Comment\Validator $validator - * @param \Magento\Sales\Model\Resource\GridInterface $gridAggregator * @param string|null $resourcePrefix */ public function __construct( @@ -42,11 +41,10 @@ class Comment extends Entity implements InvoiceCommentResourceInterface \Magento\Sales\Model\Resource\Attribute $attribute, \Magento\Sales\Model\Increment $salesIncrement, \Magento\Sales\Model\Order\Invoice\Comment\Validator $validator, - $resourcePrefix = null, - \Magento\Sales\Model\Resource\GridInterface $gridAggregator = null + $resourcePrefix = null ) { $this->validator = $validator; - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** diff --git a/app/code/Magento/Sales/Model/Resource/Order/Invoice/Grid.php b/app/code/Magento/Sales/Model/Resource/Order/Invoice/Grid.php index 35bb45b0e153c03c5751ffe91746a91db9c455b0..e203becb74c7e47a3302e6c77bd2900840fb5029 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Invoice/Grid.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Invoice/Grid.php @@ -24,7 +24,10 @@ class Grid extends AbstractGrid protected $invoiceTableName = 'sales_invoice'; /** - * Refresh grid row + * Adds new order invoices to the grid. + * + * Only order invoices that correspond to $value and $field + * parameters will be added. * * @param int|string $value * @param null|string $field @@ -34,6 +37,31 @@ class Grid extends AbstractGrid { $select = $this->getGridOriginSelect() ->where(($field ?: 'sfi.entity_id') . ' = ?', $value); + + return $this->getConnection()->query( + $this->getConnection() + ->insertFromSelect( + $select, + $this->getTable($this->gridTableName), + [], + AdapterInterface::INSERT_ON_DUPLICATE + ) + ); + } + + /** + * Adds new order invoices to the grid. + * + * Only order invoices created/updated since the last method call + * will be added. + * + * @return \Zend_Db_Statement_Interface + */ + public function refreshBySchedule() + { + $select = $this->getGridOriginSelect() + ->where('sfi.updated_at >= ?', $this->getLastUpdatedAtValue()); + return $this->getConnection()->query( $this->getConnection() ->insertFromSelect( @@ -75,6 +103,7 @@ class Grid extends AbstractGrid 'increment_id' => 'sfi.increment_id', 'order_increment_id' => 'sfo.increment_id', 'created_at' => 'sfi.created_at', + 'updated_at' => 'sfi.updated_at', 'order_created_at' => 'sfo.created_at', 'billing_name' => "trim(concat(ifnull(sba.firstname, ''), ' ', ifnull(sba.lastname, '')))", ] diff --git a/app/code/Magento/Sales/Model/Resource/Order/Shipment.php b/app/code/Magento/Sales/Model/Resource/Order/Shipment.php index 0d2ecdf5bfceddee81573e84392543634769ba1b..1d11adfed6748e73b3d0a02cb6faeedc23beaf47 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Shipment.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Shipment.php @@ -9,7 +9,6 @@ use Magento\Framework\App\Resource as AppResource; use Magento\Sales\Model\Increment as SalesIncrement; use Magento\Sales\Model\Resource\Attribute; use Magento\Sales\Model\Resource\Entity as SalesResource; -use Magento\Sales\Model\Resource\Order\Shipment\Grid as ShipmentGrid; use Magento\Sales\Model\Spi\ShipmentResourceInterface; /** @@ -47,17 +46,15 @@ class Shipment extends SalesResource implements ShipmentResourceInterface * @param \Magento\Framework\Model\Resource\Db\Context $context * @param Attribute $attribute * @param SalesIncrement $salesIncrement - * @param ShipmentGrid $gridAggregator * @param string|null $resourcePrefix */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, Attribute $attribute, SalesIncrement $salesIncrement, - ShipmentGrid $gridAggregator, $resourcePrefix = null ) { - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** diff --git a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Comment.php b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Comment.php index e18d89970fb50860305407633261e6e2f5d29479..ab50e07d1afa570c0bada035ae60344a5b9fbbf3 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Comment.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Comment.php @@ -35,18 +35,16 @@ class Comment extends Entity implements ShipmentCommentResourceInterface * @param \Magento\Sales\Model\Increment $salesIncrement * @param \Magento\Sales\Model\Order\Shipment\Comment\Validator $validator * @param string|null $resourcePrefix - * @param \Magento\Sales\Model\Resource\GridInterface $gridAggregator */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, \Magento\Sales\Model\Resource\Attribute $attribute, \Magento\Sales\Model\Increment $salesIncrement, \Magento\Sales\Model\Order\Shipment\Comment\Validator $validator, - $resourcePrefix = null, - \Magento\Sales\Model\Resource\GridInterface $gridAggregator = null + $resourcePrefix = null ) { $this->validator = $validator; - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** diff --git a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Grid.php b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Grid.php index 9dd1c697d4a780cfb53901a0f57b79db0f181e7d..c8c84e615498d0621dcf68acc9fe1d08393e7da7 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Grid.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Grid.php @@ -24,7 +24,10 @@ class Grid extends AbstractGrid protected $shipmentTableName = 'sales_shipment'; /** - * Refresh grid row + * Adds new order shipments to the grid. + * + * Only order shipments that correspond to $value and $field + * parameters will be added. * * @param int|string $value * @param null|string $field @@ -34,6 +37,31 @@ class Grid extends AbstractGrid { $select = $this->getGridOriginSelect() ->where(($field ?: 'sfs.entity_id') . ' = ?', $value); + + return $this->getConnection()->query( + $this->getConnection() + ->insertFromSelect( + $select, + $this->getTable($this->gridTableName), + [], + AdapterInterface::INSERT_ON_DUPLICATE + ) + ); + } + + /** + * Adds new order shipments to the grid. + * + * Only order shipments created/updated since the last method call + * will be added. + * + * @return \Zend_Db_Statement_Interface + */ + public function refreshBySchedule() + { + $select = $this->getGridOriginSelect() + ->where('sfs.updated_at >= ?', $this->getLastUpdatedAtValue()); + return $this->getConnection()->query( $this->getConnection() ->insertFromSelect( @@ -70,6 +98,7 @@ class Grid extends AbstractGrid 'increment_id' => 'sfs.increment_id', 'order_increment_id' => 'sfo.increment_id', 'created_at' => 'sfs.created_at', + 'updated_at' => 'sfs.updated_at', 'order_created_at' => 'sfo.created_at', 'shipping_name' => "trim(concat(ifnull(ssa.firstname, ''), ' ' ,ifnull(ssa.lastname, '')))", ] diff --git a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Track.php b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Track.php index 9ff1715b0dc714a8ce93d562ec99f770312541f3..86b27bc301c0e4084b8bcd9f718f4756f2f9b411 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Track.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Track.php @@ -35,18 +35,16 @@ class Track extends SalesResource implements ShipmentTrackResourceInterface * @param \Magento\Sales\Model\Increment $salesIncrement * @param \Magento\Sales\Model\Order\Shipment\Track\Validator $validator * @param string|null $resourcePrefix - * @param \Magento\Sales\Model\Resource\GridInterface $gridAggregator */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, \Magento\Sales\Model\Resource\Attribute $attribute, \Magento\Sales\Model\Increment $salesIncrement, \Magento\Sales\Model\Order\Shipment\Track\Validator $validator, - $resourcePrefix = null, - \Magento\Sales\Model\Resource\GridInterface $gridAggregator = null + $resourcePrefix = null ) { $this->validator = $validator; - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** diff --git a/app/code/Magento/Sales/Model/Resource/Order/Status/History.php b/app/code/Magento/Sales/Model/Resource/Order/Status/History.php index ff92ebe32c2ebc63be6afd3d3cbeba8b8a7dba14..bf50f4b6b004e7f2beb4c2eaeb1838408ea5c343 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Status/History.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Status/History.php @@ -27,18 +27,16 @@ class History extends Entity implements OrderStatusHistoryResourceInterface * @param \Magento\Sales\Model\Increment $salesIncrement * @param Validator $validator * @param string|null $resourcePrefix - * @param \Magento\Sales\Model\Resource\GridInterface $gridAggregator */ public function __construct( \Magento\Framework\Model\Resource\Db\Context $context, \Magento\Sales\Model\Resource\Attribute $attribute, \Magento\Sales\Model\Increment $salesIncrement, Validator $validator, - $resourcePrefix = null, - \Magento\Sales\Model\Resource\GridInterface $gridAggregator = null + $resourcePrefix = null ) { $this->validator = $validator; - parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix, $gridAggregator); + parent::__construct($context, $attribute, $salesIncrement, $resourcePrefix); } /** diff --git a/app/code/Magento/Sales/Setup/UpgradeSchema.php b/app/code/Magento/Sales/Setup/UpgradeSchema.php index 19c29e24be8cf388eb9dc3669afe5590e6cc87bf..6f3f45fa05e18b0595892a8f0c9201a711388652 100644 --- a/app/code/Magento/Sales/Setup/UpgradeSchema.php +++ b/app/code/Magento/Sales/Setup/UpgradeSchema.php @@ -60,5 +60,52 @@ class UpgradeSchema implements UpgradeSchemaInterface } } } + + if (version_compare($context->getVersion(), '2.0.2') < 0) { + + /** + * Adding 'updated_at' columns. + */ + + $tables = ['sales_shipment_grid', 'sales_invoice_grid', 'sales_creditmemo_grid']; + + foreach ($tables as $table) { + $table = $setup->getTable($table); + + $setup->getConnection() + ->addColumn( + $table, + 'updated_at', + [ + 'type' => Table::TYPE_TIMESTAMP, + 'after' => 'created_at', + 'comment' => 'Updated At' + ] + ); + + $setup->getConnection() + ->addIndex($table, $setup->getIdxName($table, ['updated_at']), 'updated_at'); + } + + /** + * Modifying default value of 'updated_at' columns. + */ + + $tables = ['sales_order', 'sales_shipment', 'sales_invoice', 'sales_creditmemo']; + + foreach ($tables as $table) { + $table = $setup->getTable($table); + + $setup->getConnection() + ->modifyColumn( + $table, + 'updated_at', + [ + 'type' => Table::TYPE_TIMESTAMP, + 'default' => Table::TIMESTAMP_INIT_UPDATE + ] + ); + } + } } } diff --git a/app/code/Magento/Sales/Test/Unit/Model/Config/Backend/Grid/AsyncIndexingTest.php b/app/code/Magento/Sales/Test/Unit/Model/Config/Backend/Grid/AsyncIndexingTest.php new file mode 100644 index 0000000000000000000000000000000000000000..972cfae38e2ae4273235a2c7a7d1ac260b4f45a3 --- /dev/null +++ b/app/code/Magento/Sales/Test/Unit/Model/Config/Backend/Grid/AsyncIndexingTest.php @@ -0,0 +1,93 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Sales\Test\Unit\Model\Config\Backend\Grid; + +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; + +/** + * Unit test of backend model for global configuration value + * 'dev/grid/async_indexing'. + */ +class AsyncIndexingTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Config\Backend\Grid\AsyncIndexing + */ + protected $object; + + /** + * @var \Magento\Framework\App\Config|\PHPUnit_Framework_MockObject_MockObject + */ + protected $config; + + /** + * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $context; + + /** + * @var \Magento\Framework\Event\Manager\Proxy|\PHPUnit_Framework_MockObject_MockObject + */ + protected $eventManager; + + protected function setUp() + { + $objectManager = new ObjectManager($this); + + $this->config = $this->getMock('Magento\Framework\App\Config', [], [], '', false); + + $this->eventManager = $this->getMock('Magento\Framework\Event\Manager\Proxy', [], [], '', false); + + $this->context = $this->getMock('Magento\Framework\Model\Context', ['getEventDispatcher'], [], '', false); + $this->context->expects($this->any())->method('getEventDispatcher')->willReturn($this->eventManager); + + $this->object = $objectManager->getObject( + '\Magento\Sales\Model\Config\Backend\Grid\AsyncIndexing', + [ + 'config' => $this->config, + 'context' => $this->context + ] + ); + } + + /** + * @param int $value + * @param int $oldValue + * @param string $eventName + * @dataProvider testAfterSaveDataProvider + * @return void + */ + public function testAfterSave($value, $oldValue, $eventName) + { + $path = 'dev/grid/async_indexing'; + $scope = \Magento\Framework\App\ScopeInterface::SCOPE_DEFAULT; + + $this->object->setData(['value' => $value, 'path' => $path, 'scope' => $scope]); + + $this->config->expects($this->once())->method('getValue')->with($path, $scope)->willReturn($oldValue); + + if ($value == $oldValue) { + $this->eventManager->expects($this->never())->method('dispatch'); + } else { + $this->eventManager->expects($this->once())->method('dispatch')->with($eventName); + } + + $this->object->afterSave(); + } + + /** + * @return array + */ + public function testAfterSaveDataProvider() + { + return [ + [0, 0, null], + [1, 1, null], + [0, 1, 'config_data_dev_grid_async_indexing_disabled'], + [1, 0, 'config_data_dev_grid_async_indexing_enabled'] + ]; + } +} diff --git a/app/code/Magento/Sales/Test/Unit/Model/Resource/OrderTest.php b/app/code/Magento/Sales/Test/Unit/Model/Resource/OrderTest.php index 58b073f18f682315c63f326e7e8b467a6bcb5b8b..6819c63725246e283b3ed876a3695d00384e45d2 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/Resource/OrderTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/Resource/OrderTest.php @@ -39,10 +39,6 @@ class OrderTest extends \PHPUnit_Framework_TestCase * @var \Magento\Sales\Model\Increment|\PHPUnit_Framework_MockObject_MockObject */ protected $salesIncrementMock; - /** - * @var \Magento\Sales\Model\Resource\Order\Grid|\PHPUnit_Framework_MockObject_MockObject - */ - protected $gridAggregatorMock; /** * @var \Magento\Sales\Model\Order|\PHPUnit_Framework_MockObject_MockObject */ @@ -96,7 +92,6 @@ class OrderTest extends \PHPUnit_Framework_TestCase ); $this->stateHandlerMock = $this->getMock('Magento\Sales\Model\Resource\Order\Handler\State', [], [], '', false); $this->salesIncrementMock = $this->getMock('Magento\Sales\Model\Increment', [], [], '', false); - $this->gridAggregatorMock = $this->getMock('Magento\Sales\Model\Resource\Order\Grid', [], [], '', false); $this->orderMock = $this->getMock( 'Magento\Sales\Model\Order', [], @@ -154,8 +149,7 @@ class OrderTest extends \PHPUnit_Framework_TestCase $this->attributeMock, $this->salesIncrementMock, $this->addressHandlerMock, - $this->stateHandlerMock, - $this->gridAggregatorMock + $this->stateHandlerMock ); } diff --git a/app/code/Magento/Sales/etc/adminhtml/system.xml b/app/code/Magento/Sales/etc/adminhtml/system.xml index d15118237917ade6b7c382a043f2f9941bb02af3..e7482704e39adc243e781283034f20f391152eb0 100644 --- a/app/code/Magento/Sales/etc/adminhtml/system.xml +++ b/app/code/Magento/Sales/etc/adminhtml/system.xml @@ -371,5 +371,15 @@ </field> </group> </section> + <section id="dev"> + <group id="grid" type="text" sortOrder="131" showInDefault="1" showInWebsite="0" showInStore="0"> + <label>Grid Settings</label> + <field id="async_indexing" translate="label" type="select" sortOrder="1" showInDefault="1" showInWebsite="0" showInStore="0"> + <label>Asynchronous indexing</label> + <source_model>Magento\Config\Model\Config\Source\Enabledisable</source_model> + <backend_model>Magento\Sales\Model\Config\Backend\Grid\AsyncIndexing</backend_model> + </field> + </group> + </section> </system> </config> diff --git a/app/code/Magento/Sales/etc/config.xml b/app/code/Magento/Sales/etc/config.xml index 2d42f963e6965decc5159ed82becc3fec22d25d2..f88cf2955f60ed8f3db411ad7f4f49b37b87dc51 100644 --- a/app/code/Magento/Sales/etc/config.xml +++ b/app/code/Magento/Sales/etc/config.xml @@ -94,5 +94,10 @@ <dashboard> <use_aggregated_data>0</use_aggregated_data> </dashboard> + <dev> + <grid> + <async_indexing>0</async_indexing> + </grid> + </dev> </default> </config> diff --git a/app/code/Magento/Sales/etc/crontab.xml b/app/code/Magento/Sales/etc/crontab.xml index 10e96dec3ab06c5877e9f44c14ed63ee0f17c9ca..1bd5b3e3e2478754784856b302a17ec3c2162470 100644 --- a/app/code/Magento/Sales/etc/crontab.xml +++ b/app/code/Magento/Sales/etc/crontab.xml @@ -25,5 +25,17 @@ <job name="aggregate_sales_report_bestsellers_data" instance="Magento\Sales\Model\Observer\AggregateSalesReportBestsellersData" method="execute"> <schedule>0 0 * * *</schedule> </job> + <job name="sales_grid_order_async_insert" instance="Magento\Sales\Model\Observer\Order\IndexGrid" method="asyncInsert"> + <schedule>*/1 * * * *</schedule> + </job> + <job name="sales_grid_order_invoice_async_insert" instance="Magento\Sales\Model\Observer\Order\Invoice\IndexGrid" method="asyncInsert"> + <schedule>*/1 * * * *</schedule> + </job> + <job name="sales_grid_order_shipment_async_insert" instance="Magento\Sales\Model\Observer\Order\Shipment\IndexGrid" method="asyncInsert"> + <schedule>*/1 * * * *</schedule> + </job> + <job name="sales_grid_order_creditmemo_async_insert" instance="Magento\Sales\Model\Observer\Order\Creditmemo\IndexGrid" method="asyncInsert"> + <schedule>*/1 * * * *</schedule> + </job> </group> </config> diff --git a/app/code/Magento/Sales/etc/di.xml b/app/code/Magento/Sales/etc/di.xml index ce41a5bd24663c3567f11a32c61f29db2425bfd9..b30edfeb3afc1280ce7cc77f844c982b51110c10 100644 --- a/app/code/Magento/Sales/etc/di.xml +++ b/app/code/Magento/Sales/etc/di.xml @@ -137,4 +137,24 @@ </argument> </arguments> </type> + <virtualType name="Magento\Sales\Model\Observer\Order\IndexGrid" type="Magento\Sales\Model\Observer\IndexGrid"> + <arguments> + <argument name="entityGrid" xsi:type="object">Magento\Sales\Model\Resource\Order\Grid</argument> + </arguments> + </virtualType> + <virtualType name="Magento\Sales\Model\Observer\Order\Invoice\IndexGrid" type="Magento\Sales\Model\Observer\IndexGrid"> + <arguments> + <argument name="entityGrid" xsi:type="object">Magento\Sales\Model\Resource\Order\Invoice\Grid</argument> + </arguments> + </virtualType> + <virtualType name="Magento\Sales\Model\Observer\Order\Shipment\IndexGrid" type="Magento\Sales\Model\Observer\IndexGrid"> + <arguments> + <argument name="entityGrid" xsi:type="object">Magento\Sales\Model\Resource\Order\Shipment\Grid</argument> + </arguments> + </virtualType> + <virtualType name="Magento\Sales\Model\Observer\Order\Creditmemo\IndexGrid" type="Magento\Sales\Model\Observer\IndexGrid"> + <arguments> + <argument name="entityGrid" xsi:type="object">Magento\Sales\Model\Resource\Order\Creditmemo\Grid</argument> + </arguments> + </virtualType> </config> diff --git a/app/code/Magento/Sales/etc/events.xml b/app/code/Magento/Sales/etc/events.xml index a4105518a48dedf01bcee2e42ee0be3d54dc7e49..7829d98ef926c6c14de526616d7ca5213d61827a 100644 --- a/app/code/Magento/Sales/etc/events.xml +++ b/app/code/Magento/Sales/etc/events.xml @@ -9,4 +9,34 @@ <event name="sales_order_place_after"> <observer name="sales_vat_request_params_order_comment" instance="Magento\Sales\Model\Observer\Frontend\Quote\AddVatRequestParamsOrderComment" method="execute" /> </event> + <event name="sales_order_save_after"> + <observer name="sales_grid_order_sync_insert" instance="Magento\Sales\Model\Observer\Order\IndexGrid" method="syncInsert" /> + </event> + <event name="sales_order_invoice_save_after"> + <observer name="sales_grid_order_invoice_sync_insert" instance="Magento\Sales\Model\Observer\Order\Invoice\IndexGrid" method="syncInsert" /> + </event> + <event name="sales_order_shipment_save_after"> + <observer name="sales_grid_order_shipment_sync_insert" instance="Magento\Sales\Model\Observer\Order\Shipment\IndexGrid" method="syncInsert" /> + </event> + <event name="sales_order_creditmemo_save_after"> + <observer name="sales_grid_order_creditmemo_sync_insert" instance="Magento\Sales\Model\Observer\Order\Creditmemo\IndexGrid" method="syncInsert" /> + </event> + <event name="sales_order_delete_after"> + <observer name="sales_grid_order_sync_remove" instance="Magento\Sales\Model\Observer\Order\IndexGrid" method="syncRemove" /> + </event> + <event name="sales_order_invoice_delete_after"> + <observer name="sales_grid_order_invoice_sync_remove" instance="Magento\Sales\Model\Observer\Order\Invoice\IndexGrid" method="syncRemove" /> + </event> + <event name="sales_order_shipment_delete_after"> + <observer name="sales_grid_order_shipment_sync_remove" instance="Magento\Sales\Model\Observer\Order\Shipment\IndexGrid" method="syncRemove" /> + </event> + <event name="sales_order_creditmemo_delete_after"> + <observer name="sales_grid_order_creditmemo_sync_remove" instance="Magento\Sales\Model\Observer\Order\Creditmemo\IndexGrid" method="syncRemove" /> + </event> + <event name="config_data_dev_grid_async_indexing_disabled"> + <observer name="sales_grid_order_async_insert" instance="Magento\Sales\Model\Observer\Order\IndexGrid" method="asyncInsert" /> + <observer name="sales_grid_order_invoice_async_insert" instance="Magento\Sales\Model\Observer\Order\Invoice\IndexGrid" method="asyncInsert" /> + <observer name="sales_grid_order_shipment_async_insert" instance="Magento\Sales\Model\Observer\Order\Shipment\IndexGrid" method="asyncInsert" /> + <observer name="sales_grid_order_creditmemo_async_insert" instance="Magento\Sales\Model\Observer\Order\Creditmemo\IndexGrid" method="asyncInsert" /> + </event> </config> diff --git a/app/code/Magento/Sales/etc/module.xml b/app/code/Magento/Sales/etc/module.xml index 54f554e7e038cdd9b8d28c791b8273376e1bbf48..90aa0777f18f1719f61c05970857a20669d7163b 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="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> - <module name="Magento_Sales" setup_version="2.0.1"> + <module name="Magento_Sales" setup_version="2.0.2"> <sequence> <module name="Magento_Rule"/> <module name="Magento_Catalog"/> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/address/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/address/form.phtml index 1a4008b367a0a185a321a2366c30aa9f079cc787..4c678d854c911d0768b9d7930e65d741cdfe7771 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/address/form.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/address/form.phtml @@ -7,11 +7,9 @@ // @codingStandardsIgnoreFile ?> -<div class="admin__scope"> - <div class="message message-notice"> - <div class="message-inner"> - <div class="message-content"><?php echo __('Changing address information will not recalculate shipping, tax or other order amount.') ?></div> - </div> +<div class="message message-notice"> + <div class="message-inner"> + <div class="message-content"><?php echo __('Changing address information will not recalculate shipping, tax or other order amount.') ?></div> </div> </div> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/giftmessage.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/giftmessage.phtml index 44b97e5d55ea6a7ffcd17a97a5e25ffd05cfc083..846caa0fd3951dd5d83be7d148a8ca942d1fd3ae 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/giftmessage.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/giftmessage.phtml @@ -7,13 +7,13 @@ // @codingStandardsIgnoreFile ?> -<?php if ($this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('main', $block->getQuote(), $block->getStoreId())): ?> +<?php if ($this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('main', $block->getQuote(), $block->getStoreId())): ?> <?php $_items = $block->getItems(); ?> <div id="order-giftmessage" class="giftmessage-order-create box-left"> <fieldset> <legend><?php echo __('Gift Message for the Entire Order') ?></legend> <br /> - <?php if ($this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('main', $block->getQuote(), $block->getStoreId())): ?> + <?php if ($this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('main', $block->getQuote(), $block->getStoreId())): ?> <div class="giftmessage-entire-order"> <p><?php echo __('If you don\'t want to leave a gift message for the entire order, leave this box blank.') ?></p> <?php echo $block->getFormHtml($block->getQuote(), 'main') ?> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml index 4b552dfa576a3575f71e04c75f4c8afc195548bb..5265ef94e56b2fec5ab4b2d83d38b525b99aa650 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml @@ -21,11 +21,9 @@ <?php $_code = $_rate->getCode() ?> <li> <?php if ($_rate->getErrorMessage()): ?> - <div class="admin__scope"> - <div class="messages"> - <div class="message message-error error"> - <div><?php echo $block->escapeHtml($_rate->getErrorMessage()) ?></div> - </div> + <div class="messages"> + <div class="message message-error error"> + <div><?php echo $block->escapeHtml($_rate->getErrorMessage()) ?></div> </div> </div> <?php else: ?> diff --git a/app/code/Magento/Sales/view/frontend/templates/email/items.phtml b/app/code/Magento/Sales/view/frontend/templates/email/items.phtml index 2f57c23485c3d0ab4b97dd809315683c921f51cb..b8a15bcbb3707819001b5ab6016a5ba635b3dbe7 100644 --- a/app/code/Magento/Sales/view/frontend/templates/email/items.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/email/items.phtml @@ -34,7 +34,7 @@ <?php echo $block->getChildHtml('order_totals') ?> </tbody> </table> -<?php if ($this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAvailable('order', $_order, $_order->getStore()) && $_order->getGiftMessageId()): ?> +<?php if ($this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order', $_order, $_order->getStore()) && $_order->getGiftMessageId()): ?> <?php $_giftMessage = $this->helper('Magento\GiftMessage\Helper\Message')->getGiftMessage($_order->getGiftMessageId()); ?> <?php if ($_giftMessage): ?> <br /> diff --git a/app/code/Magento/Sales/view/frontend/templates/order/items.phtml b/app/code/Magento/Sales/view/frontend/templates/order/items.phtml index 166366a05d870573701a66f9951aa656bc4c4a8e..f5c27e01af6f791aa3c0cfb267142cc1441a8776 100644 --- a/app/code/Magento/Sales/view/frontend/templates/order/items.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/order/items.phtml @@ -31,7 +31,7 @@ } ?> <tbody> <?php echo $block->getItemHtml($_item) ?> - <?php if ($this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order_item', $_item) && $_item->getGiftMessageId()): ?> + <?php if ($this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order_item', $_item) && $_item->getGiftMessageId()): ?> <?php $_giftMessage = $this->helper('Magento\GiftMessage\Helper\Message')->getGiftMessageForEntity($_item); ?> <tr> <td class="col options" colspan="5"> diff --git a/app/code/Magento/Sales/view/frontend/templates/order/view.phtml b/app/code/Magento/Sales/view/frontend/templates/order/view.phtml index 1106464712cfa2fbe9c9baf2cd684411c4682e76..64b84dacb490f9d1206af264e370052d3241c2c2 100644 --- a/app/code/Magento/Sales/view/frontend/templates/order/view.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/order/view.phtml @@ -20,7 +20,7 @@ <?php echo $block->getChildHtml('order_items') ?> - <?php if ($this->helper('Magento\GiftMessage\Helper\Message')->getIsMessagesAvailable('order', $_order) && $_order->getGiftMessageId()): ?> + <?php if ($this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order', $_order) && $_order->getGiftMessageId()): ?> <div class="block block-order-details-gift-message"> <div class="block-title"><strong><?php echo __('Gift Message for This Order') ?></strong></div> <?php $_giftMessage = $this->helper('Magento\GiftMessage\Helper\Message')->getGiftMessageForEntity($_order); ?> diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Main.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Main.php index c0e0d6e522797fce7146788f4c2055a407554ba8..911086d9db032ca919b855b8d12fd1fa361c4bf1 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Main.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Main.php @@ -265,7 +265,6 @@ class Main extends Generic implements TabInterface 'name' => 'from_date', 'label' => __('From Date'), 'title' => __('From Date'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'input_format' => \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT, 'date_format' => $dateFormat ] @@ -277,7 +276,6 @@ class Main extends Generic implements TabInterface 'name' => 'to_date', 'label' => __('To Date'), 'title' => __('To Date'), - 'image' => $this->getViewFileUrl('images/grid-cal.png'), 'input_format' => \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT, 'date_format' => $dateFormat ] diff --git a/app/code/Magento/Tax/Block/Adminhtml/Rate/Form.php b/app/code/Magento/Tax/Block/Adminhtml/Rate/Form.php index 7886702d51034b7e92ca5dbee59f4484ceed7bdc..08a7803aa85474510a9135d22b7819dd4122c03c 100644 --- a/app/code/Magento/Tax/Block/Adminhtml/Rate/Form.php +++ b/app/code/Magento/Tax/Block/Adminhtml/Rate/Form.php @@ -166,7 +166,7 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic } $legend = $this->getShowLegend() ? __('Tax Rate Information') : ''; - $fieldset = $form->addFieldset('base_fieldset', ['legend' => $legend]); + $fieldset = $form->addFieldset('base_fieldset', ['legend' => $legend, 'class' => 'form-inline']); if (isset($formData['tax_calculation_rate_id']) && $formData['tax_calculation_rate_id'] > 0) { $fieldset->addField( 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 04c2c6ebcc303436117a56781757b4dab3185c43..e1941d06d1d4973744aa9e6cc415e282cc799780 100644 --- a/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml +++ b/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml @@ -194,6 +194,8 @@ require([ var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30; $(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'); diff --git a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-1column.xml b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-1column.xml index 4965ab5e9c4a86209e1bf58ecaac70e219d12362..1fdae13532630769495ed32f529263aa6d756273 100644 --- a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-1column.xml +++ b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-1column.xml @@ -26,23 +26,21 @@ <container name="page.content" as="page_content" htmlTag="main" htmlId="anchor-content" htmlClass="page-content"> <container name="main.top" as="main-top" label="main-top"/> - <container name="page.main.actions.wrapper" htmlTag="div" htmlClass="admin__scope"> - <container name="page.main.actions" as="page_main_actions" htmlTag="div" htmlClass="page-main-actions"/> + <container name="page.main.actions" as="page_main_actions" htmlTag="div" htmlClass="page-main-actions"/> + <container name="messages.wrapper" as="messages.wrapper" htmlTag="div" htmlId="messages"> + <container name="page.messages" as="page.messages"/> </container> - <container name="message-wrapper.scope" htmlTag="div" htmlClass="admin__scope"> - <container name="messages.wrapper" as="messages.wrapper" htmlTag="div" htmlId="messages"> - <container name="page.messages" as="page.messages"/> + <container name="page.main.container" as="page_main_container" htmlId="page:main-container" htmlTag="div" htmlClass="page-columns"> + <container name="admin.scope.col.wrap" as="admin-scope-col-wrap" htmlTag="div" htmlClass="admin__scope-old"> <!-- ToDo UI: remove this wrapper remove with old styles removal --> + <container name="main.col" as="main-col" htmlId="container" htmlTag="div" htmlClass="main-col"> + <container name="content" as="content"/> + </container> </container> </container> - <container name="page.main.container" as="page_main_container" htmlId="page:main-container" htmlTag="div" htmlClass="col-1-layout"> - <container name="content" as="content"/> - </container> </container> <container name="js" as="js" label="JavaScript"/> - <container name="page.footer.wrapper" after="page.content" as="page_footer_wrapper" htmlTag="div" htmlClass="admin__scope"> - <container htmlTag="footer" htmlClass="page-footer"> - <container name="footer" htmlTag="div" htmlClass="page-footer-content row" /> - </container> + <container htmlTag="footer" htmlClass="page-footer"> + <container name="footer" htmlTag="div" htmlClass="page-footer-content row" /> </container> </container> <container name="before.body.end" as="before_body_end" label="Before Body End" after="-"/> diff --git a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-2columns-left.xml b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-2columns-left.xml index 4bab4ab9904421b43f9e62910f03fe781f2000ad..4b53f1edb618ba458e2e3d920d8608b4ed90f041 100644 --- a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-2columns-left.xml +++ b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-2columns-left.xml @@ -26,17 +26,15 @@ <container name="page.content" as="page_content" htmlTag="main" htmlId="anchor-content" htmlClass="page-content"> <container name="main.top" as="main-top" label="main-top"/> - <container name="page.main.actions.wrapper" htmlTag="div" htmlClass="admin__scope"> - <container name="page.main.actions" as="page_main_actions" htmlTag="div" htmlClass="page-main-actions"/> + <container name="page.main.actions" as="page_main_actions" htmlTag="div" htmlClass="page-main-actions"/> + <container name="messages.wrapper" as="messages.wrapper" htmlTag="div" htmlId="messages"> + <container name="page.messages" as="page.messages"/> </container> - <container name="message-wrapper.scope" htmlTag="div" htmlClass="admin__scope"> - <container name="messages.wrapper" as="messages.wrapper" htmlTag="div" htmlId="messages"> - <container name="page.messages" as="page.messages"/> - </container> - </container> - <container name="page.main.container" as="page_main_container" htmlId="page:main-container" htmlTag="div" htmlClass="col-2-left-layout"> + <container name="page.main.container" as="page_main_container" htmlId="page:main-container" htmlTag="div" htmlClass="page-columns"> <container name="main.col" as="main-col" htmlId="container" htmlTag="div" htmlClass="main-col"> - <container name="content" as="content"/> + <container name="admin.scope.col.wrap" as="admin-scope-col-wrap" htmlTag="div" htmlClass="admin__scope-old"> <!-- ToDo UI: remove this wrapper remove with old styles removal --> + <container name="content" as="content"/> + </container> </container> <container name="side.col" as="side-col" after="main.col" htmlId="page:left" htmlTag="div" htmlClass="side-col"> <container name="left" as="left"/> @@ -44,10 +42,8 @@ </container> </container> <container name="js" as="js" label="JavaScript"/> - <container name="page.footer.wrapper" after="page.content" as="page_footer_wrapper" htmlTag="div" htmlClass="admin__scope"> - <container htmlTag="footer" htmlClass="page-footer"> - <container name="footer" htmlTag="div" htmlClass="page-footer-content row" /> - </container> + <container htmlTag="footer" htmlClass="page-footer"> + <container name="footer" htmlTag="div" htmlClass="page-footer-content row" /> </container> </container> <container name="before.body.end" as="before_body_end" label="Before Body End" after="-"/> diff --git a/app/code/Magento/Theme/view/frontend/templates/js/calendar.phtml b/app/code/Magento/Theme/view/frontend/templates/js/calendar.phtml index 4fb03ca950dfe0e6625befecc38d9b1787554809..8a276e8af760b75be215d9917f873202975ede46 100644 --- a/app/code/Magento/Theme/view/frontend/templates/js/calendar.phtml +++ b/app/code/Magento/Theme/view/frontend/templates/js/calendar.phtml @@ -40,7 +40,8 @@ require([ showAnim: "", changeMonth: true, changeYear: true, - buttonImageOnly: true, + buttonImageOnly: null, + buttonImage: null, showButtonPanel: true, showWeek: true, timeFormat: '', diff --git a/app/code/Magento/Translation/view/adminhtml/templates/translate_inline.phtml b/app/code/Magento/Translation/view/adminhtml/templates/translate_inline.phtml index 328a33e5c3f5e2bb13ab9dbec46944250c6485bd..cda8dd45d92fb7da55e4b57309e6f33ab3ef34b7 100644 --- a/app/code/Magento/Translation/view/adminhtml/templates/translate_inline.phtml +++ b/app/code/Magento/Translation/view/adminhtml/templates/translate_inline.phtml @@ -9,7 +9,6 @@ ?> <link rel="stylesheet" type="text/css" href="<?php echo $block->getViewFileUrl('prototype/windows/themes/default.css') ?>"/> -<link rel="stylesheet" type="text/css" href="<?php echo $block->getViewFileUrl('Magento_Theme::prototype/magento.css') ?>"/> <link rel="stylesheet" type="text/css" href="<?php echo $block->getViewFileUrl('mage/translate-inline.css') ?>"/> <script id="translate-inline-icon" type="text/x-magento-template"> @@ -18,7 +17,8 @@ <script id="translate-form-template" type="text/x-magento-template"> <form id="<%- data.id %>"> <% _.each(data.items, function(item, i) { %> - <div class="magento_table_container"><table cellspacing="0"> + <div class="magento_table_container"> + <table cellspacing="0" class="table"> <% _.each(item, function(value, index) { %> <tr> <th class="label" style="text-transform: capitalize;"><%- index %>:</th> diff --git a/app/code/Magento/Translation/view/frontend/templates/translate_inline.phtml b/app/code/Magento/Translation/view/frontend/templates/translate_inline.phtml index d1c3ce3fc0795cc4bfb9dc89099c70b305f36fc4..19ab66540171a2e5620697eadabca782f49062aa 100644 --- a/app/code/Magento/Translation/view/frontend/templates/translate_inline.phtml +++ b/app/code/Magento/Translation/view/frontend/templates/translate_inline.phtml @@ -19,7 +19,7 @@ <form id="<%- data.id %>"> <% _.each(data.items, function(item, i) { %> <div class="magento_table_container"> - <table cellspacing="0"> + <table cellspacing="0" class="table"> <% _.each(item, function(value, index) { %> <tr> <th class="label" style="text-transform: capitalize;"><%- index %>:</th> diff --git a/app/code/Magento/Ui/view/base/templates/form/default.phtml b/app/code/Magento/Ui/view/base/templates/form/default.phtml index f9510c9f9b387857e88dd65c3c4186dacd3bed0c..7c51b5cb65711b8067c4abc21e1ee53d6f738754 100644 --- a/app/code/Magento/Ui/view/base/templates/form/default.phtml +++ b/app/code/Magento/Ui/view/base/templates/form/default.phtml @@ -15,13 +15,11 @@ $formConfig = $block->getRenderContext()->getConfigBuilder()->toJsonNew($block-> } } </script> -<div class="admin__scope"> <div data-role="spinner" data-component="<?php echo $block->getDataScope(); ?>.areas" class="grid-loading-mask"> <div class="spinner"> <span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span> </div> </div> -</div> <div data-bind="scope: '<?php echo $block->getDataScope(); ?>.areas'"> <!-- ko template: getTemplate() --><!-- /ko --> </div> diff --git a/app/code/Magento/Ui/view/base/templates/layout/tabs/nav/default.phtml b/app/code/Magento/Ui/view/base/templates/layout/tabs/nav/default.phtml index db67e197b9d390fcfde700069d2b232a8e71dcb4..46f9c9a8f0ec5672b8b8bed3a9b48fefa7d58bf6 100644 --- a/app/code/Magento/Ui/view/base/templates/layout/tabs/nav/default.phtml +++ b/app/code/Magento/Ui/view/base/templates/layout/tabs/nav/default.phtml @@ -7,13 +7,11 @@ * @var \Magento\Ui\Component\Layout\Tabs\Nav $block */ ?> -<div class="admin__scope"> <div data-role="spinner" data-component="<?php echo $block->getDataScope(); ?>.sections" class="grid-loading-mask"> <div class="spinner"> <span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span> </div> </div> -</div> <div data-bind="scope: '<?php echo $block->getDataScope(); ?>.sections' " class="ui-tabs"> <!-- ko template: getTemplate() --><!-- /ko --> </div> diff --git a/app/code/Magento/Ui/view/base/web/templates/content/content.html b/app/code/Magento/Ui/view/base/web/templates/content/content.html index cc9ae96bf6d379a2b741b72cf57ba9efa7016624..c3d84628b7721cfd63b07a65ab4e66e623b122c9 100644 --- a/app/code/Magento/Ui/view/base/web/templates/content/content.html +++ b/app/code/Magento/Ui/view/base/web/templates/content/content.html @@ -4,12 +4,10 @@ * See COPYING.txt for license details. */ --> -<div data-bind="html: content"></div> +<div data-bind="html: content, attr: {class: element.cssclass ? element.cssclass : 'admin__scope-old'}"></div> <!--ko if: showSpinner --> -<div class="admin__scope"> <div data-role="spinner" class="grid-loading-mask" data-bind="visible: loading"> <div class="spinner"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div> </div> -</div> <!-- /ko --> diff --git a/app/code/Magento/Ui/view/base/web/templates/fieldset/fieldset.html b/app/code/Magento/Ui/view/base/web/templates/fieldset/fieldset.html index 97407fc8c8641a6bcdd3e3d9718ac977549afb4d..7a5dc7460dc556de2f622e73d39f25f079d80126 100644 --- a/app/code/Magento/Ui/view/base/web/templates/fieldset/fieldset.html +++ b/app/code/Magento/Ui/view/base/web/templates/fieldset/fieldset.html @@ -5,7 +5,6 @@ */ --> <!-- ko if: elems --> -<div class="admin__scope"> <div class="admin__fieldset-wrapper" data-bind="css: {'collapsable-wrapper': collapsible, 'opened': opened}"> <div class="admin__fieldset-wrapper-title" tabindex="3" data-bind="click: onClick, keyboard: { 13: toggle }"> <strong class="title"> @@ -20,5 +19,4 @@ </fieldset> </div> </div> -</div> <!-- /ko --> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/tab.html b/app/code/Magento/Ui/view/base/web/templates/tab.html index f194f87400ea02f3a4c3086955196276533193c3..d2ff2cd5e890392506e6bae7d6455af70a97965c 100644 --- a/app/code/Magento/Ui/view/base/web/templates/tab.html +++ b/app/code/Magento/Ui/view/base/web/templates/tab.html @@ -4,17 +4,33 @@ * See COPYING.txt for license details. */ --> -<div class="admin__scope"> -<div class="admin__section-nav"> - <div class="admin__section-nav-title" data-bind="css: { '_collapsible': collapsible, '_opened': opened() && collapsible }, click: toggle, click: onClick, keyboard: { 13: onClick }"> +<div class="admin__page-nav"> + <div class="admin__page-nav-title" data-bind="css: { '_collapsible': collapsible, '_opened': opened() && collapsible }, click: toggle, click: onClick, keyboard: { 13: onClick }"> <strong tabindex="1" data-bind="text: label, keyboard: { 13: toggle }"></strong> </div> - <ul class="admin__section-nav-items items" data-bind="visible: opened"> + <ul class="admin__page-nav-items items" data-bind="visible: opened"> <!-- ko foreach: elems --> - <li class="admin__section-nav-item" tabindex="2" data-bind="css: { '_active': active, '_loading': loading }, click: activate, keyboard: { 13: activate }"> - <a class="admin__section-nav-link" href="#" data-bind="text: label, css: { '_changed': changed }, attr: { id: 'tab_' + index }"></a> + <li class="admin__page-nav-item" tabindex="2" data-bind="css: { '_active': active, '_loading': loading }, click: activate, keyboard: { 13: activate }"> + <a class="admin__page-nav-link" href="#" data-bind="css: { '_changed': changed }, attr: { id: 'tab_' + index }"> + <span data-bind="text: label"></span> + + <span class="admin__page-nav-item-messages"> + <span class="admin__page-nav-item-message _changed"> + <span class="admin__page-nav-item-message-icon"></span> + <span class="admin__page-nav-item-message-tooltip"> + Changes have been made to this section that have not been saved. + </span> + </span> + <span class="admin__page-nav-item-message-loader"> + <span class="spinner"> + <span></span><span></span><span></span><span></span> + <span></span><span></span><span></span><span></span> + </span> + </span> + </span> + + </a> </li> <!-- /ko --> </ul> -</div> </div> \ No newline at end of file diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Save.php b/app/code/Magento/User/Controller/Adminhtml/User/Save.php index 204b188822dbf8935ba57ccdacd7d8438deaf8be..45a960f72e2d48d3accf7931163c206768cd4723 100644 --- a/app/code/Magento/User/Controller/Adminhtml/User/Save.php +++ b/app/code/Magento/User/Controller/Adminhtml/User/Save.php @@ -83,7 +83,7 @@ class Save extends \Magento\User\Controller\Adminhtml\User { $this->_getSession()->setUserData($data); $arguments = $model->getId() ? ['user_id' => $model->getId()] : []; - $arguments = array_merge($arguments, ['_current' => true]); + $arguments = array_merge($arguments, ['_current' => true, 'active_tab' => '']); $this->_redirect('adminhtml/*/edit', $arguments); } } diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml index 2c46eb45d6bd66a1f9e695eea71ed635646f3454..254c75d0eb6808f9dc1610567450dddaae03013c 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml @@ -9,16 +9,13 @@ <head> <css src="mui/mui_legacy.css"/> <css src="css/styles-old.css"/> - <css src="css/styles-migration.css"/> <!-- New styles scope --> + <css src="css/styles.css"/> </head> <body> <referenceContainer name="page.wrapper"> - <container name="header.wrapper.scope" before="-" htmlTag="div" htmlClass="admin__scope"/> - <container name="menu.wrapper.scope" before="-" htmlTag="div" htmlClass="admin__scope"> - <container name="menu.wrapper" before="-" htmlTag="div" htmlClass="menu-wrapper"/> - </container> + <container name="menu.wrapper" before="-" htmlTag="div" htmlClass="menu-wrapper"/> </referenceContainer> <referenceContainer name="header" htmlClass="page-header row"> @@ -29,8 +26,6 @@ <move element="page.menu" destination="menu.wrapper" /> <move element="logo" before="-" destination="menu.wrapper" /> - <move element="header" destination="header.wrapper.scope" /> - <move element="notices.wrapper" before="header" destination="header.wrapper.scope" /> <move element="page.title" before="-" destination="header.inner.left" /> <move element="user" before="-" destination="header.inner.right" /> <move element="notification.messages" after="user" destination="header.inner.right" /> diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/styles.xml b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/styles.xml index 4215232ebe558e505152f816e3d35c2730efd44e..c9656e9f2858bf7f5399defa0b2158f9c1a74a9d 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/styles.xml +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/styles.xml @@ -9,10 +9,11 @@ <head> <remove src="mui/mui_legacy.css"/> <remove src="css/styles-old.css"/> - <remove src="css/styles-migration.css"/> <remove src="jquery/farbtastic/css/farbtastic.css"/> <css src="css/styles.css"/> </head> - <body/> + <body> + <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way --> + </body> </page> diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_module.less index 9b14865f6d62768c588f62d85b2eca526dfa81f0..9f68cdefd0ce9754a52bb2f75cd5a4181c372605 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_module.less +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_module.less @@ -17,3 +17,4 @@ // _____________________________________________ @import 'module/pages/_dashboard.less'; +@import 'module/pages/_login.less'; diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module.less index f44522671c3614ccba264599fe80ef790c41f147..e28aa1e58bfac4f25b7e5658384b79bd1eb2d221 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module.less +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module.less @@ -17,15 +17,6 @@ background-color: #fff; border: 1px solid #ada89e; border-radius: 2px; - .search-global-field & { - position: static; - display: block; - vertical-align: baseline; - width: auto; - background-color: transparent; - border: none; - border-radius: 0; - } &:after { position: absolute; top: 3px; @@ -41,9 +32,6 @@ content: '\e01f'; // search icon font-size: 18px; color: #b2b2b2; - .search-global-field & { - display: none; - } } input[type="search"], input.search { @@ -60,6 +48,19 @@ } } +.search-global-field .mage-suggest { + position: static; + display: block; + vertical-align: baseline; + width: auto; + background-color: transparent; + border: none; + border-radius: 0; + &:after { + display: none; + } +} + .mage-suggest-dropdown { position: absolute; left: 0; @@ -92,6 +93,7 @@ padding: 6px 12px 5px; text-decoration: none; color: #333; + height: inherit !important; } .jstree { li a:hover, diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_main.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_main.less index ee8c79be62fb1eb614592bd4bb1892301e068b5b..ce8cabfbf381ecf61580c00ad505438dce8f9aa4 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_main.less +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_main.less @@ -12,3 +12,4 @@ // --------------------------------------------- @import 'main/_actions-bar.less'; +@import 'main/_page-nav.less'; diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less index 10dc09d4a73839bcc14dcbd8c9ea9638b6b309f2..c64513ee36887a1a8461b8f0aac898dbc643a79b 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less @@ -15,9 +15,9 @@ @menu__background-color: @color-very-dark-grayish-orange; -@menu-logo__margin-bottom: 2.2rem; -@menu-logo__outer-size: @menu-logo__padding-vertical + @menu-logo-img__height + @menu-logo__margin-bottom; -@menu-logo__padding-vertical: 1.2rem; +@menu-logo__padding-bottom: 2.2rem; +@menu-logo__outer-size: @menu-logo__padding-top + @menu-logo-img__height + @menu-logo__padding-bottom; +@menu-logo__padding-top: 1.2rem; @menu-logo-img__height: 4.1rem; @menu-logo-img__width: 3.5rem; @@ -68,12 +68,27 @@ } .logo { display: block; - height: @menu-logo-img__height + @menu-logo__padding-vertical * 2; - margin-bottom: @menu-logo__margin-bottom - @menu-logo__padding-vertical; - padding: @menu-logo__padding-vertical 0; + height: @menu-logo-img__height + @menu-logo__padding-top + @menu-logo__padding-bottom; + padding: @menu-logo__padding-top 0 @menu-logo__padding-bottom; position: relative; text-align: center; z-index: @menu__z-index; + &:focus { + background-color: @menu-item__active__background-color; + box-shadow: none; + + .admin__menu { + .level-0 { + &:first-child { + > a { + background-color: @menu__background-color; + &:after { + display: none; + } + } + } + } + } + } &:hover { .logo-img { -webkit-filter: brightness(1.1); @@ -133,7 +148,6 @@ } // Hover & active state for menu level 0 item &._active, - &._hover, &:hover { > a { background-color: @menu-item__active__background-color; @@ -185,19 +199,13 @@ transition: all .5s ease; visibility: hidden; z-index: @submenu__z-index; - &._show { + } + &._show { + > .submenu { left: 100%; visibility: visible; } } - &._recent { - &._hover { - .submenu { - left: 100%; - visibility: visible; - } - } - } } .level-1 { @@ -220,13 +228,13 @@ } a { color: @submenu-link__color; - .keyfocus & { + ._keyfocus & { text-decoration: none; } &:active, &:focus { box-shadow: none; - .keyfocus & { + ._keyfocus & { background-color: @submenu-link__focus__background-color; } } diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_page-nav.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_page-nav.less new file mode 100644 index 0000000000000000000000000000000000000000..f97ba9ca38830c770729daedf4b034a5e5dde311 --- /dev/null +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_page-nav.less @@ -0,0 +1,310 @@ +// /** +// * Copyright © 2015 Magento. All rights reserved. +// * See COPYING.txt for license details. +// */ + +// +// Variables +// _____________________________________________ + +@admin__page-nav__background-color: @color-white-fog2; +@admin__page-nav__border-color: @border__color; + +@admin__page-nav-title__color: @color-very-dark-gray-black; +@admin__page-nav-title__border-color: @border__color; +@admin__page-nav-title__collapsible__background-color: @page-wrapper__background-color; +@admin__page-nav-title__collapsible__active__background-color: @color-white-fog2; +@admin__page-nav-title__font-size: @font-size__base; + +@admin__page-nav-item__border-color: @border__color; +@admin__page-nav-item__margin-vertical: 1.3rem; +@admin__page-nav-item__margin-horizontal: .7rem; +@admin__page-nav-item__active__color: @color-phoenix; +@admin__page-nav-item__hover__background-color: darken(@admin__page-nav__background-color, 5%); + +@admin__page-nav-link__color: @color-very-dark-gray-black; +@admin__page-nav-link__padding: 2rem 4rem 2rem 1rem; +@admin__page-nav-link__hover__color: @color-very-dark-gray-black; +@admin__page-nav-link__changed__color: @color-very-dark-gray; + +@admin__page-nav-icon-up__content: @icon-caret-up__content; +@admin__page-nav-icon-down__content: @icon-caret-down__content; +@admin__page-nav-icon-changed__content: @icon-edit__content; +@admin__page-nav-icon-error__content: @icon-warning__content; +@admin__page-nav-icon-error__color: @color-phoenix; + +@admin__page-nav-item-message-loader__font-size: 2rem; +@admin__page-nav-tooltip__background: @admin__page-nav__background-color; +@admin__page-nav-tooltip__box-shadow: 0 3px 9px 0 rgba(0, 0, 0, .3); +@admin__page-nav-tooltip__z-index1: @field-tooltip__z-index; +@admin__page-nav-tooltip__border-color: @color-gray75; + +@admin__page-nav-transition: border-color .1s ease-out, background-color .1s ease-out; + +// +// Page Nav (can be simple and collapsed) +// _____________________________________________ + +.admin__page-nav { + background: @admin__page-nav__background-color; + border: 1px solid @admin__page-nav__border-color; + + &._collapsed { + &:first-child { + border-bottom: none; + } + &._show { + border-bottom: 1px solid @admin__page-nav__border-color; + ._collapsible { + background: @admin__page-nav-title__collapsible__active__background-color; + &:after { + content: @admin__page-nav-icon-up__content; + } + + .admin__page-nav-items { + display: block; + } + } + } + &._hide { + .admin__page-nav-title-messages { + display: inline-block; + ._active { + display: inline-block; + } + } + } + } + + + ._collapsed { + border-bottom: none; + border-top: none; + } +} + +.admin__page-nav-title { + border-bottom: 1px solid @admin__page-nav-title__border-color; + color: @admin__page-nav-title__color; + display: block; + font-size: @admin__page-nav-title__font-size; + line-height: @line-height__s; + margin: 0 0 -1px; + padding: 1.8rem 1.5rem; + position: relative; + text-transform: uppercase; + + &._collapsible { + background: @admin__page-nav-title__collapsible__background-color; + cursor: pointer; + margin: 0; + padding-right: 3.5rem; + transition: @admin__page-nav-transition; + + + .admin__page-nav-items { + display: none; + margin-top: -1px; + } + + &:after { + &:extend(.abs-icon all); + content: @admin__page-nav-icon-down__content; + font-size: 1.3rem; + font-weight: @font-weight__bold; + position: absolute; + right: 1.8rem; + top: 2rem; + } + + &:hover { + background: @admin__page-nav-title__collapsible__active__background-color; + } + + &:last-child { + margin: 0 0 -1px; + } + } + strong { + font-weight: @font-weight__bold; + } + .admin__page-nav-title-messages { + display: none; + } +} + +.admin__page-nav-items { + list-style-type: none; + margin: 0; + padding: 0; +} + +.admin__page-nav-item { + border-left: 3px solid transparent; + margin-left: @admin__page-nav-item__margin-horizontal; + padding: 0; + position: relative; + transition: @admin__page-nav-transition; + + &:hover { + border-color: @admin__page-nav-item__hover__background-color; + .admin__page-nav-link { + background: @admin__page-nav-item__hover__background-color; + color: @admin__page-nav-link__hover__color; + text-decoration: none; + } + } + + &._active, + &.ui-state-active { + border-color: @admin__page-nav-item__active__color; + .admin__page-nav-link { + background: @admin__page-nav-title__collapsible__background-color; + border-color: @admin__page-nav-item__border-color; + border-right: 1px solid @admin__page-nav-title__collapsible__background-color; + color: @admin__page-nav-link__hover__color; + margin-right: -1px; + } + } + + &._active, + &.ui-state-active { + .admin__page-nav-link { + font-weight: @font-weight__semibold; + } + } + + &._loading, + &.ui-tabs-loading { + &:before { + display: none; + } + .admin__page-nav-item-message-loader { + display: inline-block; + } + } + + &:last-child { + margin-bottom: @admin__page-nav-item__margin-vertical; + } +} + + +.admin__page-nav-link { + border: 1px solid transparent; + border-width: 1px 0; + color: @admin__page-nav-link__color; + display: block; + font-weight: @font-weight__heavier; + line-height: @line-height__s; + margin: 0 0 -1px; + padding: @admin__page-nav-link__padding; + transition: @admin__page-nav-transition; + word-break: break-all; + + &._changed { + .admin__page-nav-item-message { + &._changed { + display: inline-block; + } + } + } + + &._error { + .admin__page-nav-item-message { + &._error { + display: inline-block; + } + } + } +} + +// Messages in tooltip + +.admin__page-nav-item-messages { + display: inline-block; + + .admin__page-nav-item-message { + position: relative; + &:hover { + z-index: @admin__page-nav-tooltip__z-index; + .admin__page-nav-item-message-tooltip { + display: block; + } + } + + &._error, + &._changed { + display: none; + .admin__page-nav-item-message-icon { + &:extend(.abs-icon all); + display: inline-block; + font-size: @admin__page-nav-title__font-size; + padding-left: .8em; + vertical-align: top; + &:after { + color: @admin__page-nav-link__changed__color; + content: @admin__page-nav-icon-changed__content; + } + } + } + + &._error { + .admin__page-nav-item-message-icon { + &:after { + color: @admin__page-nav-icon-error__color; + content: @admin__page-nav-icon-error__content; + } + } + } + } + + .admin__page-nav-item-message-loader { + display: none; + margin-top: -(@admin__page-nav-item-message-loader__font-size/2); + position: absolute; + right: 0; + top: 50%; + .spinner { + font-size: @admin__page-nav-item-message-loader__font-size; + margin-right: 1.5rem; + } + } + + .admin__page-nav-item-message-tooltip { + background: @admin__page-nav-tooltip__background; + border: 1px solid @admin__page-nav-tooltip__background; + border-radius: 1px; + bottom: 3.7rem; + box-shadow: @admin__page-nav-tooltip__box-shadow; + display: none; + font-weight: @font-weight__regular; + left: -1rem; + line-height: @line-height__base; + padding: 2rem; + position: absolute; + text-transform: none; + width: 27rem; + word-break: normal; + z-index: 2; + &:after, + &:before { + .arrow( + @_position: down, + @_size: 15px, + @_color: @admin__page-nav-tooltip__background + ); + content: ''; + display: block; + left: 2rem; + position: absolute; + top: 100%; + z-index: 3; + } + &:after { + border-top-color: @admin__page-nav-tooltip__background; + margin-top: -1px; + z-index: 4; + } + &:before { + border-top-color: @admin__page-nav-tooltip__border-color; + } + } +} diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less index 9c5d8803f41d21ce991120baaeac420f56e82e65..1d9ddf540b3b4a75e31ae5757aaf17f4ef2f1733 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less @@ -27,8 +27,10 @@ padding-left: 0; } } - th { - border-top: 0; + &.table { + th { + border-top: 0; + } } // Primary column @@ -161,6 +163,7 @@ .dashboard-store-stats { .ui-tabs { .extend__clearfix(); + margin-bottom: 0; position: relative; &:before { .background-gradient( diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_login.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_login.less similarity index 100% rename from app/design/adminhtml/Magento/backend/web/css/source/_login.less rename to app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_login.less diff --git a/app/design/adminhtml/Magento/backend/Magento_Catalog/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Catalog/web/css/source/module.less index cf85292e70a27afb8095de3dc310438cbcca66b7..ed15eb1f6c5e0721244aec6a8837071fb4668a22 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Catalog/web/css/source/module.less +++ b/app/design/adminhtml/Magento/backend/Magento_Catalog/web/css/source/module.less @@ -3,8 +3,8 @@ // * See COPYING.txt for license details. // */ -.catalog-category-edit { - .col-2-left-layout:before { +.catalog-category-edit.page-layout-admin-2columns-left { + .page-columns:before { display: none; } } diff --git a/app/design/adminhtml/Magento/backend/Magento_Tax/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Tax/web/css/source/module.less index d2a26cd014cec8d9b769a75b92c4849b18d06eef..c987e84d5ba9b89d2715863d252f4d66d25d5192 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Tax/web/css/source/module.less +++ b/app/design/adminhtml/Magento/backend/Magento_Tax/web/css/source/module.less @@ -3,8 +3,14 @@ // * See COPYING.txt for license details. // */ -.action-add.mselect-button-add { - &:extend(button all); +.block-footer .action-add { + &:extend(.admin__scope-old button all); +} + +.mselect-items-wrapper { + button { + .button-reset(); + } } .block.mselect-list { diff --git a/app/design/adminhtml/Magento/backend/Magento_Theme/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Theme/web/css/source/module.less index cba7db484ffd93b0c197b7960b1773220277f79b..478bb5847fce9b57b73dc0b483e73dbfc2775158 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Theme/web/css/source/module.less +++ b/app/design/adminhtml/Magento/backend/Magento_Theme/web/css/source/module.less @@ -5,65 +5,6 @@ // @group Header - -// Base - -html { - font-size: 62.5%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - font-size-adjust: 100%; -} - -body, -html { - height: 100%; - min-height: 100%; -} - -body { - color: @baseColor; - font-family: @baseFont; - line-height: @baseLineHeight; - font-weight: @baseFontWeight; - .font-size(@baseFontSize); - background: #f5f5f5; - .vendor-prefix-display(flex); - .vendor-prefix-flex-direction(column); - & > * { - .vendor-prefix-flex-grow(0); - .vendor-prefix-flex-shrink(0); - .vendor-prefix-flex-basis(auto); - } -} - -.page-wrapper { - max-width: 100%; - min-width: @layout__min-width + 2 * @layout-indent__width; - margin-left: 8.8rem; // migration styles -> @menu__width - background-color: #fff; - box-sizing: border-box; -} - -.page-actions { - &.fixed &-inner { - &:extend(._layout-width all); - } - &.fixed &-buttons { - padding-right: 15px; - } -} - -.page-content { - &:extend(._layout-width all); - .clearer(); - min-height: 20rem; // ToDo UI: delete if sticky footer -} - -.page-wrapper > .page-content { - margin-bottom: 20px; -} - button { border-radius: 2px; .button(); @@ -72,46 +13,30 @@ button { } } -//.actions-split { -// button { -// margin-left: 0 !important; -// } -// .dropdown-split( -// @_toggle-selector: ~".action-toggle", -// @_button-selector: ~".action-default", -// @_options-selector : ~".dropdown-menu", -// @_dropdown-split-button-border-radius-fix: true, -// @_dropdown-split-list-min-width: 175px -// ); -// vertical-align: middle; -// .action-toggle:after { -// height: 13px; -// } -//} +.main-col { + min-height: 20rem; // ToDo UI: delete if sticky footer +} // -// Icons -//-------------------------------------- -.icon-error { - margin-left: 15px; - color: #c00815; - font-size: 11px; - &:before { - font-family: 'MUI-Icons'; - content: "\e086"; - font-size: 13px; - line-height: 13px; - overflow: hidden; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - display: inline-block; - vertical-align: middle; - text-align: center; - margin: -1px 5px 0 0; - } -} +// Icons +// --------------------------------------------- -.ui-widget-overlay { - position: fixed; +.icon-error { + margin-left: 15px; + color: #c00815; + font-size: 11px; + &:before { + font-family: 'MUI-Icons'; + content: "\e086"; + font-size: 13px; + line-height: 13px; + overflow: hidden; + speak: none; + font-weight: normal; + -webkit-font-smoothing: antialiased; + display: inline-block; + vertical-align: middle; + text-align: center; + margin: -1px 5px 0 0; + } } diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/_module.less deleted file mode 100644 index f6845eec6ae5323b5dc80606388b378174f0c98f..0000000000000000000000000000000000000000 --- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/_module.less +++ /dev/null @@ -1,6 +0,0 @@ -// /** -// * Copyright © 2015 Magento. All rights reserved. -// * See COPYING.txt for license details. -// */ - -@import 'module/_tabnav.less'; diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module.less index 4fc4e2ec83e728948cca5248970b8bb53453240d..6d1cdd4c54a3d3db423a4740e016c242f7fd7e84 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module.less +++ b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module.less @@ -34,12 +34,6 @@ } .customer-index-edit { - .page-wrapper { - background: #fff; - } - .col-2-left-layout { - background: #fff; - } .main-col { padding-left: 40px; } @@ -118,10 +112,6 @@ color: #eb5202; text-decoration: none; } - .ui-state-active & { - color: @admin__color4; - font-weight: 600; - } &.changed { font-style: italic; } @@ -129,6 +119,11 @@ } } +.ui-state-active .tab-nav-item-link { + color: @admin__color4; + font-weight: 600; +} + .listing-tiles { overflow: hidden; margin-top: -10px; @@ -278,17 +273,6 @@ .visually-hidden(); } } - .dropdown-menu { - > li { - padding: 4px 15px; - &:hover { - background-color: #e8e8e8; - } - span { - display: block; - } - } - } } .grid-actions { @@ -584,15 +568,16 @@ .field .control input[type='text'][disabled] ~ .addafter, .field .control select[disabled], .field .control select[disabled] ~ .addafter { - background-color: #f4f4f4; - border-color: #ddd; - box-shadow: none; - color: #999; + background-color: #e9e9e9; + border-color: #adadad; + color: #303030; + opacity: .5; + cursor: not-allowed; } .field .control input[type='text'][disabled] ~ .addafter strong, .field .control select[disabled] ~ .addafter strong { - background-color: #f4f4f4; + background-color: #e9e9e9; } .field-price.addon { diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_tabnav.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_tabnav.less deleted file mode 100644 index 955559d4172732306417cc5cb4514a979d90e794..0000000000000000000000000000000000000000 --- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_tabnav.less +++ /dev/null @@ -1,124 +0,0 @@ -// /** -// * Copyright © 2015 Magento. All rights reserved. -// * See COPYING.txt for license details. -// */ - -// -// Variables -// _____________________________________________ - -@admin__section-nav-title__color: @color-very-dark-gray-black; -@admin__section-nav-title__bg-color: @color-white-fog2; -@admin__section-nav-title__border-color: @color-gray89; - -@admin__section-nav-item__border-color: @color-gray89; -@admin__section-nav-item__active__color: @color-phoenix; - -@admin__section-nav-link__color: @color-very-dark-gray-black; -@admin__section-nav-link__hover__color: @color-very-dark-gray-black; -@admin__section-nav-link__changed__color: @color-phoenix; - -// -// Tab Left Navigation -// _____________________________________________ - -.admin__section-nav { - padding-bottom: 1px + 50px; -} -.admin__section-nav-title { - padding: 0; - margin: 0 0 -1px; - color: @admin__section-nav-title__color; - display: block; - padding: 20px 13px; - background: @admin__section-nav-title__bg-color; - text-transform: uppercase; - border: 1px solid @admin__section-nav-title__border-color; - line-height: 1.2; - &._collapsible { - padding-right: 35px; - &:after { - content: '\e628'; - font-family: @icons-admin__font-name; - -webkit-font-smoothing: antialiased; - font-weight: normal; - speak: none; - position: absolute; - right: 18px; - top: 22px; - font-size: 1.3rem; - } - } - strong { - font-weight: @font-weight__bold; - } -} -.admin__section-nav-items { - list-style-type: none; - padding: 0; - margin: 0; -} -.admin__section-nav-item { - padding: 0; - border-left: 3px solid transparent; - margin: 0 0 -1px; - &._active { - border-color: @admin__section-nav-item__active__color; - .admin__section-nav-link { - border-color: @admin__section-nav-item__border-color; - margin: 0; - &:hover { - text-decoration: none; - } - } - } - &._loading { - position: relative; - z-index: 1; - &:before { - content: ""; - display: block; - position: absolute; - z-index: 2; - background: url('../images/loader-2.gif') no-repeat 50% 50%; - background-size: 120px; - width: 2rem; - height: 2rem; - top: 2.1rem; - right: .5rem; - } - } -} -.admin__section-nav-link { - border: 1px solid transparent; - border-width: 1px 0; - line-height: 1.2; - font-weight: @font-weight__heavier; - color: @admin__section-nav-link__color; - display: block; - padding: 20px 30px 20px 10px; - &:hover { - color: @admin__section-nav-link__hover__color; - text-decoration: underline; - } - &._changed { - position: relative; - z-index: 1; - &:before { - content: '\e623'; - font-family: @icons-admin__font-name; - -webkit-font-smoothing: antialiased; - font-style: normal; - font-weight: normal; - speak: none; - position: absolute; - z-index: 2; - font-size: 17px; - color: @admin__section-nav-link__changed__color; - width: 20px; - height: 20px; - top: 15px; - right: 5px; - } - } -} diff --git a/app/design/adminhtml/Magento/backend/web/css/override.less b/app/design/adminhtml/Magento/backend/web/css/override.less deleted file mode 100644 index 173fee2cef2b7c89dbb57e20e388ee32706d9451..0000000000000000000000000000000000000000 --- a/app/design/adminhtml/Magento/backend/web/css/override.less +++ /dev/null @@ -1,5017 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - font-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -main, -footer, -header, -main, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -template { - display: none; -} -a { - background: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: .67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -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"] { - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: .35em .625em .75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -html { - box-sizing: border-box; -} -* { - box-sizing: inherit; -} -*:before, -*:after { - box-sizing: inherit; -} -*:focus { - box-shadow: none; - outline: 0; -} -.keyfocus *:focus, -.keyfocus .admin__control-radio:focus + label, -.keyfocus .admin__control-checkbox:focus + label { - box-shadow: 0 0 0 1px #008bdb; -} -img, -video, -embed, -object { - max-width: 100%; -} -@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, -body { - height: 100%; -} -html { - font-size: 62.5%; -} -body { - font-size: 1.4rem; - color: #41362f; - font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-weight: 400; - font-style: normal; - line-height: 1.4; -} -h1 { - margin: 0 0 2rem; - font-size: 2.8rem; - color: #41362f; - font-weight: 400; - line-height: 1.2; -} -h2, -.admin__fieldset-wrapper-title strong { - margin: 0 0 2rem; - font-size: 2rem; - color: #41362f; - font-weight: 400; - line-height: 1.2; -} -h3 { - margin: 0 0 2rem; - font-size: 1.7rem; - color: #41362f; - font-weight: 600; - line-height: 1.2; -} -h4, -h5, -h6 { - font-weight: 600; - margin-top: 0; -} -p { - margin: 0 0 .5em; -} -a { - color: #007bdb; - text-decoration: none; -} -a:hover { - color: #007bdb; - text-decoration: underline; -} -@font-face { - font-family: 'Admin Icons'; - src: url('../fonts/admin-icons/admin-icons.eot'); - src: url('../fonts/admin-icons/admin-icons.eot?#iefix') format('embedded-opentype'), url('../fonts/admin-icons/admin-icons.woff2') format('woff2'), url('../fonts/admin-icons/admin-icons.woff') format('woff'), url('../fonts/admin-icons/admin-icons.ttf') format('truetype'), url('../fonts/admin-icons/admin-icons.svg#Admin Icons') format('svg'); - font-weight: normal; - font-style: normal; -} -ul, -ol, -dl { - margin-top: 0; - padding-left: 0; -} -nav ul, -nav ol { - list-style: none none; - margin: 0; - padding: 0; -} -.admin__control-text, -.admin__control-select, -.admin__control-multiselect, -.admin__control-file-label:before, -.admin__control-textarea, -.admin__control-addon [class*='admin__control-'] + [class*='admin__addon-']:before { - background-color: #ffffff; - border-radius: .1rem; - border: 1px solid #adadad; - color: #303030; - font-size: 1.4rem; - font-weight: 400; - height: 3.3rem; - max-width: 100%; - min-width: 10rem; - padding: 0 1rem; - transition: border-color 0.1s ease-in; -} -.admin__control-text:focus, -.admin__control-select:focus, -.admin__control-multiselect:focus, -.admin__control-file:active + .admin__control-file-label:before, -.admin__control-file:focus + .admin__control-file-label:before, -.admin__control-textarea:focus, -.admin__control-addon [class*='admin__control-']:focus + [class*='admin__addon-']:before { - border-color: #007bdb; - box-shadow: none; - outline: 0; -} -.admin__control-text[disabled], -.admin__control-select[disabled], -.admin__control-multiselect[disabled], -.admin__control-file[disabled] + .admin__control-file-label:before, -.admin__control-textarea[disabled], -.admin__control-addon [class*='admin__control-'][disabled] + [class*='admin__addon-']:before { - background-color: #e9e9e9; - border-color: #adadad; - color: #303030; - opacity: .5; - cursor: not-allowed; -} -.admin__fieldset > .admin__field.admin__field-wide[class] > .admin__field-control, -.address-item-edit-content .admin__field[class] > .admin__field-control, -.page-layout-admin-login .admin__field[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, -.address-item-edit-content .admin__field[class]:not(.admin__field-option) > .admin__field-label, -.page-layout-admin-login .admin__field[class]:not(.admin__field-option) > .admin__field-label { - text-align: left; - width: auto; - display: block; - line-height: 1.4rem; - margin-bottom: 0.86rem; - margin-top: -0.14rem; -} -.admin__fieldset > .admin__field.admin__field-wide[class]:not(.admin__field-option) > .admin__field-label:before, -.address-item-edit-content .admin__field[class]:not(.admin__field-option) > .admin__field-label:before, -.page-layout-admin-login .admin__field[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, -.address-item-edit-content .admin__field[class]:not(.admin__field-option)._required > .admin__field-label span, -.page-layout-admin-login .admin__field[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, -.address-item-edit-content .admin__field[class]:not(.admin__field-option)._required > .admin__field-label span:after, -.page-layout-admin-login .admin__field[class]:not(.admin__field-option)._required > .admin__field-label span:after { - left: 0; - margin-left: 30px; - top: .2rem; -} -.admin__control-table-wrapper { - max-width: 100%; - overflow-x: auto; - overflow-y: hidden; -} -.admin__control-table { - width: 100%; -} -.admin__control-table thead { - background: none; -} -.admin__control-table td, -.admin__control-table th { - background: #efefef; - border: 0; - border-bottom: 1px solid #ffffff; - padding: 1.3rem 2.5rem 1.3rem 0; - text-align: left; -} -.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-text { - line-height: 3.3rem; - width: 100%; -} -.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% - 33px) 0"; - background-size: auto, 3.3rem 100%, 1px 100%; - padding-right: 4.4rem; -} -.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% - 33px) 0"; -} -.admin__control-select::-ms-expand { - display: none; -} -.ie9 .admin__control-select { - padding-right: 0; -} -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: transparent; - border: 0; - width: auto; -} -.admin__control-textarea { - height: 8.48rem; - line-height: 1.18; - padding-top: .8rem; - width: 100%; -} -.admin__control-radio, -.admin__control-checkbox { - margin: .3rem 0 0; - opacity: 0.01; - overflow: hidden; - position: absolute; - vertical-align: top; -} -.admin__control-radio + label, -.admin__control-checkbox + label { - cursor: pointer; - display: inline-block; - padding-left: 26px; -} -.admin__control-radio + label:before, -.admin__control-checkbox + label:before { - background: none; - border-radius: .2rem; - border: 1px solid #adadad; - color: transparent; - content: '\e62d'; - float: left; - font: 0/14px 'Admin Icons'; - height: 1.6rem; - margin: 1px 10px 0 -26px; - text-align: center; - transition: border-color 0.1s ease-in, color 0.1s ease-in, font-size 0.1s ease-in; - vertical-align: top; - width: 1.6rem; -} -.admin__control-radio:focus + label:before, -.admin__control-checkbox:focus + label:before { - border-color: #007bdb; -} -.admin__control-radio[disabled] + label, -.admin__control-checkbox[disabled] + label { - color: #303030; - opacity: .5; -} -.admin__control-radio[disabled] + label:before, -.admin__control-checkbox[disabled] + label:before { - background-color: #e9e9e9; - border-color: #adadad; -} -.admin__control-radio + label:before { - border-radius: .8rem; - content: '\e637'; -} -.admin__control-radio:checked + label:before { - color: #514943; - font-size: 1rem; -} -.admin__control-checkbox:checked + label:before { - color: #514943; - font-size: 1.1rem; -} -.admin__control-addon { - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - display: inline-flex; - 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; - flex-basis: auto; - -webkit-flex-grow: 0; - flex-grow: 0; - -webkit-flex-shrink: 0; - flex-shrink: 0; - position: relative; - z-index: 1; -} -.admin__control-addon [class*='admin__control-'] { - appearence: none; - -webkit-flex-grow: 1; - flex-grow: 1; - box-shadow: none; - background-color: transparent; - border-color: transparent; - order: 1; - vertical-align: top; - width: auto; -} -.admin__control-addon [class*='admin__control-'] :focus { - box-shadow: 0; -} -.admin__control-addon [class*='admin__control-'] + [class*='admin__addon-'] { - padding-left: 1rem; - position: static !important; - z-index: 0; -} -.admin__control-addon [class*='admin__control-'] + [class*='admin__addon-'] > * { - position: relative; - vertical-align: top; - z-index: 2; -} -.admin__control-addon [class*='admin__control-'] + [class*='admin__addon-']:before { - bottom: 0; - box-sizing: border-box; - content: ''; - left: 0; - position: absolute; - top: 0; - width: 100%; - z-index: 0; -} -.admin__addon-suffix, -.admin__addon-prefix { - border: 0; - box-sizing: border-box; - color: #858585; - display: inline-block; - font-size: 1.4rem; - font-weight: 400; - height: 3.3rem; - line-height: 3.3rem; - padding: 0; -} -.admin__addon-suffix { - order: 3; -} -.admin__addon-suffix:last-child { - padding-right: 1rem; -} -.admin__addon-prefix { - order: 0; -} -.ie9 .admin__control-addon:after { - clear: both; - content: ''; - display: block; - height: 0; - overflow: hidden; -} -.ie9 .admin__addon { - min-width: auto; - 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__fieldset { - border: 0; - margin: 0; - min-width: 0; - padding: 0; -} -.admin__fieldset > .admin__field { - border: 0; - margin: 0; - padding: 0; - margin-left: -30px; -} -.admin__fieldset > .admin__field > .admin__field-control { - width: ~" calc( (100%) * 0.4444444444444444 - 30px )"; - float: left; - margin-left: 30px; -} -.admin__fieldset > .admin__field > .admin__field-label { - width: ~" calc( (100%) * 0.3333333333333333 - 30px )"; - float: left; - margin-left: 30px; -} -.admin__field-label { - color: #303030; - margin: 0; - text-align: right; -} -.admin__field-label + br { - display: none; -} -[class]: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; -} -[class]:not(.admin__field-option) > .admin__field-label:before { - content: '.'; - margin-left: -7px; - overflow: hidden; - visibility: hidden; - width: 0; -} -[class]: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: #a79d95; -} -.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; - z-index: 1; -} -.admin__fieldset > .admin__field:hover { - z-index: 2; -} -.admin__field[data-config-scope]:before { - color: #808080; - content: attr(data-config-scope); - display: inline-block; - font-size: 1.2rem; - left: ~" calc( (100%) * 0.7777777777777778 - 30px )"; - line-height: 3.2rem; - margin-left: 60px; - position: absolute; - width: ~" calc( (100%) * 0.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-error, -.admin__field-control label.mage-error { - background: #fffbbb; - border: 1px solid #ee7d7d; - box-sizing: border-box; - color: #555555; - 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: 8px; -} -.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; -} -[class*='admin__control-grouped'] > .admin__field:first-child, -.admin__control-fields > .admin__field:first-child { - position: static; -} -[class*='admin__control-grouped'] > .admin__field:first-child > .admin__field-label, -.admin__control-fields > .admin__field:first-child > .admin__field-label { - width: ~" calc( (100%) * 0.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-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 { - font-family: 'Admin Icons'; - content: '\e633'; - font-size: 2.2rem; - line-height: 1; - color: #514943; - overflow: hidden; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - display: inline-block; - vertical-align: middle; - 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 { - box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3); - background: #fffbbb; - border-radius: 1px; - border: 1px solid #afadac; - bottom: 42px; - display: none; - padding: 15px 25px; - position: absolute; - right: -70px; - width: 320px; - z-index: 1; -} -.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; -} -.col-2-left-layout { - margin-left: -30px; - margin-top: 50px; - width: auto; -} -.col-2-left-layout .main-col { - width: ~" calc( (100%) * 0.75 - 30px )"; - float: right; -} -.col-2-left-layout .side-col { - width: ~" calc( (100%) * 0.75 - 30px )"; - float: left; - margin-left: 30px; -} -.admin__fieldset-wrapper-title { - margin-bottom: 30px; - padding: 14px 0 16px; -} -.address-item-edit-content { - padding: 15px 30px; -} -.address-list { - float: left; - list-style-type: none; - margin: 0; - padding: 0; - width: 360px; -} -.address-list .address-list-item { - margin-bottom: 30px; -} -.address-list .action-delete { - background-image: none; - background: none; - border: 0; - margin: 0; - padding: 0; - -moz-box-sizing: content-box; - box-shadow: none; - text-shadow: none; - line-height: inherit; - font-weight: 400; - display: inline-block; - text-decoration: none; -} -.address-list .action-delete:focus, -.address-list .action-delete:active { - background: none; - border: none; -} -.address-list .action-delete:hover { - background: none; - border: none; -} -.address-list .action-delete.disabled, -.address-list .action-delete[disabled], -fieldset[disabled] .address-list .action-delete { - cursor: not-allowed; - pointer-events: none; - opacity: 0.5; -} -.address-list .action-delete > span { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.address-list .action-delete:after { - font-family: 'Admin Icons'; - content: '\e620'; - font-size: 1.6rem; - line-height: 16px; - color: #41362f; - overflow: hidden; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - display: inline-block; - vertical-align: middle; - text-align: center; -} -.address-list .action-delete span { - max-height: 1px; - max-width: 1px; -} -.address-list .action-delete:hover { - position: relative; - z-index: 2; -} -.address-list .action-delete:hover:after { - color: #060504; -} -.address-list .action-delete:hover span { - background-color: #fcfcfc; - border: 1px solid #989287; - border-radius: .4rem; - bottom: 100%; - clip: auto; - font-size: 1.2rem; - height: auto; - left: auto; - margin: 0 auto .1rem; - padding: .5rem; - right: auto; - top: auto; - max-height: 50px; - max-width: 200px; - white-space: nowrap; - width: auto; - transition: all .01s linear .7s; -} -.address-item-edit { - margin-left: 359px; - max-width: 500px; -} -.address-item-edit .admin__legend { - display: none; -} -[class*='admin__control-'].mage-error ~ [class*='admin__addon-']:before, -.admin__field-control > [class*='admin__control-'].mage-error { - border-color: #e22626; -} -.page-layout-admin-login .loading-mask { - background: rgba(255, 255, 255, 0.2); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; - z-index: 1000; -} -.page-layout-admin-login .popup-loading { - height: 149px; - left: 50%; - margin-left: -109px; - margin-top: -74.5px; - position: absolute; - top: 50%; - overflow: hidden; - width: 218px; -} -.page-layout-admin-login .field-captcha { - padding-left: 30px; - vertical-align: middle; -} -.page-layout-admin-login .field-captcha .captcha-reload { - float: right; - vertical-align: middle; -} -.admin__action-dropdown { - background-color: transparent; - border: none; - border-radius: 0; - box-shadow: none; - margin: 0; - padding: 0; - padding-right: 3rem; - color: #41362f; -} -.admin__action-dropdown:hover { - background-color: transparent; - border: none; - box-shadow: none; -} -.admin__action-dropdown._active:after, -.admin__action-dropdown.active:after { - transform: rotate(180deg); -} -.admin__action-dropdown:after { - border-color: #000000 transparent transparent transparent; - border-style: solid; - border-width: 0.5rem 0.4rem 0 0.4rem; - content: ''; - height: 0; - margin-top: -0.2rem; - position: absolute; - right: 1.1rem; - top: 50%; - transition: all .2s linear; - width: 0; -} -._active .admin__action-dropdown:after, -.active .admin__action-dropdown:after { - transform: rotate(180deg); -} -.admin__action-dropdown:hover:after { - border-color: #000000 transparent transparent transparent; -} -.actions-split { - position: relative; - z-index: 300; -} -.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.action-primary, -.actions-split.active .action-toggle.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; -} -.actions-split .action-toggle, -.actions-split .action-default { - float: left; - margin: 0; -} -.actions-split .action-toggle.active, -.actions-split .action-default.active, -.actions-split .action-toggle._active, -.actions-split .action-default._active, -.actions-split .action-toggle:hover, -.actions-split .action-default:hover { - box-shadow: none; -} -.actions-split .action-default { - margin-right: 4rem; - min-width: 9.3rem; -} -.actions-split .action-toggle { - padding-right: 4rem; - border-left-color: rgba(0, 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 { - transform: rotate(180deg); -} -.actions-split .action-toggle:after { - border-color: #000000 transparent transparent transparent; - border-style: solid; - border-width: 0.9rem 0.6rem 0 0.6rem; - content: ''; - height: 0; - margin-top: -0.3rem; - position: absolute; - right: 1.4rem; - top: 50%; - transition: all .2s linear; - width: 0; -} -._active .actions-split .action-toggle:after, -.active .actions-split .action-toggle:after { - transform: rotate(180deg); -} -.actions-split .action-toggle:hover:after { - border-color: #000000 transparent transparent transparent; -} -.actions-split .action-toggle._active:after, -.actions-split .action-toggle.active:after { - transform: none; -} -.actions-split .action-toggle.action-secondary:after, -.actions-split .action-toggle.secondary:after, -.actions-split .action-toggle.action-primary:after, -.actions-split .action-toggle.primary:after { - border-color: #ffffff transparent transparent transparent; -} -.actions-split .action-toggle > span { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.actions-split .dropdown-menu { - background-color: #ffffff; - border: 1px solid #007bdb; - border-radius: 1px; - box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); - display: block; - left: 0; - list-style: none; - margin: 2px 0 0; - min-width: 0; - opacity: 0; - padding: 0; - position: absolute; - right: 0; - top: 100%; - transition: opacity 0.15s ease; - visibility: hidden; -} -.actions-split .dropdown-menu > li { - border: none; - padding: .6875em; -} -.actions-split .dropdown-menu > li:hover { - background-color: #e3e3e3; -} -.actions-split .dropdown-menu > li:active { - background-color: #cacaca; -} -.abs-action-reset, -.admin__menu .submenu-close, -.search-global-field._active .search-global-action, -.notifications-close { - background-color: transparent; - border: none; - border-radius: 0; - box-shadow: none; - margin: 0; - padding: 0; -} -.abs-action-reset:hover, -.admin__menu .submenu-close:hover, -.search-global-field._active .search-global-action:hover, -.notifications-close:hover { - background-color: transparent; - border: none; - box-shadow: none; -} -.abs-action-pattern, -.abs-action-default, -.abs-action-primary, -.abs-action-secondary, -.abs-action-tertiary, -.abs-action-quaternary, -.action-default, -button, -.action-primary, -.action-secondary, -.action-tertiary, -.action-quaternary, -button, -button.primary, -button.secondary, -button.tertiary, -.ui-dialog .action-close, -.ui-dialog .ui-button, -.ui-dialog .action-primary, -.attribute-popup-actions .action-default.reset, -.attribute-popup-actions .page-actions-buttons > button.action-default.primary, -.page-actions > button, -.page-actions .page-actions-buttons > button, -.page-actions > button.action-primary, -.page-actions .page-actions-buttons > button.action-primary, -.page-actions > button.primary, -.page-actions .page-actions-buttons > button.primary, -.popup-window .magento_buttons .ok_button, -.popup-window .magento_buttons .cancel_button, -.fade .actions .primary, -.fade .actions .cancel { - 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; - padding: 0.5em 1em 0.57em; - text-align: center; - vertical-align: baseline; -} -.abs-action-pattern[disabled], -.abs-action-pattern.disabled, -.abs-action-default[disabled], -.abs-action-default.disabled, -.abs-action-primary[disabled], -.abs-action-primary.disabled, -.abs-action-secondary[disabled], -.abs-action-secondary.disabled, -.abs-action-tertiary[disabled], -.abs-action-tertiary.disabled, -.abs-action-quaternary[disabled], -.abs-action-quaternary.disabled, -.action-default[disabled], -.action-default.disabled, -button[disabled], -button.disabled, -.action-primary[disabled], -.action-primary.disabled, -.action-secondary[disabled], -.action-secondary.disabled, -.action-tertiary[disabled], -.action-tertiary.disabled, -.action-quaternary[disabled], -.action-quaternary.disabled, -button[disabled], -button.disabled, -button.primary[disabled], -button.primary.disabled, -button.secondary[disabled], -button.secondary.disabled, -button.tertiary[disabled], -button.tertiary.disabled, -.ui-dialog .action-close[disabled], -.ui-dialog .action-close.disabled, -.ui-dialog .ui-button[disabled], -.ui-dialog .ui-button.disabled, -.ui-dialog .action-primary[disabled], -.ui-dialog .action-primary.disabled, -.attribute-popup-actions .action-default.reset[disabled], -.attribute-popup-actions .action-default.reset.disabled, -.attribute-popup-actions .page-actions-buttons > button.action-default.primary[disabled], -.attribute-popup-actions .page-actions-buttons > button.action-default.primary.disabled, -.page-actions > button[disabled], -.page-actions > button.disabled, -.page-actions .page-actions-buttons > button[disabled], -.page-actions .page-actions-buttons > button.disabled, -.page-actions > button.action-primary[disabled], -.page-actions > button.action-primary.disabled, -.page-actions .page-actions-buttons > button.action-primary[disabled], -.page-actions .page-actions-buttons > button.action-primary.disabled, -.page-actions > button.primary[disabled], -.page-actions > button.primary.disabled, -.page-actions .page-actions-buttons > button.primary[disabled], -.page-actions .page-actions-buttons > button.primary.disabled, -.popup-window .magento_buttons .ok_button[disabled], -.popup-window .magento_buttons .ok_button.disabled, -.popup-window .magento_buttons .cancel_button[disabled], -.popup-window .magento_buttons .cancel_button.disabled, -.fade .actions .primary[disabled], -.fade .actions .primary.disabled, -.fade .actions .cancel[disabled], -.fade .actions .cancel.disabled { - cursor: default; - opacity: 0.7; - pointer-events: none; -} -.abs-action-l, -.ui-dialog .ui-button, -.ui-dialog .action-primary, -.attribute-popup-actions .page-actions-buttons > button.action-default.primary, -.page-layout-admin-login .action-primary, -.page-actions button, -.page-actions .page-actions-buttons > button, -.page-actions > button.action-primary, -.page-actions .page-actions-buttons > button.action-primary, -.page-actions > button.primary, -.page-actions .page-actions-buttons > button.primary, -.popup-window .magento_buttons .ok_button, -.fade .actions .primary { - font-size: 1.6rem; - letter-spacing: .025em; - padding-bottom: 0.6875em; - padding-top: 0.6875em; -} -.abs-action-default, -button { - background: #e3e3e3; - border-color: #adadad; - color: #514943; -} -.abs-action-default:hover, -button:hover { - background-color: #dbdbdb; - color: #514943; - text-decoration: none; -} -.abs-action-primary, -button.primary, -.page-actions > button.action-primary, -.page-actions .page-actions-buttons > button.action-primary, -.page-actions > button.primary, -.page-actions .page-actions-buttons > button.primary { - background-color: #eb5202; - border-color: #eb5202; - color: #ffffff; - text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25); -} -.abs-action-primary:hover, -.abs-action-primary:active, -button.primary:hover, -button.primary:active, -.page-actions > button.action-primary:hover, -.page-actions > button.action-primary:active, -.page-actions .page-actions-buttons > button.action-primary:hover, -.page-actions .page-actions-buttons > button.action-primary:active, -.page-actions > button.primary:hover, -.page-actions > button.primary:active, -.page-actions .page-actions-buttons > button.primary:hover, -.page-actions .page-actions-buttons > button.primary:active { - background-color: #ba4000; - border-color: #b84002; - box-shadow: 0 0 0 1px #007bdb; - color: #ffffff; - text-decoration: none; -} -.abs-action-primary.disabled, -.abs-action-primary[disabled], -button.primary.disabled, -button.primary[disabled], -.page-actions > button.action-primary.disabled, -.page-actions > button.action-primary[disabled], -.page-actions .page-actions-buttons > button.action-primary.disabled, -.page-actions .page-actions-buttons > button.action-primary[disabled], -.page-actions > button.primary.disabled, -.page-actions > button.primary[disabled], -.page-actions .page-actions-buttons > button.primary.disabled, -.page-actions .page-actions-buttons > button.primary[disabled] { - cursor: default; - opacity: 0.7; - pointer-events: none; -} -.abs-action-secondary, -button.secondary, -.ui-dialog .ui-button, -.ui-dialog .action-primary, -.attribute-popup-actions .page-actions-buttons > button.action-default.primary, -.popup-window .magento_buttons .ok_button, -.fade .actions .primary { - background-color: #514943; - border-color: #514943; - color: #ffffff; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); -} -.abs-action-secondary:hover, -.abs-action-secondary:active, -button.secondary:hover, -button.secondary:active, -.ui-dialog .ui-button:hover, -.ui-dialog .ui-button:active, -.ui-dialog .action-primary:hover, -.ui-dialog .action-primary:active, -.attribute-popup-actions .page-actions-buttons > button.action-default.primary:hover, -.attribute-popup-actions .page-actions-buttons > button.action-default.primary:active, -.popup-window .magento_buttons .ok_button:hover, -.popup-window .magento_buttons .ok_button:active, -.fade .actions .primary:hover, -.fade .actions .primary:active { - background-color: #35302c; - box-shadow: 0 0 0 1px #007bdb; - color: #ffffff; - text-decoration: none; -} -.abs-action-secondary:active, -button.secondary:active, -.ui-dialog .ui-button:active, -.ui-dialog .action-primary:active, -.attribute-popup-actions .page-actions-buttons > button.action-default.primary:active, -.popup-window .magento_buttons .ok_button:active, -.fade .actions .primary:active { - background-color: #35302c; -} -.abs-action-tertiary, -button.tertiary, -.ui-dialog .action-close, -.attribute-popup-actions .action-default.reset, -.popup-window .magento_buttons .cancel_button, -.fade .actions .cancel { - background-color: transparent; - border-color: transparent; - text-shadow: none; - color: #007bdb; -} -.abs-action-tertiary:active, -.abs-action-tertiary:hover, -button.tertiary:active, -button.tertiary:hover, -.ui-dialog .action-close:active, -.ui-dialog .action-close:hover, -.attribute-popup-actions .action-default.reset:active, -.attribute-popup-actions .action-default.reset:hover, -.popup-window .magento_buttons .cancel_button:active, -.popup-window .magento_buttons .cancel_button:hover, -.fade .actions .cancel:active, -.fade .actions .cancel:hover { - background-color: transparent; - border-color: transparent; - box-shadow: none; -} -.abs-action-tertiary:active, -.abs-action-tertiary:hover, -button.tertiary:active, -button.tertiary:hover, -.ui-dialog .action-close:active, -.ui-dialog .action-close:hover, -.attribute-popup-actions .action-default.reset:active, -.attribute-popup-actions .action-default.reset:hover, -.popup-window .magento_buttons .cancel_button:active, -.popup-window .magento_buttons .cancel_button:hover, -.fade .actions .cancel:active, -.fade .actions .cancel:hover { - color: #007bdb; - text-decoration: underline; -} -.abs-action-quaternary, -.page-actions > button, -.page-actions .page-actions-buttons > button { - background-color: transparent; - border-color: transparent; - text-shadow: none; - color: #41362f; -} -.abs-action-quaternary:active, -.abs-action-quaternary:hover, -.page-actions > button:active, -.page-actions > button:hover, -.page-actions .page-actions-buttons > button:active, -.page-actions .page-actions-buttons > button:hover { - background-color: transparent; - border-color: transparent; - box-shadow: none; -} -.abs-action-quaternary:active, -.abs-action-quaternary:hover, -.page-actions > button:active, -.page-actions > button:hover, -.page-actions .page-actions-buttons > button:active, -.page-actions .page-actions-buttons > button:hover { - color: #231d1a; -} -.action-default, -button { - background: #e3e3e3; - border-color: #adadad; - color: #514943; -} -.action-default:hover, -button:hover { - background-color: #dbdbdb; - color: #514943; - text-decoration: none; -} -.action-primary { - background-color: #eb5202; - border-color: #eb5202; - color: #ffffff; - text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25); -} -.action-primary:hover, -.action-primary:active { - background-color: #ba4000; - border-color: #b84002; - box-shadow: 0 0 0 1px #007bdb; - color: #ffffff; - text-decoration: none; -} -.action-primary.disabled, -.action-primary[disabled] { - cursor: default; - opacity: 0.7; - pointer-events: none; -} -.action-secondary { - background-color: #514943; - border-color: #514943; - color: #ffffff; - text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); -} -.action-secondary:hover, -.action-secondary:active { - background-color: #35302c; - box-shadow: 0 0 0 1px #007bdb; - color: #ffffff; - text-decoration: none; -} -.action-secondary:active { - background-color: #35302c; -} -.action-tertiary, -.action-quaternary { - background-color: transparent; - border-color: transparent; - text-shadow: none; -} -.action-tertiary:active, -.action-quaternary:active, -.action-tertiary:hover, -.action-quaternary:hover { - background-color: transparent; - border-color: transparent; - box-shadow: none; -} -.action-tertiary { - color: #007bdb; -} -.action-tertiary:active, -.action-tertiary:hover { - color: #007bdb; - text-decoration: underline; -} -.action-quaternary { - color: #41362f; -} -.action-quaternary:active, -.action-quaternary:hover { - color: #231d1a; -} -table.table { - color: #303030; -} -table.table > caption { - margin-bottom: .5rem; -} -table.table tfoot { - background: #f8f8f8; -} -table.table tfoot th, -table.table tfoot td { - text-align: left; -} -table.table th { - background: transparent; - border-bottom: 0.1rem solid #e3e3e3; - border-top: 0.1rem solid #e3e3e3; - font-weight: 700; - padding: 1rem 1.5rem; - text-align: left; -} -table.table td { - border-bottom: 0.1rem solid #e3e3e3; - padding: 1rem 1.5rem; - vertical-align: top; -} -table.table tbody td:first-child input[type='checkbox'] { - margin: 0; -} -table.table tbody tr:last-child td { - border-bottom-color: transparent; -} -.messages { - margin: 0 0 2rem; -} -.message { - background: #fffbbb; - border: none; - border-radius: 0; - color: #333333; - font-size: 1.4rem; - margin: 0 0 1px; - padding: 1.8rem 4rem 1.8rem 5.5rem; - position: relative; - text-shadow: none; -} -.message:before { - background: none; - border: 0; - color: #007bdb; - content: '\e61a'; - font-family: 'Admin 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: #ffcccc; -} -.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; -} -.row { - margin-left: 0; - margin-right: 0; -} -.row:after { - content: ""; - display: table; - clear: both; -} -.col-xs-1, .col-m-1, .col-l-1, .col-xl-1, .col-xs-2, .col-m-2, .col-l-2, .col-xl-2, .col-xs-3, .col-m-3, .col-l-3, .col-xl-3, .col-xs-4, .col-m-4, .col-l-4, .col-xl-4, .col-xs-5, .col-m-5, .col-l-5, .col-xl-5, .col-xs-6, .col-m-6, .col-l-6, .col-xl-6, .col-xs-7, .col-m-7, .col-l-7, .col-xl-7, .col-xs-8, .col-m-8, .col-l-8, .col-xl-8, .col-xs-9, .col-m-9, .col-l-9, .col-xl-9, .col-xs-10, .col-m-10, .col-l-10, .col-xl-10, .col-xs-11, .col-m-11, .col-l-11, .col-xl-11, .col-xs-12, .col-m-12, .col-l-12, .col-xl-12 { - position: relative; - min-height: 1px; - padding-left: 0; - padding-right: 0; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - 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 .col-gutter { - padding-left: 1.5rem; - padding-right: 1.5rem; -} -.abs-icon, -.admin__menu .level-0 > a:before, -.admin__menu .submenu-close:before, -.admin-user-account:before, -.search-global-label:before, -.notifications-action:before, -.notifications-close:before, -.copyright .link-copyright:before, -.store-switcher .dropdown-menu .dropdown-toolbar a:before, -.tooltip .help span:before, -.tooltip .help a:before, -.page-actions > button.back:before, -.page-actions .page-actions-buttons > button.back:before, -.page-actions > button.action-back:before, -.page-actions .page-actions-buttons > button.action-back:before { - -webkit-font-smoothing: antialiased; - font-family: 'Admin Icons'; - line-height: 1; - font-style: normal; - font-weight: normal; - speak: none; -} -.validation-symbol:after, -table.table th.required:after { - content: '*'; - color: #e22626; - font-weight: 400; - margin-left: 3px; -} -.abs-visually-hidden, -.admin__control-fields .admin__field:nth-child(n+2):not(.admin__field-option) > .admin__field-label, -.dashboard-diagram-switcher .label { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.abs-clearfix:before, -.abs-clearfix:after, -.actions-split:before, -.actions-split:after, -.tabs-horiz:before, -.tabs-horiz:after, -.ui-dialog .ui-dialog-buttonset:before, -.ui-dialog .ui-dialog-buttonset:after, -.ui-dialog .main-col .insert-title-inner:before, -.ui-dialog .main-col .insert-title-inner:after, -.ui-dialog .magento_message .insert-title-inner:before, -.ui-dialog .magento_message .insert-title-inner:after, -.ui-dialog .main-col #contents-uploader:before, -.ui-dialog .main-col #contents-uploader:after, -.ui-dialog .magento_message #contents-uploader:before, -.ui-dialog .magento_message #contents-uploader:after, -.popup-window .magento_buttons:before, -.popup-window .magento_buttons:after, -.fade .popup-content:before, -.fade .popup-content:after, -.fade .actions:before, -.fade .actions:after, -.message-system-inner:before, -.message-system-inner:after, -.page-header-actions:before, -.page-header-actions:after, -.page-main-actions:before, -.page-main-actions:after, -.page-actions.fixed:before, -.page-actions.fixed:after, -.dashboard-totals-list:before, -.dashboard-totals-list:after, -.dashboard-store-stats .ui-tabs:before, -.dashboard-store-stats .ui-tabs:after { - content: ""; - display: table; -} -.abs-clearfix:after, -.actions-split:after, -.tabs-horiz:after, -.ui-dialog .ui-dialog-buttonset:after, -.ui-dialog .main-col .insert-title-inner:after, -.ui-dialog .magento_message .insert-title-inner:after, -.ui-dialog .main-col #contents-uploader:after, -.ui-dialog .magento_message #contents-uploader:after, -.popup-window .magento_buttons:after, -.fade .popup-content:after, -.fade .actions:after, -.message-system-inner:after, -.page-header-actions:after, -.page-main-actions:after, -.page-actions.fixed:after, -.dashboard-totals-list:after, -.dashboard-store-stats .ui-tabs:after { - clear: both; -} -.abs-clearer:after, -.admin__fieldset > .admin__field:after, -.col-2-left-layout:after { - content: ""; - display: table; - clear: both; -} -.abs-list-reset-styles, -.dashboard-totals-list { - margin: 0; - padding: 0; - list-style: none none; -} -.tabs-horiz { - margin: 0; - padding: 0; -} -.tabs-horiz .ui-state-default { - background: #e3e3e3; - border: 0.1rem solid #adadad; - float: left; - letter-spacing: .0183em; - list-style: none; - margin-right: .4rem; -} -.tabs-horiz .ui-state-hover { - background: #d6d6d6; -} -.tabs-horiz .ui-state-active { - background: #ffffff; - border-bottom: 0; - font-weight: 600; - letter-spacing: normal; - margin-bottom: -0.1rem; -} -.tabs-horiz .ui-state-active .ui-tabs-anchor { - border-bottom: 0.1rem solid #ffffff; - border-top: 0.4rem solid #eb5202; - padding-top: 1.1rem; -} -.tabs-horiz .ui-tabs-anchor { - color: #41362f; - display: block; - padding: 1.5rem 1.8rem 1.3rem; - text-decoration: none; -} -.ui-tabs-panel { - border-top: 0.1rem solid #adadad; - margin-top: -0.1rem; - padding: 2rem; -} -body { - background-color: #f5f5f5; -} -.page-wrapper { - background-color: #ffffff; - padding-left: 8.8rem; -} -.page-content { - padding-left: 3rem; - padding-right: 3rem; -} -.notices-wrapper { - margin: 0 3rem; -} -.notices-wrapper .messages { - margin-bottom: 0; -} -.admin__control-text.hasDatepicker { - width: 15rem; -} -.admin__control-text + .ui-datepicker-trigger { - background-image: none; - background: none; - border: 0; - margin: 0; - padding: 0; - -moz-box-sizing: content-box; - box-shadow: none; - text-shadow: none; - line-height: inherit; - font-weight: 400; - text-decoration: none; - height: 3.3rem; - overflow: hidden; - vertical-align: top; - margin-left: -4rem; - display: inline-block; -} -.admin__control-text + .ui-datepicker-trigger:focus, -.admin__control-text + .ui-datepicker-trigger:active { - background: none; - border: none; -} -.admin__control-text + .ui-datepicker-trigger:hover { - background: none; - border: none; -} -.admin__control-text + .ui-datepicker-trigger.disabled, -.admin__control-text + .ui-datepicker-trigger[disabled], -fieldset[disabled] .admin__control-text + .ui-datepicker-trigger { - cursor: not-allowed; - pointer-events: none; - opacity: 0.5; -} -.admin__control-text + .ui-datepicker-trigger > span { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.admin__control-text + .ui-datepicker-trigger:after { - font-family: 'icons-blank-theme'; - content: '\e612'; - font-size: 3.8rem; - line-height: 33px; - color: #514943; - overflow: hidden; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - display: inline-block; - vertical-align: middle; - text-align: center; -} -.admin__control-text + .ui-datepicker-trigger img { - display: none; -} -.ui-datepicker { - box-sizing: border-box; - display: none; - padding: 23px 20px; - width: auto; - z-index: 999999 !important; -} -.ui-datepicker:before { - background: #ffffff; - border: 1px solid #007dbd; - bottom: 3px; - box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3); - content: ''; - display: block; - left: 0; - position: absolute; - right: 0; - top: 3px; - z-index: 0; -} -.ui-datepicker-header { - padding: 0 0 10px; - position: relative; - z-index: 1; -} -.ui-datepicker-prev, -.ui-datepicker-next { - cursor: pointer; - position: absolute; - line-height: 3rem; - top: 0; -} -.ui-datepicker-prev span, -.ui-datepicker-next span { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.ui-datepicker-prev:before, -.ui-datepicker-next:before { - color: #514943; - font-size: 34px; - display: inline-block; -} -.ui-datepicker-prev { - left: 0; -} -.ui-datepicker-prev:before { - content: '\2039'; -} -.ui-datepicker-next { - right: 0; -} -.ui-datepicker-next:before { - content: '\203A'; -} -.ui-datepicker .ui-datepicker-title { - margin: 0 2.3em; - line-height: 1.8em; - text-align: center; -} -.ui-datepicker .ui-datepicker-title select { - font-size: 1em; - margin: 1px 0; -} -.ui-datepicker select.ui-datepicker-month-year { - width: 100%; -} -.ui-datepicker table { - width: 100%; -} -.ui-datepicker table.ui-datepicker-calendar { - background: #FFFFFF; - border-collapse: collapse; - border: 0; - position: relative; - z-index: 1; -} -.ui-datepicker table.ui-datepicker-calendar thead { - background: transparent; -} -.ui-datepicker table.ui-datepicker-calendar tr { - background: transparent; -} -.ui-datepicker table.ui-datepicker-calendar tr th { - background: transparent; - border: 0; - padding: 0; -} -.ui-datepicker table.ui-datepicker-calendar tr th span { - font-weight: 700; - font-size: 12px; - line-height: 28px; -} -.ui-datepicker table.ui-datepicker-calendar tr td { - background: transparent; - border: 1px solid #adadad; - padding: 0; -} -.ui-datepicker table.ui-datepicker-calendar span, -.ui-datepicker table.ui-datepicker-calendar a { - box-sizing: border-box; - color: #514943; - display: block; - font-size: 14px; - font-weight: 600; - line-height: 38px; - text-align: center; - text-decoration: none; - width: 38px; -} -.ui-datepicker table.ui-datepicker-calendar .ui-state-disabled span { - background: #f5f5f5; - color: #999999; -} -.ui-datepicker table.ui-datepicker-calendar .ui-state-active { - background: #514943; - color: #fff; -} -.ui-datepicker table.ui-datepicker-calendar .ui-datepicker-today a { - border: 3px solid #adadad; - line-height: 32px; -} -.ui-datepicker .ui-datepicker-buttonpane { - overflow: hidden; - padding-top: 15px; - position: relative; - white-space: nowrap; - z-index: 1; -} -.ui-datepicker .ui-datepicker-buttonpane button { - background: #fff; - border-radius: 1px; - border: 1px solid #adadad; - box-sizing: border-box; - color: #008bdb; - float: left; - font-size: 14px; - line-height: 38px; - padding: 0; - text-align: center; - width: 49%; -} -.ui-datepicker .ui-datepicker-buttonpane .ui-datepicker-close { - float: right; -} -.ui-datepicker .ui-datepicker-title .ui-datepicker-month { - width: 47%; - margin-right: 6%; -} -.ui-datepicker .ui-datepicker-title .ui-datepicker-year { - width: 47%; -} -.ui-datepicker .ui-datepicker-calendar .ui-datepicker-week-col { - text-align: center; - border: #cfcfcf 1px solid; -} -.ui-timepicker-div .ui-widget-header { - margin-bottom: 8px; -} -.ui-timepicker-div dl { - text-align: left; -} -.ui-timepicker-div dl dd { - margin: 0 0 10px 65px; -} -.ui-timepicker-div td { - font-size: 90%; -} -.ui-tpicker-grid-label { - background: none; - border: none; - margin: 0; - padding: 0; -} -.ui-slider { - position: relative; - text-align: left; -} -.ui-slider-horizontal .ui-slider-handle { - margin-left: -5px; -} -.ui-slider .ui-slider-handle { - position: absolute; - z-index: 2; - cursor: default; -} -.ui-slider-horizontal { - height: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; - border: none; - background: #adadad; -} -.ui-slider-handle { - height: 10px; - width: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; - background: #514943; - display: block; - position: absolute; -} -.ui-timepicker-div { - padding: 10px 0 5px 0; -} -.ui-datepicker-rtl { - direction: rtl; -} -.ui-datepicker-rtl .ui-datepicker-prev { - right: 2px; - left: auto; -} -.ui-datepicker-rtl .ui-datepicker-next { - left: 2px; - right: auto; -} -.ui-datepicker-rtl .ui-datepicker-prev:hover { - right: 1px; - left: auto; -} -.ui-datepicker-rtl .ui-datepicker-next:hover { - left: 1px; - right: auto; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane { - clear: right; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane button { - float: left; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { - float: right; -} -.ui-datepicker-rtl .ui-datepicker-group { - float: right; -} -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { - border-right-width: 0; - border-left-width: 1px; -} -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { - border-right-width: 0; - border-left-width: 1px; -} -.ui-timepicker-div .ui-widget-header { - margin-bottom: 8px; -} -.ui-timepicker-div dl { - text-align: left; -} -.ui-timepicker-div dl dt { - height: 25px; - margin-bottom: -22px; -} -.ui-timepicker-div dl .ui_tpicker_time_label { - margin-bottom: -25px; -} -.ui-timepicker-div dl dd { - margin: 0 10px 10px 65px; -} -.ui-timepicker-div td { - font-size: 90%; -} -.ui-tpicker-grid-label { - background: none; - border: none; - margin: 0; - padding: 0; -} -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - position: absolute; - /*must have*/ - z-index: -1; - /*must have*/ - filter: mask(); - /*must have*/ - top: -4px; - /*must have*/ - left: -4px; - /*must have*/ - width: 200px; - /*must have*/ - height: 200px; - /*must have*/ -} -.ui-dialog { - background: #ffffff; - min-width: 40%; - opacity: 0; - transform: scale(0.7); - transition: all 0.3s; - visibility: hidden; - width: 75%; -} -.ui-dialog.ui-dialog-active { - transform: scale(1); - opacity: 1; - visibility: visible; -} -.ui-dialog.ui-draggable .ui-dialog-titlebar { - cursor: move; -} -.ui-dialog .ui-dialog-titlebar, -.popup-window .magento_title, -.fade .popup-title { - color: #333333; - font-size: 2.4rem; - line-height: 2.4rem; - padding: 3rem 6rem 3rem 3rem; -} -.ui-dialog .ui-dialog-titlebar-close, -.popup-window .magento_close, -.fade .popup .close { - cursor: pointer; - display: inline-block; - text-decoration: none; - position: absolute; - right: 3rem; - top: 2.7rem; -} -.ui-dialog .ui-dialog-titlebar-close:before, -.popup-window .magento_close:before, -.fade .popup .close:before { - font-family: 'Admin Icons'; - content: '\e62f'; - font-size: 2rem; - line-height: inherit; - color: #736963; - overflow: hidden; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - display: inline-block; - vertical-align: middle; - text-align: center; -} -.ui-dialog .ui-dialog-titlebar-close:hover:before, -.popup-window .magento_close:hover:before, -.fade .popup .close:hover:before { - color: #adadad; -} -.ui-dialog .ui-dialog-titlebar-close .ui-icon, -.popup-window .magento_close .ui-icon, -.fade .popup .close .ui-icon { - display: none; -} -.ui-dialog .ui-dialog-titlebar-close.ui-state-hover, -.popup-window .magento_close.ui-state-hover, -.fade .popup .close.ui-state-hover { - border: none; -} -.ui-dialog .ui-dialog-content { - overflow: auto; - padding: 0 3rem 3rem; -} -.ui-dialog .ui-dialog-content .fieldset { - padding-left: 0; - padding-right: 0; -} -.ui-dialog .ui-dialog-buttonpane { - padding: 0 3rem 3rem; -} -.ui-dialog .content + .ui-dialog-buttonset { - padding-top: 3rem; - text-align: right; -} -.ui-dialog .action-close, -.popup-window .magento_buttons .cancel_button, -.fade .actions .cancel { - font-size: 1.6rem; - margin: 0 0 0 3rem; - padding: 0.7em 0; -} -.ui-dialog .ui-button, -.ui-dialog .action-primary, -.popup-window .magento_buttons .ok_button, -.fade .actions .primary { - float: right; - margin: 0 0 0 3rem; -} -.ui-dialog .fieldset:last-child { - padding-bottom: 0; -} -.ui-dialog .main-col, -.ui-dialog .side-col { - float: left; - padding-bottom: 0; -} -.ui-dialog .main-col:after, -.ui-dialog .side-col:after { - display: none; -} -.ui-dialog .main-col { - padding-right: 0; -} -.ui-dialog .grid, -.ui-dialog .pager { - padding-bottom: 0; -} -.ui-dialog .grid-actions { - padding-top: 0; -} -.ui-dialog .ui-resizable { - position: relative; -} -.ui-dialog .ui-resizable-handle { - position: absolute; - font-size: 0.1px; - display: block; -} -.ui-dialog .ui-resizable-disabled .ui-resizable-handle, -.ui-dialog .ui-resizable-autohide .ui-resizable-handle { - display: none; -} -.ui-dialog .ui-resizable-n { - cursor: n-resize; - height: 7px; - width: 100%; - top: -5px; - left: 0; -} -.ui-dialog .ui-resizable-s { - cursor: s-resize; - height: 7px; - width: 100%; - bottom: 0; - left: 0; -} -.ui-dialog .ui-resizable-e { - cursor: e-resize; - width: 7px; - right: 0; - top: 0; - height: 100%; -} -.ui-dialog .ui-resizable-w { - cursor: w-resize; - width: 7px; - left: -7px; - top: 0; - height: 100%; -} -.ui-dialog .ui-resizable-se { - cursor: se-resize; - width: 12px; - height: 12px; - right: 1px; - bottom: 1px; -} -.ui-dialog .ui-resizable-sw { - cursor: sw-resize; - width: 9px; - height: 9px; - left: -5px; - bottom: 0; -} -.ui-dialog .ui-resizable-nw { - cursor: nw-resize; - width: 9px; - height: 9px; - left: -5px; - top: -5px; -} -.ui-dialog .ui-resizable-ne { - cursor: ne-resize; - width: 9px; - height: 9px; - right: 0; - top: -5px; -} -.ui-dialog .main-col .insert-title-inner, -.ui-dialog .magento_message .insert-title-inner { - border-bottom: 1px solid #adadad; - margin: 0 0 2rem; - padding-bottom: 0.5rem; -} -.ui-dialog .main-col .insert-actions, -.ui-dialog .magento_message .insert-actions { - float: right; -} -.ui-dialog .main-col .title, -.ui-dialog .magento_message .title { - font-size: 1.6rem; - padding-top: 0.5rem; -} -.ui-dialog .main-col .main-col-inner .uploader, -.ui-dialog .magento_message .main-col-inner .uploader { - border: 1px solid #adadad; - margin: 0 0 1rem; - padding: 0.5rem; -} -.ui-dialog .main-col .breadcrumbs, -.ui-dialog .magento_message .breadcrumbs { - padding-left: 0; -} -.ui-dialog .main-col .breadcrumbs li:after, -.ui-dialog .magento_message .breadcrumbs li:after { - content: ''; - margin: 0 0.5rem 0 0; -} -.ui-dialog .main-col #contents-uploader, -.ui-dialog .magento_message #contents-uploader { - margin: 0 0 2rem; -} -.ui-dialog .main-col .fileinput-button, -.ui-dialog .magento_message .fileinput-button { - cursor: pointer; - display: inline-block; - float: none; - vertical-align: middle; -} -.ui-dialog .main-col .fileinput-button span, -.ui-dialog .magento_message .fileinput-button span { - display: none; -} -.ui-dialog .main-col .fileinput-button input, -.ui-dialog .magento_message .fileinput-button input { - border: none; - -moz-transform: none; - opacity: 1; - position: static; -} -.ui-dialog .main-col .file-row, -.ui-dialog .magento_message .file-row { - border: 1px solid #adadad; - margin: 0.5rem 0; - padding: 2px; -} -.ui-dialog .main-col .filecnt, -.ui-dialog .magento_message .filecnt { - border: 1px solid #adadad; - display: inline-block; - margin: 0 0.5rem 15px 0; - padding: 3px; - width: 100px; - overflow: hidden; -} -.ui-dialog .main-col .filecnt.selected, -.ui-dialog .magento_message .filecnt.selected { - border-color: #008bdb; -} -.ui-dialog .main-col .filecnt p, -.ui-dialog .magento_message .filecnt p { - text-align: center; -} -.ui-dialog .main-col .x-tree, -.ui-dialog .magento_message .x-tree { - margin-bottom: 2rem; -} -.ui-widget-overlay, -.overlay_magento, -.fade { - background: rgba(0, 0, 0, 0.35); - bottom: 0; - left: 0; - position: fixed; - right: 0; - top: 0; -} -.ui-popup-message .ui-dialog-titlebar { - background: #fffbbb; - font-size: 1.6rem; - font-weight: 700; - padding: 2rem 2rem 0; -} -.ui-popup-message .ui-dialog-titlebar-close { - right: 1.5rem; - top: 1rem; -} -.ui-popup-message .ui-dialog-titlebar-close:before { - font-size: 1.4rem; -} -.ui-popup-message .ui-dialog-content { - background: #fffbbb; - padding: 0 2rem 2rem; -} -.ui-popup-message .ui-dialog-content .message:last-child { - margin-bottom: 0; -} -.ui-popup-message .ui-dialog-buttonpane { - background: #fffbbb; - padding: 0 2rem 2rem; -} -.insert-variable { - list-style: none; - margin: 0; - padding: 0; -} -.insert-variable li { - margin-top: 0.5rem; - padding-left: 1rem; -} -.insert-variable li b { - margin-left: -1rem; - display: inline-block; -} -.attribute-popup-actions { - background: #ffffff; - border-top: 1px solid #adadad; - bottom: 0; - left: 0; - padding: 3rem; - position: fixed; - right: 0; - top: auto !important; -} -.attribute-popup-actions.fixed { - background: #ffffff !important; - border-bottom: 0 !important; - left: 0 !important; - padding: 3rem !important; -} -.attribute-popup-actions.fixed .page-actions-buttons { - padding-right: 0; -} -.attribute-popup-actions .action-default.reset { - font-size: 1.6rem; - padding: 0.7em 0; -} -.attribute-popup-actions .page-actions-buttons > button.action-default.primary { - float: right; -} -.attribute-popup-actions .page-actions-inner:before { - display: none; -} -.popup-window { - background: #ffffff; -} -.popup-window.dialog { - z-index: 900 !important; -} -.popup-window .table_window > tbody > tr > td { - background: #ffffff; - border: 0; - padding: 0; -} -.popup-window .magento_message { - padding: 0 3rem 3rem; - position: relative; -} -.popup-window .magento_content { - height: auto !important; -} -.popup-window .magento_buttons { - padding: 0 3rem 3rem; - text-align: right; -} -.popup-window .magento_buttons .ok_button { - float: right; - margin: 0 0 0 3rem; -} -.overlay_magento { - z-index: 800 !important; -} -.fade { - z-index: 1000; -} -.fade .popup { - background: #ffffff; - border: 0; - border-radius: 0; - display: inline-block; - left: 12.5%; - position: absolute; - top: 5rem; - text-align: left; - width: 75%; -} -.fade .popup-inner { - padding: 0; -} -.fade .popup-title { - background: #fffbbb; - font-size: 1.6rem; - font-weight: 700; - padding: 2rem 2rem 0; -} -.fade .popup-header .popup-title { - margin: 0; -} -.fade .popup-content { - background: #fffbbb; - padding: 0 2rem 2rem; -} -.fade .popup-content p { - margin-top: 0; -} -.fade .popup-content .messages:last-child { - margin-bottom: 0; -} -.fade .fieldset { - background: #fffbbb; - border: 0; - margin: 1.5rem 0 1.5rem 1.5rem; - padding: 0; -} -.fade .maintenance-checkbox-container { - padding-left: 20%; -} -.fade .messages { - margin: 0 !important; -} -.fade .actions { - margin: 0; - text-align: right; -} -.fade .actions .primary { - font-size: 1.4rem; - float: right; - margin: 0 0 0 3rem; -} -.fade .actions .primary:hover { - box-shadow: none; -} -.fade .actions .cancel { - font-size: 1.4rem; -} -.fade .actions .cancel:hover { - box-shadow: none; -} -.login-header { - margin: 0 0 3rem; -} -.page-layout-admin-login { - align-items: center; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - background-color: #373330; - padding: 2rem 0 20rem; -} -.page-layout-admin-login .page-wrapper { - -webkit-flex-shrink: 0; - flex-shrink: 0; - -webkit-flex-grow: 0; - flex-grow: 0; - background-color: #ffffff; - border: 1px solid #e3e3e3; - box-shadow: 0 5px 30px 0 #000000; - margin: auto; - max-width: 45rem; - min-height: 30rem; - padding: 40px 80px 50px; - position: relative; - width: 100%; - z-index: 1; -} -.ie9 .page-layout-admin-login .page-wrapper { - margin-top: 10%; -} -.page-layout-admin-login :-ms-input-placeholder { - color: transparent; -} -.page-layout-admin-login ::-webkit-input-placeholder { - color: transparent; -} -.page-layout-admin-login ::-moz-placeholder { - color: transparent; -} -.page-layout-admin-login .admin__legend { - color: #eb5202; - font-size: 2.6rem; - font-weight: 300; - line-height: 1.2; - margin: -1rem 0 0.5rem; -} -.page-layout-admin-login .admin__field-info { - margin-bottom: 3rem; -} -.page-layout-admin-login .messages { - margin-top: -1rem; -} -.page-layout-admin-login .messages + form .admin__legend { - display: none; -} -.page-layout-admin-login .actions { - padding: 0 0 3rem; -} -.admin__control-dummy { - display: none; -} -.login-footer { - left: 0; - position: absolute; - top: 100%; - width: 100%; -} -.login-footer .copyright { - color: #989287; - font-size: 1rem; - font-weight: 400; - margin: 5rem 0 2rem; - text-align: center; -} -.login-footer .copyright .link-copyright:before { - display: none; -} -.adminhtml-auth-login .form-actions { - display: table; - margin-top: -2rem; -} -.adminhtml-auth-login .form-actions .links { - display: table-header-group; -} -.adminhtml-auth-login .form-actions .actions { - padding: 3rem 0 0; -} -.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: 0.27s; - -moz-animation-delay: 0.27s; - -ms-animation-delay: 0.27s; - animation-delay: 0.27s; - -webkit-transform: rotate(-315deg); - -moz-transform: rotate(-315deg); - -ms-transform: rotate(-315deg); - transform: rotate(-315deg); -} -.spinner > span:nth-child( 2) { - -webkit-animation-delay: 0.36s; - -moz-animation-delay: 0.36s; - -ms-animation-delay: 0.36s; - animation-delay: 0.36s; - -webkit-transform: rotate(-270deg); - -moz-transform: rotate(-270deg); - -ms-transform: rotate(-270deg); - transform: rotate(-270deg); -} -.spinner > span:nth-child( 3) { - -webkit-animation-delay: 0.45s; - -moz-animation-delay: 0.45s; - -ms-animation-delay: 0.45s; - animation-delay: 0.45s; - -webkit-transform: rotate(-225deg); - -moz-transform: rotate(-225deg); - -ms-transform: rotate(-225deg); - transform: rotate(-225deg); -} -.spinner > span:nth-child( 4) { - -webkit-animation-delay: 0.54s; - -moz-animation-delay: 0.54s; - -ms-animation-delay: 0.54s; - animation-delay: 0.54s; - -webkit-transform: rotate(-180deg); - -moz-transform: rotate(-180deg); - -ms-transform: rotate(-180deg); - transform: rotate(-180deg); -} -.spinner > span:nth-child( 5) { - -webkit-animation-delay: 0.63s; - -moz-animation-delay: 0.63s; - -ms-animation-delay: 0.63s; - animation-delay: 0.63s; - -webkit-transform: rotate(-135deg); - -moz-transform: rotate(-135deg); - -ms-transform: rotate(-135deg); - transform: rotate(-135deg); -} -.spinner > span:nth-child( 6) { - -webkit-animation-delay: 0.72s; - -moz-animation-delay: 0.72s; - -ms-animation-delay: 0.72s; - animation-delay: 0.72s; - -webkit-transform: rotate(-90deg); - -moz-transform: rotate(-90deg); - -ms-transform: rotate(-90deg); - transform: rotate(-90deg); -} -.spinner > span:nth-child( 7) { - -webkit-animation-delay: 0.81s; - -moz-animation-delay: 0.81s; - -ms-animation-delay: 0.81s; - animation-delay: 0.81s; - -webkit-transform: rotate(-45deg); - -moz-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); -} -.spinner > span:nth-child( 8) { - -webkit-animation-delay: 0.9; - -moz-animation-delay: 0.9; - -ms-animation-delay: 0.9; - animation-delay: 0.9; - -webkit-transform: rotate(0deg); - -moz-transform: rotate(0deg); - -ms-transform: rotate(0deg); - transform: rotate(0deg); -} -@-moz-keyframes fade { - 0% { - background-color: #514943; - } - 100% { - background-color: #ffffff; - } -} -@-webkit-keyframes fade { - 0% { - background-color: #514943; - } - 100% { - background-color: #ffffff; - } -} -@-ms-keyframes fade { - 0% { - background-color: #514943; - } - 100% { - background-color: #ffffff; - } -} -@keyframes fade { - 0% { - background-color: #514943; - } - 100% { - background-color: #ffffff; - } -} -.spinner > span { - -webkit-transform: scale(0.4); - -moz-transform: scale(0.4); - -ms-transform: scale(0.4); - transform: scale(0.4); - -webkit-animation-name: fade; - -moz-animation-name: fade; - -ms-animation-name: fade; - animation-name: fade; - -webkit-animation-duration: 0.72s; - -moz-animation-duration: 0.72s; - -ms-animation-duration: 0.72s; - animation-duration: 0.72s; - -webkit-animation-iteration-count: infinite; - -moz-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-direction: linear; - -moz-animation-direction: linear; - -ms-animation-direction: linear; - animation-direction: linear; - background-color: #ffffff; - border-radius: 6px; - clip: rect(0 0.28571429em 0.1em 0); - height: .1em; - margin-top: 0.5em; - position: absolute; - width: 1em; -} -.ie9 .spinner { - background: url('../images/ajax-loader.gif') no-repeat center; -} -.ie9 .spinner > span { - display: none; -} -.message-system-inner { - background: #fffbbb; -} -.message-system-inner .message-system-list { - float: left; - width: 75%; -} -.message-system-list { - list-style: none; - margin: 0; - padding: 0; -} -.message-system-short { - overflow: hidden; - text-align: right; -} -.message-system-short .message-system-short-label { - display: inline-block; - padding: 1.8rem 0.3rem 1.8rem 1rem; -} -.message-system-short .message { - display: inline-block; - padding: 1.8rem 2rem 1.8rem 3.3rem; -} -.message-system-short .message:before { - left: .3rem; -} -.menu-wrapper { - height: 100%; - left: 0; - position: fixed; - top: 0; - width: 8.8rem; - z-index: 700; -} -.menu-wrapper:after { - background-color: #373330; - bottom: 0; - content: ''; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 699; -} -.menu-wrapper .logo { - display: block; - height: 6.5rem; - margin-bottom: 1rem; - padding: 1.2rem 0; - position: relative; - text-align: center; - z-index: 700; -} -.menu-wrapper .logo:hover .logo-img { - -webkit-filter: brightness(1.1); - filter: brightness(1.1); -} -.menu-wrapper .logo:active .logo-img { - transform: scale(0.95); -} -.menu-wrapper .logo .logo-img { - height: 4.1rem; - transition: -webkit-filter 0.2s linear, filter 0.2s linear, transform 0.1s linear; - width: 3.5rem; -} -.admin__menu { - position: relative; -} -.admin__menu li { - display: block; -} -.admin__menu .level-0:first-child > a { - position: relative; -} -.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 .level-0:first-child._active > a:after { - display: none; -} -.admin__menu .level-0._active > a, -.admin__menu .level-0._hover > a, -.admin__menu .level-0:hover > a { - background-color: #524d49; - color: #f7f3eb; -} -.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 0.1s linear; - word-break: break-all; - z-index: 700; -} -.admin__menu .level-0 > a:focus { - box-shadow: none; -} -.admin__menu .level-0 > a:before { - content: '\e63a'; - display: block; - font-family: 'Admin Icons'; - font-size: 2.2rem; - height: 2.2rem; - margin-bottom: .3rem; -} -.admin__menu .level-0 > .submenu { - background-color: #524d49; - box-shadow: 0 0 3px #000000; - left: -90rem; - min-height: ~" calc(7.5rem + 2rem + 100%)"; - padding: 2rem 0 0; - position: absolute; - top: -7.5rem; - transition: all .5s ease; - visibility: hidden; - z-index: 698; -} -.admin__menu .level-0 > .submenu._show { - left: 100%; - visibility: visible; -} -.admin__menu .level-0._recent._hover .submenu { - left: 100%; - visibility: visible; -} -.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 .submenu li { - min-width: 23.8rem; -} -.admin__menu .submenu a { - color: #fcfcfc; -} -.keyfocus .admin__menu .submenu a { - text-decoration: none; -} -.admin__menu .submenu a:active, -.admin__menu .submenu a:focus { - box-shadow: none; -} -.keyfocus .admin__menu .submenu a:active, -.keyfocus .admin__menu .submenu a:focus { - background-color: #403934; -} -.admin__menu .submenu .parent { - margin-bottom: 4.5rem; -} -.admin__menu .submenu .parent > a, -.admin__menu .submenu .parent .submenu-group-title { - 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: #ffffff; - 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: #ffffff; - display: block; - font-size: 1.2rem; - margin: -3.8rem 5.8rem 3.8rem 3rem; -} -.admin__menu .submenu-close { - padding: 2.4rem 2.8rem; - position: absolute; - right: 0; - top: 0; -} -.admin__menu .submenu-close:active { - transform: scale(0.9); -} -.admin__menu .submenu-close:before { - color: #a79d95; - content: '\e62f'; - font-size: 1.7rem; - transition: color 0.1s linear; -} -.admin__menu .submenu-close:hover { - cursor: pointer; - text-decoration: none; -} -.admin__menu .submenu-close:hover:before { - color: #ffffff; -} -.admin__menu .item-dashboard > a:before { - content: '\e604'; - font-size: 1.8rem; - padding-top: 0.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: -0.4rem; -} -.admin__menu .item-marketing > a:before { - content: '\e609'; - font-size: 2rem; - padding-top: 0.2rem; -} -.admin__menu .item-content > a:before { - content: '\e602'; - font-size: 2.4rem; - position: relative; - top: -0.2rem; -} -.admin__menu .item-report > a:before { - content: '\e60a'; -} -.admin__menu .item-stores > a:before { - content: '\e60d'; - font-size: 1.9rem; - padding-top: 0.3rem; -} -.admin__menu .item-system > a:before { - content: '\e610'; -} -.admin__menu-overlay { - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 697; -} -.admin-user { - float: right; - line-height: 1.4; - margin-left: .3rem; - position: relative; - z-index: 390; -} -.admin-user.active .admin-user-account { - border-color: #007bdb; - box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); -} -.admin-user.active .admin-user-account-text-wrapper:after { - background-color: #ffffff; - content: ''; - height: 6px; - left: -6px; - position: absolute; - right: 0; - top: 100%; -} -.admin-user.active .admin-user-menu { - opacity: 1; - visibility: visible; -} -.admin-user-account { - padding-right: 2.8rem; - font-size: 1.3rem; - letter-spacing: .05em; - padding-bottom: 0.4rem; - padding-left: 4rem; - padding-top: 0.7rem; - z-index: 2; -} -.admin-user-account._active:after, -.admin-user-account.active:after { - transform: rotate(180deg); -} -.admin-user-account:after { - border-color: #41362f transparent transparent transparent; - border-style: solid; - border-width: 0.5rem 0.4rem 0 0.4rem; - content: ''; - height: 0; - margin-top: -0.2rem; - position: absolute; - right: 1.3rem; - top: 50%; - transition: all .2s linear; - width: 0; -} -._active .admin-user-account:after, -.active .admin-user-account:after { - transform: rotate(180deg); -} -.admin-user-account:hover:after { - border-color: #060504 transparent transparent transparent; -} -.admin-user-account:before { - content: '\e600'; - font-size: 2rem; - left: 1.1rem; - margin-top: -1.1rem; - position: absolute; - top: 50%; -} -.admin-user-account-text { - display: inline-block; - max-width: 11.2rem; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.admin-user-menu { - line-height: 1.4; - min-width: 20rem; - padding: 0.5em 1rem; - z-index: 1; -} -.admin-user-menu:before { - z-index: 1; -} -.admin-user-menu > li > a { - color: #41362f; - display: block; - padding: 0.6rem 1.8rem 0.6rem 0.5em; - text-decoration: none; - transition: background-color 0.1s linear; - white-space: nowrap; -} -.admin-user-menu > li > a:hover { - background-color: #e0f6fe; - color: #41362f; -} -.admin-user-menu > li > a:active { - background-color: #c7effd; - bottom: -1px; - position: relative; -} -.admin-user-menu .admin-user-name { - display: inline-block; - max-width: 20rem; - overflow: hidden; - text-overflow: ellipsis; - vertical-align: text-top; - white-space: nowrap; -} -.search-global { - float: right; - margin-right: -0.3rem; - position: relative; - z-index: 380; -} -.search-global-field { - min-width: 5rem; -} -.search-global-field._active .search-global-input { - background-color: #ffffff; - border-color: #007bdb; - box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); - padding-right: 4rem; - width: 25rem; -} -.search-global-field._active .search-global-action { - display: block; - height: 3.4rem; - position: absolute; - right: 0; - text-indent: -100%; - top: 0; - width: 5rem; - z-index: 3; -} -.search-global-field .autocomplete-results { - height: 3.4rem; - 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, 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: #ffffff; - content: ''; - height: 5px; - left: 0; - position: absolute; - right: 0; - top: -5px; -} -.search-global-field .search-global-menu > li { - background-color: #ffffff; - border-top: 1px solid #dddddd; - display: block; - font-size: 1.2rem; - padding: 0.8rem 1.4rem 0.6rem; -} -.search-global-field .search-global-menu .title { - display: block; - font-size: 1.4rem; -} -.search-global-field .search-global-menu .type { - color: #231d1a; - display: block; -} -.search-global-label { - cursor: pointer; - height: 3.4rem; - padding: 0.8rem 1.4rem 0.6rem; - position: absolute; - right: 0; - top: 0; - z-index: 2; -} -.search-global-label:active { - transform: scale(0.9); -} -.search-global-label:hover:before { - color: #060504; -} -.search-global-label:before { - content: '\e60c'; - font-size: 2rem; -} -.search-global-input { - background-color: transparent; - border: 1px solid transparent; - font-size: 1.4rem; - height: 3.4rem; - padding: 0.8rem 1.4rem 0.6rem; - 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, 0.5); -} -.notifications-wrapper.active .notifications-action:after { - background-color: #ffffff; - content: ''; - height: 6px; - left: -6px; - position: absolute; - right: 0; - top: 100%; -} -.notifications-wrapper.active .notifications-list { - opacity: 1; - visibility: visible; -} -.notifications-action { - padding: 0.8rem 2rem 0.7rem; - z-index: 2; -} -.notifications-action:before { - content: '\e607'; - font-size: 1.9rem; -} -.notifications-action:active:before { - position: relative; - top: 1px; -} -.notifications-action .notifications-counter { - background-color: #e22626; - border-radius: 1em; - color: #ffffff; - 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-list { - padding-top: 1rem; - width: 32rem; - z-index: 1; -} -.notifications-list:before { - z-index: 2; -} -.notifications-entry { - line-height: 1.4; - padding: 0.6rem 2rem 0.8rem; - position: relative; - transition: background-color 0.2s 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 #dddddd; - 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: #333333; - font-size: 1.1rem; - margin-bottom: .8rem; -} -.notifications-entry-description-end { - display: none; -} -.notifications-entry-description-end._show { - display: inline; -} -.notifications-entry-time { - color: #777777; - font-size: 1.1rem; -} -.notifications-close { - line-height: 1; - padding: 1rem; - position: absolute; - right: 0; - top: .6rem; -} -.notifications-close:before { - color: #cccccc; - content: '\e620'; - transition: color 0.1s linear; -} -.notifications-close:hover:before { - color: #b3b3b3; -} -.notifications-close:active { - transform: scale(0.95); -} -.abs-page-header-action, -.admin-user-account, -.notifications-action { - background-color: #ffffff; - border: 1px solid transparent; - border-bottom: none; - color: #41362f; - display: inline-block; - height: 3.4rem; - position: relative; - transition: border-color 0.15s ease; -} -.abs-page-header-action:hover, -.admin-user-account:hover, -.notifications-action:hover { - color: #060504; - text-decoration: none; -} -.abs-page-header-action-menu, -.admin-user-menu, -.notifications-list { - background-color: #ffffff; - border: 1px solid #007bdb; - box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); - margin-top: -1px; - opacity: 0; - position: absolute; - right: 0; - top: 100%; - transition: all 0.15s ease; - visibility: hidden; -} -.abs-page-header-action-menu:before, -.admin-user-menu:before, -.notifications-list:before { - content: ''; - position: absolute; -} -.abs-page-header-action-menu > li, -.admin-user-menu > li, -.notifications-list > li { - display: block; -} -.page-header-actions { - padding-top: 1.1rem; -} -.page-header-hgroup { - padding-right: 1.5rem; -} -.page-title-wrapper { - margin-top: 1.7rem; -} -.page-title { - color: #41362f; - font-size: 2.8rem; - margin-bottom: 0; -} -.page-header { - margin-bottom: 1.2rem; - padding: 1.5rem 3rem; -} -.page-footer { - background-color: #f5f5f5; - border-top: 0.1rem solid #dddddd; - color: #777777; - margin-top: auto; - padding: 2.6rem 2rem 6rem 3rem; -} -.page-footer a { - color: #ef672f; - text-decoration: underline; -} -.page-footer a:hover { - color: #ef672f; -} -.magento-version { - margin-bottom: .5rem; -} -.magento-version strong { - color: #666666; -} -.copyright { - margin-bottom: -0.2rem; - position: relative; -} -.copyright .link-copyright { - display: inline-block; - margin-right: .5rem; - text-decoration: none; - vertical-align: top; -} -.copyright .link-copyright:hover:before { - color: #f38a5e; -} -.copyright .link-copyright:before { - transition: color 0.1s linear; - color: #eb5202; - content: '\e606'; - display: block; - font-size: 2.5rem; - position: relative; - top: -0.2rem; -} -.copyright .link-copyright:active:before { - transform: scale(0.9); -} -.footer-legal { - padding-top: 1rem; - text-align: right; -} -.locale-switcher .label { - display: block; - margin-bottom: 1rem; -} -.store-switcher { - color: #41362f; - float: left; - font-size: 1.3rem; - margin-top: 1.1rem; -} -.store-switcher .admin__action-dropdown { - margin-left: .5em; -} -.store-switcher .dropdown { - display: inline-block; - position: relative; -} -.store-switcher .dropdown:before, -.store-switcher .dropdown:after { - 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 { - font-family: 'icons-blank-theme'; - content: '\e607'; - font-size: 22px; - line-height: 2; - color: #41362f; - overflow: hidden; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - display: inline-block; - vertical-align: top; - text-align: center; - margin: 0; -} -.store-switcher .dropdown .action.toggle:hover:after { - color: #41362f; -} -.store-switcher .dropdown .action.toggle:active:after { - color: #41362f; -} -.store-switcher .dropdown .action.toggle.active { - display: inline-block; - text-decoration: none; -} -.store-switcher .dropdown .action.toggle.active:after { - font-family: 'icons-blank-theme'; - content: '\e618'; - font-size: 22px; - line-height: 2; - color: #41362f; - overflow: hidden; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - display: inline-block; - vertical-align: top; - text-align: center; - margin: 0; -} -.store-switcher .dropdown .action.toggle.active:hover:after { - color: #41362f; -} -.store-switcher .dropdown .action.toggle.active:active:after { - color: #41362f; -} -.store-switcher .dropdown .dropdown-menu { - margin: 0; - padding: 0; - list-style: none none; - box-sizing: border-box; - background: #ffffff; - border: 1px #ada89e solid; - position: absolute; - z-index: 100; - top: 100%; - min-width: 19.5rem; - margin-top: 4px; - display: none; - box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); -} -.store-switcher .dropdown .dropdown-menu li { - margin: 0; - padding: 0; -} -.store-switcher .dropdown .dropdown-menu li:hover { - background: transparent; - 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: #41362f; - 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: #41362f; -} -.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: '\e610'; - 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'; - /* arrow down icon */ - -webkit-font-smoothing: antialiased; - font-style: normal; - font-weight: normal; - margin: 0 0 0 3px; - speak: none; - vertical-align: text-top; -} -.store-switcher-alt .store-switcher-website, -.store-switcher-alt .store-switcher-store { - padding: 0; -} -.store-switcher-alt .store-switcher-website:hover, -.store-switcher-alt .store-switcher-store:hover { - background: none; -} -.store-switcher-alt .store-switcher-store-view { - padding: 0; -} -.store-switcher-alt .store-switcher-all, -.store-switcher-alt .manage-stores { - padding: 0; -} -.store-switcher-alt .store-switcher-all > a, -.store-switcher-alt .manage-stores > 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 { - display: inline-block; - margin-left: .5em; -} -.tooltip .help span, -.tooltip .help a { - cursor: pointer; - display: inline-block; - height: 22px; - position: relative; - vertical-align: middle; - width: 22px; - z-index: 2; -} -.tooltip .help span:before, -.tooltip .help a:before { - color: #41362f; - content: '\e633'; - font-size: 1.7rem; -} -.tooltip .help span span, -.tooltip .help a 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: rgba(49, 48, 43, 0.8); - 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, 0.3); -} -.tooltip:hover > .tooltip-content { - display: block; -} -.page-main-actions, -.page-actions.fixed { - background: #f8f8f8; - border-bottom: 1px solid #e3e3e3; - border-top: 1px solid #e3e3e3; - padding: 1.5rem; -} -.page-main-actions { - margin: 0 0 2rem; -} -.page-actions { - float: right; -} -.page-actions.fixed { - left: 8.8rem; - position: fixed; - right: 0; - top: 0; - z-index: 400; -} -.page-actions.fixed .page-actions-inner:before { - color: #41362f; - content: attr(data-title); - float: left; - font-size: 2.8rem; - margin-top: .3rem; - max-width: 50%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.page-actions > button, -.page-actions .page-actions-buttons > button { - float: right; - margin-left: 1.3rem; -} -.page-actions > button.back, -.page-actions .page-actions-buttons > button.back, -.page-actions > button.action-back, -.page-actions .page-actions-buttons > button.action-back { - float: left; - -ms-flex-order: -1; - -webkit-order: -1; - order: -1; -} -.page-actions > button.back:before, -.page-actions .page-actions-buttons > button.back:before, -.page-actions > button.action-back:before, -.page-actions .page-actions-buttons > button.action-back:before { - content: '\e626'; - margin-right: .5em; - position: relative; - top: 1px; -} -.page-actions > button.action-primary, -.page-actions .page-actions-buttons > button.action-primary, -.page-actions > button.primary, -.page-actions .page-actions-buttons > button.primary { - -ms-flex-order: 2; - -webkit-order: 2; - order: 2; -} -.page-actions > button.save:not(.primary), -.page-actions .page-actions-buttons > button.save:not(.primary) { - -ms-flex-order: 1; - -webkit-order: 1; - order: 1; -} -.page-actions > button.delete, -.page-actions .page-actions-buttons > 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; - justify-content: flex-end; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} -.customer-index-edit .page-actions-buttons { - background-color: transparent; -} -.dashboard-data { - background: #ffffff; - font-size: 1.3rem; - width: 100%; -} -.dashboard-data th, -.dashboard-data td { - padding: 1rem 0 1rem 1rem; -} -.dashboard-data th:first-child, -.dashboard-data td:first-child { - padding-left: 0; -} -.dashboard-data th { - border-top: 0; -} -.dashboard-main .dashboard-data th, -.dashboard-main .dashboard-data td { - text-align: right; - white-space: nowrap; - width: 15%; -} -.dashboard-main .dashboard-data .col-name { - text-align: left; - white-space: normal; - width: 55%; -} -.dashboard-main .dashboard-data .col-product { - width: 70%; -} -.dashboard-main .dashboard-data .col-orders_count { - text-align: left; -} -.dashboard-secondary .dashboard-data .col-popularity, -.dashboard-secondary .dashboard-data .col-total { - text-align: right; - width: 21.27659574%; -} -.dashboard-secondary .dashboard-data .col-customer, -.dashboard-secondary .dashboard-data .col-search_query { - width: 57.44680851%; -} -.dashboard-container .empty-text { - background: #ffffff; - font-size: 1.3rem; -} -.dashboard-diagram-disabled { - padding: .5rem 2rem 2rem; -} -.dashboard-diagram-switcher { - margin-bottom: 2rem; -} -.dashboard-diagram-image { - max-width: 100%; -} -.dashboard-totals { - margin: 1rem 2rem 6rem; -} -.dashboard-totals-list { - display: table; - width: 100%; -} -.dashboard-totals-item { - display: table-cell; - padding: 0 1rem 0 0; - width: 25%; -} -.dashboard-totals-item:first-child .price { - color: #eb5202; -} -.dashboard-totals-label { - display: block; - font-size: 1.3rem; - font-weight: 700; -} -.dashboard-totals-value { - font-size: 2.4rem; - font-weight: 600; -} -.dashboard-store-stats .ui-tabs { - position: relative; -} -.dashboard-store-stats .ui-tabs:before { - background-color: rgba(255, 255, 255, 0); - background-repeat: repeat-x; - background-image: -webkit-linear-gradient(left, color-stop(rgba(255, 255, 255, 0) 0%), color-stop(#ffffff 100%)); - background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #ffffff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='rgba(255, 255, 255, 0)', endColorstr='#ffffff', GradientType=1); - content: ''; - height: 4.8rem; - position: absolute; - right: 0; - top: 0; - width: 2rem; -} -.dashboard-store-stats .ui-tabs-panel { - background: url(../images/ajax-loader-small.gif) no-repeat 50% 50%; - min-height: 6rem; -} -.dashboard-store-stats .tabs-horiz { - border-right: 1px solid #ffffff; - float: left; - overflow-x: auto; - white-space: nowrap; - width: 100%; -} -.dashboard-store-stats .tabs-horiz .ui-state-default { - display: inline-block; - float: none; - margin-right: .1rem; -} -.dashboard-container .dashboard-secondary { - padding-right: 3.5rem; -} -.dashboard-item { - margin-bottom: 3rem; -} -.dashboard-item-title { - font-size: 1.8rem; - font-weight: 700; -} -.dashboard-item-primary:first-child .dashboard-sales-value { - color: #eb5202; -} -.dashboard-sales-value { - font-size: 2.4rem; - font-weight: 600; -} -.downloadable-form .col-price, -.downloadable-form .col-limit, -.downloadable-form .col-share, -.downloadable-form .col-sort { - width: 1%; -} -.downloadable-form .col-action { - width: 1px; -} -.downloadable-form td.col-limit { - white-space: nowrap; -} -.downloadable-form .admin__control-table .admin__control-text { - margin-bottom: .5rem; - min-width: 6rem; -} -.downloadable-form .files .row, -.downloadable-form .files-wide .row { - margin: .7rem 0; -} -.downloadable-form .files .row > .admin__control-text, -.downloadable-form .files-wide .row > .admin__control-text { - margin-top: .7rem; -} -.downloadable-form .files .uploader, -.downloadable-form .files-wide .uploader { - margin: .5rem 0; -} -.downloadable-form .files .fileinput-button, -.downloadable-form .files-wide .fileinput-button { - color: #007bdb; - cursor: pointer; - display: inline-block; - float: none; - margin: .5rem 0; - text-decoration: none; -} -.downloadable-form .files .fileinput-button:hover, -.downloadable-form .files-wide .fileinput-button:hover { - color: #007bdb; - text-decoration: underline; -} -.downloadable-form .action-remove { - background-image: none; - background: none; - border: 0; - margin: 0; - padding: 0; - -moz-box-sizing: content-box; - box-shadow: none; - text-shadow: none; - line-height: inherit; - font-weight: 400; - display: inline-block; - text-decoration: none; - margin-top: .5rem; -} -.downloadable-form .action-remove:focus, -.downloadable-form .action-remove:active { - background: none; - border: none; -} -.downloadable-form .action-remove:hover { - background: none; - border: none; -} -.downloadable-form .action-remove.disabled, -.downloadable-form .action-remove[disabled], -fieldset[disabled] .downloadable-form .action-remove { - cursor: not-allowed; - pointer-events: none; - opacity: 0.5; -} -.downloadable-form .action-remove > span { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.downloadable-form .action-remove:after { - font-family: 'Admin Icons'; - content: '\e630'; - font-size: 1.8rem; - line-height: 16px; - color: #41362f; - overflow: hidden; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - display: inline-block; - vertical-align: middle; - text-align: center; -} -@-moz-document url-prefix() { - .downloadable-form { - display: table-column; - } -} -.admin__section-nav { - padding-bottom: 51px; -} -.admin__section-nav-title { - padding: 0; - margin: 0 0 -1px; - color: #303030; - display: block; - padding: 20px 13px; - background: #f1f1f1; - text-transform: uppercase; - border: 1px solid #e3e3e3; - line-height: 1.2; -} -.admin__section-nav-title._collapsible { - padding-right: 35px; -} -.admin__section-nav-title._collapsible:after { - content: '\e628'; - font-family: 'Admin Icons'; - -webkit-font-smoothing: antialiased; - font-weight: normal; - speak: none; - position: absolute; - right: 18px; - top: 22px; - font-size: 1.3rem; -} -.admin__section-nav-title strong { - font-weight: 700; -} -.admin__section-nav-items { - list-style-type: none; - padding: 0; - margin: 0; -} -.admin__section-nav-item { - padding: 0; - border-left: 3px solid transparent; - margin: 0 0 -1px; -} -.admin__section-nav-item._active { - border-color: #eb5202; -} -.admin__section-nav-item._active .admin__section-nav-link { - border-color: #e3e3e3; - margin: 0; -} -.admin__section-nav-item._active .admin__section-nav-link:hover { - text-decoration: none; -} -.admin__section-nav-item._loading { - position: relative; - z-index: 1; -} -.admin__section-nav-item._loading:before { - content: ""; - display: block; - position: absolute; - z-index: 2; - background: url('../images/loader-2.gif') no-repeat 50% 50%; - background-size: 120px; - width: 2rem; - height: 2rem; - top: 2.1rem; - right: .5rem; -} -.admin__section-nav-link { - border: 1px solid transparent; - border-width: 1px 0; - line-height: 1.2; - font-weight: 500; - color: #303030; - display: block; - padding: 20px 30px 20px 10px; -} -.admin__section-nav-link:hover { - color: #303030; - text-decoration: underline; -} -.admin__section-nav-link._changed { - position: relative; - z-index: 1; -} -.admin__section-nav-link._changed:before { - content: '\e623'; - font-family: 'Admin Icons'; - -webkit-font-smoothing: antialiased; - font-style: normal; - font-weight: normal; - speak: none; - position: absolute; - z-index: 2; - font-size: 17px; - color: #eb5202; - width: 20px; - height: 20px; - top: 15px; - right: 5px; -} -@media all and (max-width: 1023px) { - .admin__menu .submenu li { - min-width: 19.8rem; - } -} -@media all and (min-width: 768px) { - .col-m-1, .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-m-10, .col-m-11, .col-m-12 { - 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%; - } -} -@media all and (min-width: 1024px) { - .col-l-1, .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-l-10, .col-l-11, .col-l-12 { - 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-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 { - 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) { - .footer-legal { - padding-top: 3rem; - text-align: left; - } - .dashboard-totals-item { - float: left; - margin-bottom: 1rem; - width: 50%; - } -} diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_actions.less b/app/design/adminhtml/Magento/backend/web/css/source/_actions.less index f74a3ca904a394d1463ebb48c2df431a71e0e896..7a3f017a0a5b58b1841e07680b58341e1e00a9f6 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_actions.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_actions.less @@ -145,7 +145,8 @@ button { color: @button-primary__color; text-shadow: 1px 1px 0 rgba(0, 0, 0, .25); &:hover, - &:active { + &:active, + &:focus { background-color: @button-primary__hover__background-color; border-color: @button-primary__hover__border-color; box-shadow: @button__hover__box-shadow; @@ -171,7 +172,8 @@ button { color: @button-secondary__color; text-shadow: 1px 1px 1px rgba(0, 0, 0, .3); &:hover, - &:active { + &:active, + &:focus { background-color: @button-secondary__hover__background-color; box-shadow: @button__hover__box-shadow; color: @button-secondary__color; @@ -193,7 +195,8 @@ button { border-color: transparent; text-shadow: none; &:active, - &:hover { + &:hover, + &:focus { background-color: transparent; border-color: transparent; box-shadow: none; @@ -203,7 +206,8 @@ button { .action-tertiary { color: @link__color; &:active, - &:hover { + &:hover, + &:focus { color: @link__hover__color; text-decoration: underline; } @@ -212,7 +216,8 @@ button { .action-quaternary { color: @text__color; &:active, - &:hover { + &:hover, + &:focus { color: darken(@text__color, 10%); } } 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 84093e4e0d6aa991e426bfcaa4a0b34c53fa4261..906c538fc04f7391d62733bd2768aafd188babfd 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_components.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_components.less @@ -7,4 +7,7 @@ // Components // _____________________________________________ -@import 'components/_spinner.less'; +@import 'components/_spinner'; +@import 'components/_calendar-temp.less'; +@import 'components/_messages.less'; +@import 'components/_popups.less'; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_reset.less b/app/design/adminhtml/Magento/backend/web/css/source/_reset.less index 7eb8e5df2a1247474bbb6688887d79f7b3769c39..ee4daecbb9ef6f8985a368c7ca67739f86b424e2 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_reset.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_reset.less @@ -3,10 +3,15 @@ // * See COPYING.txt for license details. // */ -.normalize(); +// +// Reset, based on normalize.css v3.0.2 | MIT License | git.io/normalize +// _____________________________________________ html { box-sizing: border-box; + // Prevent iOS text size adjust after orientation change, without disabling user zoom. + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; } * { @@ -21,12 +26,127 @@ html { } } -.keyfocus * { +// Keyboard actions detection helper +._keyfocus * { &:focus { box-shadow: @focus__box-shadow; } } +// Remove default margin. +body { + margin: 0; +} + +// +// HTML5 display definitions +// --------------------------------------------- + +// Correct 'block' display not defined for any HTML5 element in IE 8/9. +// Correct 'block' display not defined for 'details' or 'summary' in IE 10/11 and Firefox. +// Correct 'block' display not defined for 'main' in IE 11. +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +menu, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +progress, +video { + display: inline-block; // Correct 'inline-block' display not defined in IE 8/9. + vertical-align: baseline; // Normalize vertical alignment of 'progress' in Chrome, Firefox, and Opera. +} + +audio:not([controls]) { + display: none; // Prevent modern browsers from displaying 'audio' without controls. + height: 0; // Remove excess height in iOS 5 devices. +} + +// Address '[hidden]' styling not present in IE 8/9/10. +// Hide the 'template' element in IE 8/9/11, Safari, and Firefox < 22. +[hidden], +template { + display: none; +} + +// +// Links +// --------------------------------------------- + +a { + background-color: transparent; // Remove the gray background color from active links in IE 10. + // Improve readability when focused and also mouse hovered in all browsers. + &:active, + &:hover { + outline: 0; + } +} + +// Text-level semantics +// --------------------------------------------- + +// Address styling not present in IE 8/9/10/11, Safari, and Chrome. +abbr { + &[title] { + border-bottom: 1px dotted; + } +} + +// Address style set to 'bolder' in Firefox 4+, Safari, and Chrome. +b, +strong { + font-weight: bold; +} + +// Address styling not present in Safari and Chrome. +dfn { + font-style: italic; +} + +// Address styling not present in IE 8/9. +mark { + background: #ff0; + color: #000; +} + +// Prevent 'sub' and 'sup' affecting 'line-height' in all browsers. +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +// +// Embedded content +// --------------------------------------------- + +// Remove border when inside 'a' element in IE 8/9/10. +img { + border: 0; +} + +// Responsive width img, video, embed, @@ -34,6 +154,165 @@ object { max-width: 100%; } +// Correct overflow not hidden in IE 9/10/11. +svg { + &:not(:root) { + overflow: hidden; + } +} + +// +// Grouping content +// --------------------------------------------- + +// Address margin not present in IE 8/9 and Safari. +figure { + margin: 1em 40px; +} + +// Address differences between Firefox and other browsers. +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +// Contain overflow in all browsers. +pre { + overflow: auto; +} + +// Address odd 'em'-unit font size rendering in all browsers. +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +// +// Forms +// --------------------------------------------- + +// Known limitation: by default, Chrome and Safari on OS X allow very limited styling of 'select', unless a 'border' property is set. +button, +input, +optgroup, +select, +textarea { + color: inherit; // Correct color not being inherited. Known issue: affects color of disabled elements. + font: inherit; // Correct font properties not being inherited. + margin: 0; // Address margins set differently in Firefox 4+, Safari, and Chrome. +} + +// Address 'overflow' set to 'hidden' in IE 8/9/10/11. +button { + overflow: visible; +} + +// Address inconsistent 'text-transform' inheritance for 'button' and 'select'. +// All other form control elements do not inherit 'text-transform' values. +// Correct 'button' style inheritance in Firefox, IE 8/9/10/11, and Opera. +// Correct 'select' style inheritance in Firefox. +button, +select { + text-transform: none; +} + +// Avoid the WebKit bug in Android 4.0.* where (2) destroys native 'audio' and 'video' controls. +// Correct inability to style clickable 'input' types in iOS. +// Improve usability and consistency of cursor style between image-type 'input' and others. +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} + +// Re-set default cursor for disabled elements. +button[disabled], +html input[disabled] { + cursor: default; +} + +// Remove inner padding and border in Firefox 4+. +button, +input { + &::-moz-focus-inner { + border: 0; + padding: 0; + } +} + +// Address Firefox 4+ setting 'line-height' on 'input' using '!important' in the UA stylesheet. +input { + line-height: normal; +} + +// Firefox's implementation doesn't respect box-sizing, padding, or width. +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; // Address box sizing set to 'content-box' in IE 8/9/10. + padding: 0; // Remove excess padding in IE 8/9/10. +} + +// Fix the cursor style for Chrome's increment/decrement buttons. For certain 'font-size' values of the 'input', it causes the cursor style of the decrement button to change from 'default' to 'text'. +input[type="number"] { + &::-webkit-inner-spin-button, + &::-webkit-outer-spin-button { + height: auto; + } +} + +// Address 'appearance' set to 'searchfield' in Safari and Chrome. +input[type="search"] { + -webkit-appearance: textfield; +} + +// Remove inner padding and search cancel button in Safari and Chrome on OS X. +// Safari (but not Chrome) clips the cancel button when the search input has padding (and 'textfield' appearance). +input[type="search"] { + &::-webkit-search-cancel-button, + &::-webkit-search-decoration { + -webkit-appearance: none; + } +} + +// Correct 'color' not being inherited in IE 8/9/10/11. +// Remove padding so people aren't caught out if they zero out fieldsets. +legend { + border: 0; + padding: 0; +} + +// Remove default vertical scrollbar in IE 8/9/10/11. +textarea { + overflow: auto; +} + +// Don't inherit the 'font-weight' (applied by a rule above). +// NOTE: the default cannot safely be changed in Chrome and Safari on OS X. +optgroup { + font-weight: bold; +} + +// +// Tables +// --------------------------------------------- + +// Remove most spacing between table cells. +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + // ToDo UI: experimantal, need to test on webkit //.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { // html { diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_sources.less b/app/design/adminhtml/Magento/backend/web/css/source/_sources.less index 575a5a6fcc5e1afcfb70598c7ee41037aa3f2ac0..82de6e8fd0d1b023a6739df8b85ab07b820f1724 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_sources.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_sources.less @@ -16,15 +16,10 @@ @import '_forms.less'; @import '_actions.less'; @import '_tables.less'; -@import '_messages.less'; @import '_grid.less'; @import '_extends.less'; @import '_tabs.less'; @import '_structure.less'; -@import '_calendar-temp.less'; -@import '_popups.less'; -@import '_login.less'; - // // Components diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_structure.less b/app/design/adminhtml/Magento/backend/web/css/source/_structure.less index fa01ce62b577a3dc6ec10cd902c135cfc0080acf..f971e04756ee517f8ded56eaf5346c5cf1726c81 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_structure.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_structure.less @@ -17,6 +17,7 @@ @page-wrapper__background-color: @color-white; @page-content__padding-horizontal: @content__indent; +@page-content__padding-vertical: @content__indent; @notices-wrapper__border-color: @color-gray83; @@ -32,6 +33,8 @@ body { } .page-content { + .extend__clearfix(); + padding-bottom: @page-content__padding-vertical; padding-left: @page-content__padding-horizontal; padding-right: @page-content__padding-horizontal; } @@ -43,23 +46,17 @@ body { } } -// -// Popups -// --------------------------------------------- - -@popup__background-color: @color-white; -@popup__padding__horizontal: 3rem; -@popup__padding__vertical: 3rem; - -@popup-title__color: @color-gray20; -@popup-title__font-size: 2.4rem; - -@popup-close-icon__color: @color-brownie-vanilla; -@popup-close-icon__hover__color: @color-gray68; -@popup-close-icon__font: @icons-admin__font-name; -@popup-close-icon__font-size: 2rem; -@popup-close-icon__content: @icon-close-mage__content; -@popup-close-icon__right: 3rem; -@popup-close-icon__top: 3rem; - -@popup-overlay__background-color: rgba(0, 0, 0, .35); +.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { + .page-layout-admin-2columns-left { + .page-columns { + #mix-grid .row(); + .main-col { + #mix-grid .width(9,12); + float: right; + } + .side-col { + #mix-grid .column(3,12); + } + } + } +} diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less b/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less index 9353e93e411612d918f83d782ecbf0abcc147636..fa113a59c52acb0e46b2968e09eab6d0c9f33f49 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less @@ -48,12 +48,16 @@ display: block; padding: 1.5rem 1.8rem 1.3rem; text-decoration: none; + &:hover { // ToDo UI: should be deleted with old styles + color: @color-brown-darkie; + text-decoration: none; + } } } // Tabs content .ui-tabs-panel { - border-top: .1rem solid @color-gray68; - margin-top: -.1rem; + border-top: 1px solid @color-gray68; + margin-top: -1px; padding: 2rem; } diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_typography.less b/app/design/adminhtml/Magento/backend/web/css/source/_typography.less index 762fe46e82ddaf41df2906e1e98be9ae9a1130b1..476415b15756aca49c23ba1c8218a3cc679666a6 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_typography.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_typography.less @@ -103,6 +103,10 @@ p { margin: 0 0 .5em; } +small { + font-size: @font-size__s; +} + // Links a { color: @link__color; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-split.less b/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-split.less index 34c59e186a530f2a3388529244bb9effcab61dae..050e9bf71fbfc21c19218280971f16cf0169695f 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-split.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-split.less @@ -102,6 +102,7 @@ padding: .6875em; &:hover { background-color: @_action-split-dropdown__hover__background-color; + cursor: pointer; } &:active { background-color: darken(@_action-split-dropdown__hover__background-color, 10%); diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_calendar-temp.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_calendar-temp.less similarity index 99% rename from app/design/adminhtml/Magento/backend/web/css/source/_calendar-temp.less rename to app/design/adminhtml/Magento/backend/web/css/source/components/_calendar-temp.less index b44e8820d1c991e8c60bc2e8df245827f3fad819..5e59707575f588a5996565b8c7931c0efc2ae9e4 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_calendar-temp.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_calendar-temp.less @@ -4,7 +4,7 @@ // */ // ToDo UI Align variables after complete migration to new styles -@import 'lib/_lib.less'; +@import '../lib/_lib.less'; // // Variables @@ -42,9 +42,6 @@ vertical-align: top; margin-left: -4rem; display: inline-block; - img { - display: none; - } } } @@ -125,6 +122,7 @@ .ui-datepicker .ui-datepicker-title select { font-size: 1em; margin: 1px 0; + min-width: 0; } .ui-datepicker select.ui-datepicker-month-year { diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_messages.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_messages.less similarity index 100% rename from app/design/adminhtml/Magento/backend/web/css/source/_messages.less rename to app/design/adminhtml/Magento/backend/web/css/source/components/_messages.less diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_popups.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less similarity index 99% rename from app/design/adminhtml/Magento/backend/web/css/source/_popups.less rename to app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less index f036b1bf4ede5e58fbbfe322eeeadba1f77eac8e..414d670182ee328d9860814e1427a8b0b19bc0dd 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_popups.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less @@ -131,8 +131,13 @@ } } + .side-col { + width: 20%; + } + .main-col { padding-right: 0; + width: 80%; } .grid, @@ -337,7 +342,9 @@ } .ui-dialog-content { background: @color-lazy-sun; + margin-bottom: 0; padding: 0 2rem 2rem; + .messages, .message { &:last-child { margin-bottom: 0; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_spinner.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_spinner.less index acc813b35333baa299431f28d6ac569eb841dd78..c9eb6f63a9e7e9266ffc677d3bd60ecddce5a8b2 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_spinner.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_spinner.less @@ -65,3 +65,78 @@ } } } + + +// ToDo UI: remove old loaders style while loaders redesign + +.popup-loading { + position: fixed; + z-index: 1003; + width: 200px; + background: rgba(255, 255, 255, .8); + left: 50%; + top: 40%; + margin-left: -100px; + color: #d85909; + border-color: #d85909; + font-size: 14px; + font-weight: bold; + text-align: center; + padding: 100px 0 10px; +} + +.popup-loading:after { + position: absolute; + left: 50%; + top: 40%; + background-image: url('../mui/images/ajax-loader-big.gif'); + width: 64px; + height: 64px; + margin: -32px 0 0 -32px; + content: ''; + z-index: 2; +} + +// Loading mask +.loading-old, +.loading-mask { + background: rgba(255, 255, 255, .4); + z-index: 999; +} + +.loading-old, +.loading-mask { + position: fixed; + left: 0; + top: 0; + right: 0; + bottom: 0; +} + +.loading-old .loader, +.loading-mask .loader { + position: absolute; + margin: auto; + left: 0; + top: 0; + right: 0; + bottom: 0; + width: 160px; + height: 160px; + color: #5e5b56; + font-size: 14px; + font-weight: bold; + text-align: center; + background: #e5e2dd url(../mui/images/ajax-loader-big.gif) no-repeat 50% 30%; + border-radius: 5px; + opacity: .95; +} + +.loading-mask img { + display: none; +} + +.loading-old p, +.loading-mask p { + margin-top: 118px; +} diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_tooltip-temp.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_tooltip-temp.less similarity index 95% rename from app/design/adminhtml/Magento/backend/web/css/source/_tooltip-temp.less rename to app/design/adminhtml/Magento/backend/web/css/source/components/_tooltip-temp.less index 13da06ecca185047a5843120c4166a9dbec99dbd..a084345880534fc4da31a03cd7ac6136a4402848 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_tooltip-temp.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_tooltip-temp.less @@ -34,9 +34,6 @@ text-align: center; color: #ffffff; background-color: #514943; - .page-main-actions & { - background-color: transparent; - } } span { .visually-hidden(); diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_control-table.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_control-table.less index 50386e2ae44e46440fdb7fe4023e2efa3572e50b..0a5bda543853f0f2734bcf8fbb3934469ac02eb2 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/forms/_control-table.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_control-table.less @@ -31,6 +31,7 @@ border-bottom: 1px solid @color-white; padding: 1.3rem 2.5rem 1.3rem 0; text-align: left; + vertical-align: top; &:first-child { padding-left: 1.5rem; } 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 8618dc7b82dbffb6800f314e4f65687a91f1bd9b..ed51b9110dc72ebfbb5c2222b0c512f6016a6e0c 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 @@ -188,8 +188,8 @@ option:empty { } &:focus { + label { - .keyfocus & { - &:extend(.keyfocus *:focus); + ._keyfocus & { + &:extend(._keyfocus *:focus); } &:before { border-color: @field-control__focus__border-color; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_fields.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_fields.less index c7218ab8e50904e566c03b6c9591e617c6a5da3f..59165529f481db32ecfe4a18f09a757d77e0f808 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/forms/_fields.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_fields.less @@ -69,6 +69,7 @@ line-height: 3.2rem; padding: 0; white-space: nowrap; + word-break: break-all; &:before { content: '.'; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_temp.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_temp.less index a94060d0e7684662eed362292d0cdd339653420d..93c09e6a81c7f083560e312087c5109bcab7ba0f 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/forms/_temp.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_temp.less @@ -34,21 +34,6 @@ } } -.col-2-left-layout { - #mix-grid .row(); - margin-top: 50px; - width: auto; - - .main-col { - #mix-grid .width(9); - float: right; - } - - .side-col { - #mix-grid .column(9); - } -} - // // Admin section wrapper title @todo ui - find the right place // _____________________________________________ @@ -61,23 +46,90 @@ } } -// @todo ui Move to other place: +// @todo ui Move to other place - will be done in upcoming task "Address Tabs": + .address-item-edit-content { + background: #fff; + border: 1px solid #dad1c8; + box-shadow: 0 2px 1px 0 rgba(217, 210, 202, .5); + margin-left: 359px; + max-width: 500px; padding: 15px 30px; .admin__field { .extend__field-rows(); } + .admin__legend { + display: none; + } } - .address-list { float: left; list-style-type: none; margin:0; padding: 0; width: 360px; + .address-list-item-actions { + position: absolute; + right: 1rem; + top: 1rem; + } .address-list-item { - margin-bottom: 30px; + background: #f1f1f1; + border: 1px solid #d9d2ca; + cursor: pointer; + margin-bottom: -1px; + padding: 10px 10px 15px; + position: relative; + z-index: 1; + &.ui-state-active { + background: #fff; + box-shadow: 0 1px 1px 0 rgba(217, 210, 202, 1); + margin-left: -2px; + padding-left: 12px; + position: relative; + z-index: 2; + + &:before, + &:after { + color: #fff; + content: "\e02a"; + font-family: 'MUI-Icons'; + font-size: 18px; + font-style: normal; + font-weight: normal; + line-height: 11px; + margin-top: -5px; + position: absolute; + right: -9px; + speak: none; + text-indent: -6px; + top: 50%; + width: 10px; + z-index: 2; + } + &:before { + color: #d9d2ca; + right: -11px; + z-index: 1; + } + } + } + address:first-line { + // its not work if First Name and Last Name in two lines + font-weight: bold; + } + address { + font-style: normal; + line-height: 1.5; + margin: 0 20px 15px 0; + } + .address-list-actions { + background: none; + border: 0; + box-shadow: none; + cursor: default; + padding: 20px 0 0; } .action-delete { .button-reset(); @@ -125,14 +177,6 @@ } } -.address-item-edit { - margin-left: 359px; - .admin__legend { - display: none; - } - max-width: 500px; -} - // // Login page form errors @todo ui - remove after validation consistency // _____________________________________________ @@ -186,3 +230,8 @@ } } +// +// Selectbox in calendar @todo ui - Remove after default select styles set +// _____________________________________________ + +.ui-datepicker .ui-datepicker-title select:extend(.admin__control-select all) {}; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_colors.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_colors.less index 59d0db38fd547342d35fa909f35e0e69432c4093..61823ceffe0be26f3e8d9bea2908fee156846cc2 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/variables/_colors.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_colors.less @@ -63,3 +63,4 @@ @primary__color: @color-phoenix; @text__color: @color-brown-darkie; +@border__color: @color-gray89; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_structure.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_structure.less index 714ae8aff69e1e261f982f7e051f1f33b94dd6c7..2e081b044437fa866129b1d5b83ac9b6e736bf24 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/variables/_structure.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_structure.less @@ -42,6 +42,7 @@ // z-index 5 @field-tooltip__z-index: @z-index-5; +@admin__page-nav-tooltip__z-index: @field-tooltip__z-index; // z-index 7 @menu__z-index: @z-index-7; diff --git a/app/design/adminhtml/Magento/backend/web/css/styles-migration.less b/app/design/adminhtml/Magento/backend/web/css/styles-migration.less deleted file mode 100644 index e236fd73383d5ecec3cfed66836b08f94b5ac1a6..0000000000000000000000000000000000000000 --- a/app/design/adminhtml/Magento/backend/web/css/styles-migration.less +++ /dev/null @@ -1,54 +0,0 @@ -// /** -// * Copyright © 2015 Magento. All rights reserved. -// * See COPYING.txt for license details. -// */ - -// -// Temporary migration overrides -// _____________________________________________ - -@import (reference) 'override.less'; - -.ie9 #html-body[class][data-container="body"] .admin__scope:extend(.ie9 all) {} -#html-body[class][data-container="body"].keyfocus:extend(.keyfocus all) {} - -// Including popups styles -#html-body[class][data-container="body"] { - .popup-window:extend(.popup-window all) {} - - .overlay_magento:extend(.overlay_magento all) {} - - .ui-dialog:extend(.ui-dialog all) {} - - .ui-widget-overlay:extend(.ui-widget-overlay all) {} - - .fade:extend(.fade all) {} - - .insert-variable:extend(.insert-variable all) {} - - .magento_message:extend(.magento_message all) {} - - .ui-popup-message:extend(.ui-popup-message all) {} - -} - -#html-body[class][data-container="body"] .admin__scope { - box-sizing: border-box; - @import (multiple) 'override.less'; -} - -// ToDo UI: Hidding menu (should be fixed in layouts) -.attribute-popup { - .page-wrapper { - margin-left: 0; - } - .menu-wrapper, - .page-header-hgroup, - .page-header-actions { - display: none; - } -} - -// ToDo UI: Temporary. Should be changed -@import 'source/_calendar-temp.less'; -@import 'source/_tooltip-temp.less'; diff --git a/app/design/adminhtml/Magento/backend/web/css/styles-old.less b/app/design/adminhtml/Magento/backend/web/css/styles-old.less index a71df1e2d9945943a91b0d5e25974b5eee9d2af6..a00d8cbb543d1fcd5e1015053ed6e45bc24e0170 100644 --- a/app/design/adminhtml/Magento/backend/web/css/styles-old.less +++ b/app/design/adminhtml/Magento/backend/web/css/styles-old.less @@ -7,5453 +7,5885 @@ @import 'source/lib/_utilities.less'; @baseDir: "../"; // Default -.normalize(); - -/* Backend */ +// Backend @import "../mui/clearless/all.less"; @import "../mui/styles/vars.less"; -@import "../mui/styles/base.less"; -@import "../mui/styles/table.less"; // Import table styles -@import "../mui/styles/dashboard.less"; // Import dashboard @import (reference) "../mui/styles/abstract.less"; // Import some abstract +.admin__scope-old { + box-sizing: content-box; + + @import "../mui/styles/base.less"; + @import "../mui/styles/table.less"; // Import table styles + + // + // Reset 'button view' for actions + // -------------------------------------- + + .customer-current-activity .action-refresh, + .data-table .action-.delete, + .data-table .action-.delete:hover, + .data-table .action-.delete:active, + .data-table .action-.delete.active, + .data-table .action-delete, + .data-table .action-delete:hover, + .data-table .action-delete:active, + .data-table .action-delete.active, + .data-table .action-locked, + .data-table .action-locked:hover, + .data-table .action-locked:active, + .data-table .action-locked.active, + .data-table .action-locked[disabled], + #product-variations-matrix .action-choose, + #product-variations-matrix .action-choose:hover, + #product-variations-matrix .action-choose:active, + #product-variations-matrix .action-choose.active, + #product-variations-matrix .action-choose[disabled], + .action-manage-images, + .action-manage-images:hover, + .action-manage-images:active, + .action-manage-images.active, + .action-manage-images[disabled], + .image-panel .action-close, + .image-panel .action-close:hover, + .image-panel .action-close:active, + .image-panel .action-close.active, + .image-panel .action-close[disabled], + .image-panel-controls .action-remove, + .image-panel-controls .action-remove:hover, + .image-panel-controls .action-remove:active, + .image-panel-controls .action-remove.active, + .image-panel-controls .action-remove[disabled], + .vde-image-sizing .action-connect, + .vde-image-sizing .action-connect:hover, + .vde-image-sizing .action-connect:active, + .vde-image-sizing .action-connect.active, + .vde-image-sizing .action-connect[disabled], + .suggest-expandable .action-show-all, + .suggest-expandable .action-show-all:hover, + .suggest-expandable .action-show-all:active, + .suggest-expandable .action-show-all.active, + .suggest-expandable .action-show-all[disabled], + .custom-file > .action-add, + .custom-file > .action-add:hover, + .custom-file > .action-add:active, + .custom-file > .action-add.active, + .custom-file > .action-add[disabled], + .vde-tools-header .action-close, + .vde-tools-header .action-close:hover, + .vde-tools-header .action-close:active, + .vde-tools-header .action-close.active, + .image .action-delete, + .image .action-delete:hover, + .image .action-delete:active, + .image .action-delete.active, + .fieldset-wrapper-title .actions .action-delete, + .fieldset-wrapper-title .actions .action-delete:hover, + .fieldset-wrapper-title .actions .action-delete:active, + .fieldset-wrapper-title .actions .action-delete.active, + .notification .action-close, + .notification .action-close:hover, + .notification .action-close:active, + .notification .action-close.active, + .page-login .action-forgotpassword, + .page-login .action-forgotpassword:hover, + .page-login .action-forgotpassword:active, + .page-login .action-forgotpassword.active, + .page-login .action-back, + .page-login .action-back:hover, + .page-login .action-back:active, + .page-login .action-back.active, + .data-table .action-.delete[disabled], + .data-table .action-delete[disabled], + .data-table .action-locked[disabled], + #product-variations-matrix .action-choose[disabled], + .image-panel .action-close[disabled], + .image-panel-controls .action-remove[disabled], + .suggest-expandable .action-show-all[disabled], + #store-view-window [class^='action-close'], + #store-view-window [class^='action-close']:hover, + #store-view-window [class^='action-close']:active, + #store-view-window [class^='action-close'].active, + #store-view-window [class^='action-close'][disabled], + .custom-file > .action-add[disabled], + .image .action-delete, + .image .action-delete:hover, + .image .action-delete:active, + .image .action-delete.active, + .fieldset-wrapper-title .actions .action-delete, + .fieldset-wrapper-title .actions .action-delete:hover, + .fieldset-wrapper-title .actions .action-delete:active, + .fieldset-wrapper-title .actions .action-delete.active, + .notification .action-close, + .notification .action-close:hover, + .notification .action-close:active, + .notification .action-close.active, + .vde-tools-header .action-close[disabled], + .vde-image-sizing .action-reset, + .vde-image-sizing .action-reset:hover, + .vde-image-sizing .action-reset:active, + .vde-image-sizing .action-reset.active, + .vde-image-sizing .action-reset[disabled], + .vde-image-sizing .action-connect, + .vde-image-sizing .action-connect:hover, + .vde-image-sizing .action-connect:active, + .vde-image-sizing .action-connect.active, + .vde-image-sizing .action-connect[disabled], + .vde-tab-data .action-download, + .vde-tab-data .action-download:hover, + .vde-tab-data .action-download:active, + .vde-tab-data .action-download.active, + .vde-tab-data .action-download[disabled], + .vde-tab-data .action-delete, + .vde-tab-data .action-delete:hover, + .vde-tab-data .action-delete:active, + .vde-tab-data .action-delete.active, + .vde-tab-data .action-delete[disabled], + .vde-tab-data .action-edit, + .vde-tab-data .action-edit:hover, + .vde-tab-data .action-edit:active, + .vde-tab-data .action-edit.active, + .vde-tab-data .action-edit[disabled], + .image .action-delete[disabled], + .fieldset-wrapper-title .actions .action-delete[disabled] { + border: none; + border-radius: 0; + background: none; + margin: 0; + padding: 0; + box-shadow: none; + text-shadow: none; + filter: none; + } -/* - Reset 'button view' for actions --------------------------------------- */ -.customer-current-activity .action-refresh, -.data-table .action-.delete, -.data-table .action-.delete:hover, -.data-table .action-.delete:active, -.data-table .action-.delete.active, -.data-table .action-delete, -.data-table .action-delete:hover, -.data-table .action-delete:active, -.data-table .action-delete.active, -.data-table .action-locked, -.data-table .action-locked:hover, -.data-table .action-locked:active, -.data-table .action-locked.active, -.data-table .action-locked[disabled], -#product-variations-matrix .action-choose, -#product-variations-matrix .action-choose:hover, -#product-variations-matrix .action-choose:active, -#product-variations-matrix .action-choose.active, -#product-variations-matrix .action-choose[disabled], -.action-manage-images, -.action-manage-images:hover, -.action-manage-images:active, -.action-manage-images.active, -.action-manage-images[disabled], -.image-panel .action-close, -.image-panel .action-close:hover, -.image-panel .action-close:active, -.image-panel .action-close.active, -.image-panel .action-close[disabled], -.image-panel-controls .action-remove, -.image-panel-controls .action-remove:hover, -.image-panel-controls .action-remove:active, -.image-panel-controls .action-remove.active, -.image-panel-controls .action-remove[disabled], -.vde-image-sizing .action-connect, -.vde-image-sizing .action-connect:hover, -.vde-image-sizing .action-connect:active, -.vde-image-sizing .action-connect.active, -.vde-image-sizing .action-connect[disabled], -.suggest-expandable .action-show-all, -.suggest-expandable .action-show-all:hover, -.suggest-expandable .action-show-all:active, -.suggest-expandable .action-show-all.active, -.suggest-expandable .action-show-all[disabled], -.custom-file > .action-add, -.custom-file > .action-add:hover, -.custom-file > .action-add:active, -.custom-file > .action-add.active, -.custom-file > .action-add[disabled], -.vde-tools-header .action-close, -.vde-tools-header .action-close:hover, -.vde-tools-header .action-close:active, -.vde-tools-header .action-close.active, -.image .action-delete, -.image .action-delete:hover, -.image .action-delete:active, -.image .action-delete.active, -.fieldset-wrapper-title .actions .action-delete, -.fieldset-wrapper-title .actions .action-delete:hover, -.fieldset-wrapper-title .actions .action-delete:active, -.fieldset-wrapper-title .actions .action-delete.active, -.notification .action-close, -.notification .action-close:hover, -.notification .action-close:active, -.notification .action-close.active, -.page-login .action-forgotpassword, -.page-login .action-forgotpassword:hover, -.page-login .action-forgotpassword:active, -.page-login .action-forgotpassword.active, -.page-login .action-back, -.page-login .action-back:hover, -.page-login .action-back:active, -.page-login .action-back.active { - border: none; - border-radius: 0; - background: none; - margin: 0; - padding: 0; - box-shadow: none; - text-shadow: none; - filter: none; -} - -.attribute-popup .messages { - margin: 0 15px; -} - -.data-table .action-.delete[disabled], -.data-table .action-delete[disabled], -.data-table .action-locked[disabled], -#product-variations-matrix .action-choose[disabled], -.image-panel .action-close[disabled], -.image-panel-controls .action-remove[disabled], -.suggest-expandable .action-show-all[disabled], -#store-view-window [class^='action-close'], -#store-view-window [class^='action-close']:hover, -#store-view-window [class^='action-close']:active, -#store-view-window [class^='action-close'].active, -#store-view-window [class^='action-close'][disabled], -.custom-file > .action-add[disabled], -.image .action-delete, -.image .action-delete:hover, -.image .action-delete:active, -.image .action-delete.active, -.fieldset-wrapper-title .actions .action-delete, -.fieldset-wrapper-title .actions .action-delete:hover, -.fieldset-wrapper-title .actions .action-delete:active, -.fieldset-wrapper-title .actions .action-delete.active, -.notification .action-close, -.notification .action-close:hover, -.notification .action-close:active, -.notification .action-close.active { - border: none; - border-radius: 0; - background: none; - margin: 0; - padding: 0; - box-shadow: none; - text-shadow: none; - filter: none; -} - -.fade.critical-notification { - display: block; -} + .attribute-popup .messages { + margin: 0 15px; + } -.fade.critical-notification .popup { - top: 200px; -} + .fade.critical-notification { + display: block; + } -.data-table .action-.delete[disabled], -.data-table .action-delete[disabled], -.data-table .action-locked[disabled], -#product-variations-matrix .action-choose[disabled], -.image-panel .action-close[disabled], -.image-panel-controls .action-remove[disabled], -.suggest-expandable .action-show-all[disabled], -#store-view-window [class^='action-close'], -#store-view-window [class^='action-close']:hover, -#store-view-window [class^='action-close']:active, -#store-view-window [class^='action-close'].active, -#store-view-window [class^='action-close'][disabled], -.custom-file > .action-add[disabled], -.vde-tools-header .action-close[disabled], -.vde-image-sizing .action-reset, -.vde-image-sizing .action-reset:hover, -.vde-image-sizing .action-reset:active, -.vde-image-sizing .action-reset.active, -.vde-image-sizing .action-reset[disabled], -.image .action-delete[disabled], -.fieldset-wrapper-title .actions .action-delete[disabled] { - border: 0; - border-radius: 0; - background: none; - margin: 0; - padding: 0; - box-shadow: none; - text-shadow: none; - filter: none; -} + .fade.critical-notification .popup { + top: 200px; + } -.vde-image-sizing .action-connect, -.vde-image-sizing .action-connect:hover, -.vde-image-sizing .action-connect:active, -.vde-image-sizing .action-connect.active, -.vde-image-sizing .action-connect[disabled], -.vde-tab-data .action-download, -.vde-tab-data .action-download:hover, -.vde-tab-data .action-download:active, -.vde-tab-data .action-download.active, -.vde-tab-data .action-download[disabled], -.vde-tab-data .action-delete, -.vde-tab-data .action-delete:hover, -.vde-tab-data .action-delete:active, -.vde-tab-data .action-delete.active, -.vde-tab-data .action-delete[disabled], -.vde-tab-data .action-edit, -.vde-tab-data .action-edit:hover, -.vde-tab-data .action-edit:active, -.vde-tab-data .action-edit.active, -.vde-tab-data .action-edit[disabled] { - border: none; - border-radius: 0; - background: none; - margin: 0; - padding: 0; - box-shadow: none; - text-shadow: none; -} + // + // Actions as links + // -------------------------------------- -/* - Actions as links --------------------------------------- */ -.notification-entry-dialog .action-close { - background: none; - border: none; - color: #6d665e; - font-weight: normal; - font-size: 12px; - cursor: pointer; - text-decoration: underline; -} + .notification-entry-dialog .action-close { + background: none; + border: none; + color: #6d665e; + font-weight: normal; + font-size: 12px; + cursor: pointer; + text-decoration: underline; + } -.notification-entry-dialog .action-close:hover { - color: #000; - border-bottom-color: #000; - filter: none; -} + .notification-entry-dialog .action-close:hover { + color: #000; + border-bottom-color: #000; + filter: none; + } -/* - Fileupload button --------------------------------------- */ -.action-upload { - position: relative; -} + // + // Fileupload button + // -------------------------------------- -.action-upload > span { -} + .action-upload { + position: relative; + } -.action-upload > input[type="file"] { - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - opacity: 0; - font-size: 10em; -} + .action-upload > input[type="file"] { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + opacity: 0; + font-size: 10em; + } -/* - Dropdown menu --------------------------------------- */ -.dropdown-menu, -.ui-autocomplete { - position: absolute; - display: none; - list-style: none; - min-width: 100px; - margin: 1px 0 0; - padding: 0; - right: 0; - top: 100%; - border: 1px solid #cac2b5; - background: #fff; - box-shadow: 0 1px 1px rgba(0, 0, 0, .2); - z-index: 990; -} + // + // Dropdown menu + // -------------------------------------- -.dropdown-menu > li, -.ui-autocomplete > li { - padding: 5px; - border-bottom: 1px solid #e5e5e5; -} + .dropdown-menu, + .ui-autocomplete { + position: absolute; + display: none; + list-style: none; + min-width: 100px; + margin: 1px 0 0; + padding: 0; + right: 0; + top: 100%; + border: 1px solid #cac2b5; + background: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, .2); + z-index: 990; + } -.dropdown-menu > li.selected, -.ui-autocomplete > li.selected { - background: #eef8fc; -} + .dropdown-menu > li, + .ui-autocomplete > li { + padding: 5px; + border-bottom: 1px solid #e5e5e5; + } -.dropdown-menu > li:hover, -.ui-autocomplete > li:hover { - background: #eef8fc; -} + .dropdown-menu > li.selected, + .ui-autocomplete > li.selected { + background: #eef8fc; + } -.dropdown-menu > li:last-child, -.ui-autocomplete > li:last-child { - border-bottom: none; -} + .dropdown-menu > li:hover, + .ui-autocomplete > li:hover { + background: #eef8fc; + } -.dropdown-menu > li > .item, -.ui-autocomplete > li > .item { - cursor: pointer; -} + .dropdown-menu > li:last-child, + .ui-autocomplete > li:last-child { + border-bottom: none; + } -.dropdown-menu-top { - margin: 0 0 3px; - top: auto; - bottom: 100%; -} + .dropdown-menu > li > .item, + .ui-autocomplete > li > .item { + cursor: pointer; + } -.ui-autocomplete { - right: auto; -} + .dropdown-menu-top { + margin: 0 0 3px; + top: auto; + bottom: 100%; + } -.ui-autocomplete > li { - padding: 0; -} + .ui-autocomplete { + right: auto; + } -.ui-autocomplete > li > a { - display: block; - padding: 5px; -} + .ui-autocomplete > li { + padding: 0; + } -.ui-autocomplete > li > a.level-0 { - padding-left: 5px !important; -} + .ui-autocomplete > li > a { + display: block; + padding: 5px; + } -.ui-autocomplete .ui-state-focus { - background: #f5f5f5; -} + .ui-autocomplete > li > a.level-0 { + padding-left: 5px !important; + } -.active .dropdown-menu { - display: block; -} + .ui-autocomplete .ui-state-focus { + background: #f5f5f5; + } -/* - Actions Dropdown --------------------------------------- */ -.action-dropdown { - text-align: left; - position: relative; - display: inline-block; -} + .active .dropdown-menu { + display: block; + } -.action-dropdown > [class^='action-'] { - float: left; - border-radius: 0; -} + // + // Actions Dropdown + // -------------------------------------- -.action-dropdown > .action-default { - border-radius: 5px 0 0 5px; -} + .action-dropdown { + text-align: left; + position: relative; + display: inline-block; + } -.action-dropdown > .action-toggle { - border-left: 1px solid #c5c0b9; - border-radius: 0 5px 5px 0; - margin-left: -1px; - padding: 4px 7px; -} + .action-dropdown > [class^='action-'] { + float: left; + border-radius: 0; + } -.action-dropdown > .action-toggle > span { - display: none; -} + .action-dropdown > .action-default { + border-radius: 5px 0 0 5px; + } -.action-dropdown > .action-toggle:before { - display: block; - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e02c'; /* arrow down */ - font-size: 11px; -} + .action-dropdown > .action-toggle { + border-left: 1px solid #c5c0b9; + border-radius: 0 5px 5px 0; + margin-left: -1px; + padding: 4px 7px; + } -.action-dropdown > .action-toggle.active:before { - content: '\e029'; /* arrow up */ -} + .action-dropdown > .action-toggle > span { + display: none; + } -.action-dropdown > .action-toggle.primary { - border-left: 1px solid #e1721d; -} + .action-dropdown > .action-toggle:before { + display: block; + font-family: 'MUI-Icons'; + font-style: normal; + speak: none; + font-weight: normal; + -webkit-font-smoothing: antialiased; + content: '\e02c'; // arrow down + font-size: 11px; + } -.action-dropdown > .action-toggle.primary:hover { - background: #e2701a; - margin-left: -1px; -} + .action-dropdown > .action-toggle.active:before { + content: '\e029'; // arrow up + } -.action-dropdown.active .dropdown-menu { - display: block; - white-space: nowrap; -} + .action-dropdown > .action-toggle.primary { + border-left: 1px solid #e1721d; + } -.action-dropdown.active .dropdown-menu > li { - padding: 0; -} + .action-dropdown > .action-toggle.primary:hover { + background: #e2701a; + margin-left: -1px; + } -.action-dropdown .dropdown-menu > li > .item { - display: block; - padding: 6px 10px 5px; - color: #333; - text-decoration: none; -} + .action-dropdown.active .dropdown-menu { + display: block; + white-space: nowrap; + } -/* - Action delete icon --------------------------------------- */ -/* TODO: replase ".action-.delete" to ".action-delete" after buttons refactoring */ -.data-table .action-.delete span, -.data-table .action-delete span, -.data-table .action-locked span, -.image .action-delete span, -.fieldset-wrapper-title .actions .action-delete span { - display: none; -} + .action-dropdown.active .dropdown-menu > li { + padding: 0; + } -.data-table .action-.delete:before, -.data-table .action-delete:before, -.image .action-delete:before, -.fieldset-wrapper-title .actions .action-delete:before { - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - font-size: 18px; - -webkit-font-smoothing: antialiased; - content: '\e07f'; /* delete icon */ - color: #b7b3ad; -} + .action-dropdown .dropdown-menu > li > .item { + display: block; + padding: 6px 10px 5px; + color: #333; + text-decoration: none; + } -/* - Locked action icon --------------------------------------- */ -.data-table .action-locked:before { - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - font-size: 20px; - -webkit-font-smoothing: antialiased; - content: '\e03e'; /* lock icon */ - color: #b7b3ad; -} + // + // Action delete icon + // -------------------------------------- -.data-table .action-.delete:hover:before, -.data-table .action-delete:hover:before, -.data-table .action-locked:hover:before, -.image .action-delete:hover:before, -.fieldset-wrapper-title .actions .action-delete:hover:before { - color: #7e7e7e; -} + // TODO: replase ".action-.delete" to ".action-delete" after buttons refactoring + .data-table .action-.delete span, + .data-table .action-delete span, + .data-table .action-locked span, + .image .action-delete span, + .fieldset-wrapper-title .actions .action-delete span { + display: none; + } -.data-table input.action-.delete[type="button"], -.data-table input.action-.delete[type="submit"], -.data-table input.action-.delete[type="reset"], -.data-table button.action-.delete, -.data-table input.action-.delete[type="button"]:visited, -.data-table input.action-.delete[type="submit"]:visited, -.data-table input.action-.delete[type="reset"]:visited, -.data-table button.action-.delete:visited, -.data-table input.action-.delete[type="button"]:hover, -.data-table input.action-.delete[type="submit"]:hover, -.data-table input.action-.delete[type="reset"]:hover, -.data-table button.action-.delete:hover, -.data-table input.action-.delete[type="button"]:active, -.data-table input.action-.delete[type="submit"]:active, -.data-table input.action-.delete[type="reset"]:active, -.data-table button.action-.delete:active { - background: transparent; - padding: 3px 7px 0; -} + .data-table .action-.delete:before, + .data-table .action-delete:before, + .image .action-delete:before, + .fieldset-wrapper-title .actions .action-delete:before { + font-family: 'MUI-Icons'; + font-style: normal; + speak: none; + font-weight: normal; + font-size: 18px; + -webkit-font-smoothing: antialiased; + content: '\e07f'; // delete icon + color: #b7b3ad; + } -.data-table input.action-.delete[type=button]:hover:before, -.data-table input.action-.delete[type=submit]:hover:before, -.data-table input.action-.delete[type=reset]:hover:before, -.data-table button.action-.delete:hover:before, -.data-table input.action-.delete[type=button]:focus:before, -.data-table input.action-.delete[type=submit]:focus:before, -.data-table input.action-.delete[type=reset]:focus:before, -.data-table button.action-.delete:focus:before { - background: transparent; - color: #a5a29d; -} + // + // Locked action icon + // -------------------------------------- + + .data-table .action-locked:before { + font-family: 'MUI-Icons'; + font-style: normal; + speak: none; + font-weight: normal; + font-size: 20px; + -webkit-font-smoothing: antialiased; + content: '\e03e'; // lock icon + color: #b7b3ad; + } -/* - Forms --------------------------------------- */ + .data-table .action-.delete:hover:before, + .data-table .action-delete:hover:before, + .data-table .action-locked:hover:before, + .image .action-delete:hover:before, + .fieldset-wrapper-title .actions .action-delete:hover:before { + color: #7e7e7e; + } -fieldset { - border: 1px solid #ccc; - padding: 20px; -} + .data-table input.action-.delete[type="button"], + .data-table input.action-.delete[type="submit"], + .data-table input.action-.delete[type="reset"], + .data-table button.action-.delete, + .data-table input.action-.delete[type="button"]:visited, + .data-table input.action-.delete[type="submit"]:visited, + .data-table input.action-.delete[type="reset"]:visited, + .data-table button.action-.delete:visited, + .data-table input.action-.delete[type="button"]:hover, + .data-table input.action-.delete[type="submit"]:hover, + .data-table input.action-.delete[type="reset"]:hover, + .data-table button.action-.delete:hover, + .data-table input.action-.delete[type="button"]:active, + .data-table input.action-.delete[type="submit"]:active, + .data-table input.action-.delete[type="reset"]:active, + .data-table button.action-.delete:active { + background: transparent; + padding: 3px 7px 0; + } -legend { - padding: 0 10px; - margin: 0 -10px; -} + .data-table input.action-.delete[type=button]:hover:before, + .data-table input.action-.delete[type=submit]:hover:before, + .data-table input.action-.delete[type=reset]:hover:before, + .data-table button.action-.delete:hover:before, + .data-table input.action-.delete[type=button]:focus:before, + .data-table input.action-.delete[type=submit]:focus:before, + .data-table input.action-.delete[type=reset]:focus:before, + .data-table button.action-.delete:focus:before { + background: transparent; + color: #a5a29d; + } -fieldset legend + br { - display: none; -} + // + // Forms + // -------------------------------------- -label { - display: inline-block; -} -label > input[type="radio"], -label > input[type="checkbox"] { - margin: -3px 3px 0 0; - vertical-align: middle; -} + fieldset { + border: 1px solid #ccc; + padding: 20px; + } -input[type=text], -input[type=password], -input[type=datetime], -input[type=datetime-local], -input[type=date], -input[type=month], -input[type=time], -input[type=week], -input[type=number], -input[type=range], -input[type=email], -input[type=url], -input[type=search], -input.search, -input[type=tel], -input[type=color], -textarea, -select { - box-sizing: border-box; - border: 1px solid #adadad; - border-radius: 1px; - padding: 4px; - color: #303030; - background-color: #fff; - font-weight: 500; - font-size: 14px; - height: 33px; - &:focus { - border-color: #007bdb; - outline: 0; + legend { + padding: 0 10px; + margin: 0 -10px; } -} -select { - &:not([multiple]) { - .css(appearance, none, 1); + fieldset legend + br { + display: none; + } + label { display: inline-block; - line-height: normal; - min-width: 80px; + } + + label > input[type="radio"], + label > input[type="checkbox"] { + margin: -3px 3px 0 0; + vertical-align: middle; + } - background-repeat: no-repeat; - background-image+: url('../images/arrows-bg.svg'); - background-position+: ~'calc(100% - 12px)' -34px; - background-size+: auto; + input[type=text], + input[type=password], + input[type=datetime], + input[type=datetime-local], + input[type=date], + input[type=month], + input[type=time], + input[type=week], + input[type=number], + input[type=range], + input[type=email], + input[type=url], + input[type=search], + input.search, + input[type=tel], + input[type=color], + textarea, + select { + box-sizing: border-box; + border: 1px solid #adadad; + border-radius: 1px; + padding: 4px; + color: #303030; + background-color: #fff; + font-weight: 500; + font-size: 14px; + height: 33px; + &:focus { + border-color: #007bdb; + outline: 0; + } + } - background-image+: linear-gradient(#e3e3e3, #e3e3e3); - background-position+: 100%; - background-size+: 33px 100%; + select { + &:not([multiple]) { + .css(appearance, none, 1); - background-image+: linear-gradient(#adadad, #adadad); - background-position+: ~'calc(100% - 33px)' 0; - background-size+: 1px 100%; + display: inline-block; + line-height: normal; + min-width: 80px; - padding-right: 44px; - &:focus { + background-repeat: no-repeat; background-image+: url('../images/arrows-bg.svg'); - background-position+: ~'calc(100% - 12px)' 13px; + background-position+: ~'calc(100% - 12px)' -34px; + background-size+: auto; background-image+: linear-gradient(#e3e3e3, #e3e3e3); background-position+: 100%; + background-size+: 33px 100%; - background-image+: linear-gradient(#007bdb, #007bdb); + background-image+: linear-gradient(#adadad, #adadad); background-position+: ~'calc(100% - 33px)' 0; - } - &::-ms-expand { - display: none; - } - .ie9 & { - padding-right: 4px; - min-width: 0; - } - } -} + background-size+: 1px 100%; -select[multiple], -select[size] { - height: auto; -} + padding-right: 44px; + &:focus { + background-image+: url('../images/arrows-bg.svg'); + background-position+: ~'calc(100% - 12px)' 13px; -textarea { - resize: vertical; - padding-top: 6px; - padding-bottom: 6px; - line-height: 1.18em; - max-width: none; - min-height: 100px; -} + background-image+: linear-gradient(#e3e3e3, #e3e3e3); + background-position+: 100%; -textarea, -.input-text { - height: auto; -} + background-image+: linear-gradient(#007bdb, #007bdb); + background-position+: ~'calc(100% - 33px)' 0; + } + &::-ms-expand { + display: none; + } + } + } -input[type="radio"], -input[type="checkbox"] { - background: #fff; - border: 1px solid #adadad; - border-radius: 2px; - cursor: pointer; - display: inline-block; - vertical-align: middle; - margin: 0 5px 0 0; - height: 16px; - width: 16px; - position: relative; - appearance: none; - -webkit-appearance: none; - -moz-appearance: none; - transition: all 0.1s ease-in; - &:focus { - border-color: #007bdb; - outline: 0; + select[multiple], + select[size] { + height: auto; } - &[disabled] { - background-color: #e9e9e9; - border-color: #adadad; - opacity: .5; + + textarea { + resize: vertical; + padding-top: 6px; + padding-bottom: 6px; + line-height: 1.18em; + max-width: none; + min-height: 100px; } - &:checked { - &:after { - font-family: 'Admin Icons'; - content: "\e62d"; - display: inline-block; - position: absolute; - top: 0; - left: 0; - width: 14px; - color: #514943; - font-size: 11px; - line-height: 13px; - text-align: center; - font-weight: 400 - } + + textarea, + .input-text { + height: auto; } -} -input[type="radio"] { - border-radius: 8px; - &:checked { - &:after { - content: ''; - display: block; - width: 10px; - height: 10px; - border-radius: 10px; - background: #514943; - top: 50%; - left: 50%; - position: absolute; - margin-top: -5px; - margin-left: -5px; + input[type="radio"], + input[type="checkbox"] { + background: #fff; + border: 1px solid #adadad; + border-radius: 2px; + cursor: pointer; + display: inline-block; + vertical-align: middle; + margin: 0 5px 0 0; + height: 16px; + width: 16px; + position: relative; + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + transition: all 0.1s ease-in; + &:focus { + border-color: #007bdb; + outline: 0; + } + &[disabled] { + background-color: #e9e9e9; + border-color: #adadad; + opacity: .5; + } + &:checked { + &:after { + font-family: 'Admin Icons'; + content: "\e62d"; + display: inline-block; + position: absolute; + top: 0; + left: 0; + width: 14px; + color: #514943; + font-size: 11px; + line-height: 13px; + text-align: center; + font-weight: 400 + } } } -} -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #fff; - border-color: #eee; - box-shadow: none; - color: #999; -} + input[type="radio"] { + border-radius: 8px; + &:checked { + &:after { + content: ''; + display: block; + width: 10px; + height: 10px; + border-radius: 10px; + background: #514943; + top: 50%; + left: 50%; + position: absolute; + margin-top: -5px; + margin-left: -5px; + } + } + } -select[disabled] option[selected] { - color: #fff; - background: #aaa; -} + input[disabled], + select[disabled], + textarea[disabled], + input[readonly], + select[readonly], + textarea[readonly] { + cursor: not-allowed; + background-color: #fff; + border-color: #eee; + box-shadow: none; + color: #999; + } -textarea:-moz-placeholder, -input:-moz-placeholder { - color: #999 !important; - font-style: italic; -} + select[disabled] option[selected] { + color: #fff; + background: #aaa; + } -option.placeholder { - color: #999 !important; - font-style: italic !important; -} + textarea:-moz-placeholder, + input:-moz-placeholder { + color: #999 !important; + font-style: italic; + } -:-ms-input-placeholder { - color: #999 !important; - font-style: italic; -} + option.placeholder { + color: #999 !important; + font-style: italic !important; + } -::-webkit-input-placeholder { - color: #999 !important; -} + :-ms-input-placeholder { + color: #999 !important; + font-style: italic; + } -:-moz-placeholder { - color: #999 !important; -} + ::-webkit-input-placeholder { + color: #999 !important; + } -.form-inline .control { - width: 100%; - .control-inner-wrap { - padding-top: 7px; + :-moz-placeholder { + color: #999 !important; } -} -.form-inline .label { - width: 20%; - padding-top: 8px; - padding-right: 30px; -} + .form-inline .control { + width: 100%; + .control-inner-wrap { + padding-top: 7px; + } + } -.form-inline .label ~ .control { - width: 60%; -} + .form-inline .label { + width: 20%; + padding-top: 8px; + padding-right: 30px; + } -.form-inline .no-label .control { - margin-left: 20%; - width: 60%; -} + .form-inline .label ~ .control { + width: 60%; + } -fieldset.field [class^='fields-group-'] .field .control { - width: auto; - margin: 0 0 0 20px; -} + .form-inline .no-label .control { + margin-left: 20%; + width: 60%; + } -.form-inline .field-service { - box-sizing: border-box; - float: left; - width: 20%; - padding: 7px 0 0 15px; - color: #999; - font-size: 12px; - letter-spacing: .05em; -} + fieldset.field [class^='fields-group-'] .field .control { + width: auto; + margin: 0 0 0 20px; + } -.form-inline .field-service[value-scope]:before { - content: attr(value-scope) !important; - white-space: nowrap; - display: block; - margin-bottom: 5px; -} + .form-inline .field-service { + box-sizing: border-box; + float: left; + width: 20%; + padding: 7px 0 0 15px; + color: #999; + font-size: 12px; + letter-spacing: .05em; + } -.form-inline .field-service .checkbox { - margin: 0; - vertical-align: middle; -} + .form-inline .field-service[value-scope]:before { + content: attr(value-scope) !important; + white-space: nowrap; + display: block; + margin-bottom: 5px; + } -.form-inline > form > div > .message { - margin-left: 18px; - margin-right: 18px; -} + .form-inline .field-service .checkbox { + margin: 0; + vertical-align: middle; + } -.control > input { - width: 100%; - padding: 4px 10px; -} + .form-inline > form > div > .message { + margin-left: 18px; + margin-right: 18px; + } -.control > input[type="button"] { - width: auto; -} + .control > input { + width: 100%; + padding: 4px 10px; + } -.control > input.hasDatepicker { - width: 160px; -} - -.control { - > input[type="file"] { + .control > input[type="button"] { width: auto; } - > input[type="checkbox"], - > input[type="radio"] { - width: 16px; - padding: 0; + + .control > input.hasDatepicker { + width: 160px; } -} -.control > table { - width: 100%; -} + .control { + > input[type="file"] { + width: auto; + } + > input[type="checkbox"], + > input[type="radio"] { + width: 16px; + padding: 0; + } + } -.multi-input { - margin: 0 0 20px; -} + .control > table { + width: 100%; + } -.multi-input > input { - width: 100%; -} + .multi-input { + margin: 0 0 20px; + } -.control .input-file { - margin-top: 4px; -} + .multi-input > input { + width: 100%; + } -/* TODO: remove styles for images when images will be replaced by font icons */ -.control .hasDatepicker + img { - margin: -3px 0 0 5px; - vertical-align: middle; -} + .control .input-file { + margin-top: 4px; + } -.nobr { - white-space: nowrap; -} + .control { + .hasDatepicker { + & + .ui-datepicker-trigger { + .button-reset(); + .icon-font( + @icon-calendar, + @_icon-font-size: 42px, + @_icon-font-line-height: 30px, + @_icon-font-text-hide: true, + @_icon-font-position: after, + @_icon-font-color: @field-date-icon--color + ); + display: inline-block; + vertical-align: middle; + &:focus { + outline: 0; + box-shadow: none; + } + } + } + } -/* - Form Validation --------------------------------------- */ -label.mage-error { - border: 1px solid #e22626; - display: block; - margin: 2px 0 0; - padding: 6px 10px 10px; - background: #fff8d6; - color: #555; - font-size: 12px; - font-weight: 500; - box-sizing: border-box; -} + .nobr { + white-space: nowrap; + } -textarea.mage-error, -select.mage-error, -input.mage-error { - border-color: #e22626 !important; -} + // + // Form Validation + // -------------------------------------- -input.mage-error ~ .addafter { - border-color: #e22626 !important; -} + label.mage-error { + border: 1px solid #e22626; + display: block; + margin: 2px 0 0; + padding: 6px 10px 10px; + background: #fff8d6; + color: #555; + font-size: 12px; + font-weight: 500; + box-sizing: border-box; + } -/* - Forms for Store Scope --------------------------------------- */ -.form-inline .field-store_id .label + .control, -.form-inline .field-store_ids .label + .control, -.form-inline .field-website_ids .label + .control, -.form-inline .field-website_id .label + .control, -.form-inline .field-select_stores .label + .control, -.form-inline .field-stores .label + .control { - width: auto; -} + textarea.mage-error, + select.mage-error, + input.mage-error { + border-color: #e22626 !important; + } -/* - Forms styles --------------------------------------- */ -.page-content-inner { - position: relative; - background: #f5f2ed; - border: 1px solid #b7b2a6; - border-radius: 5px; - padding: 20px; -} + input.mage-error ~ .addafter { + border-color: #e22626 !important; + } -.fieldset-wrapper, -.fieldset { - background: #fff; - border: 0; - margin: 0; - padding: 5px 18px 38px; - position: relative; -} + // + // Forms for Store Scope + // -------------------------------------- -.fieldset-wrapper > .fieldset-wrapper-title, -.fieldset > .legend { - position: static; - float: left; - width: 100%; - box-sizing: border-box; - padding: 0; - border-bottom: 1px solid #cac3b4; - margin: 0 0 18px; -} + .form-inline .field-store_id .label + .control, + .form-inline .field-store_ids .label + .control, + .form-inline .field-website_ids .label + .control, + .form-inline .field-website_id .label + .control, + .form-inline .field-select_stores .label + .control, + .form-inline .field-stores .label + .control { + width: auto; + } -.fieldset-wrapper > .fieldset-wrapper-title { - float: none; -} + // + // Forms styles + // -------------------------------------- -.fieldset-wrapper > .fieldset-wrapper-title .title, -.fieldset > .legend span { - .style10(); - padding: 7px 0 10px; - display: inline-block; -} + .page-content-inner { + position: relative; + background: #f5f2ed; + border: 1px solid #b7b2a6; + border-radius: 5px; + padding: 20px; + } -// -// Collapsable fieldset-wrapper -//-------------------------------------- -.collapsable-wrapper { - padding-bottom: 2px; - > .fieldset-wrapper-title { + .fieldset-wrapper, + .fieldset { + background: #fff; + border: 0; + margin: 0; + padding: 5px 18px 38px; + position: relative; + } + + .fieldset-wrapper > .fieldset-wrapper-title, + .fieldset > .legend { + position: static; + float: left; + width: 100%; + box-sizing: border-box; + padding: 0; border-bottom: 1px solid #cac3b4; - margin-bottom: 0; - > .title { - position: relative; - padding-left: 22px; - cursor: pointer; - float: left; - &:before { - position: absolute; - left: 0; - top: 11px; - font-family: 'MUI-Icons'; - font-size: 16px; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e02a'; // arrow right icon - color: #b2b0ad; - } - &:hover:before { - color: #7e7e7e; - } - } + margin: 0 0 18px; + } + + .fieldset-wrapper > .fieldset-wrapper-title { + float: none; + } + + .fieldset-wrapper > .fieldset-wrapper-title .title, + .fieldset > .legend span { + .style10(); + padding: 7px 0 10px; + display: inline-block; } - &.opened { - padding-bottom: 18px; + + // + // Collapsable fieldset-wrapper + // -------------------------------------- + .collapsable-wrapper { + padding-bottom: 2px; > .fieldset-wrapper-title { - //border-bottom: 1px solid #ededed; - margin-bottom: 18px; - > .title:before { - content: '\e02c'; // arrow down icon + border-bottom: 1px solid #cac3b4; + margin-bottom: 0; + > .title { + position: relative; + padding-left: 22px; + cursor: pointer; + float: left; + &:before { + position: absolute; + left: 0; + top: 11px; + font-family: 'MUI-Icons'; + font-size: 16px; + font-style: normal; + speak: none; + font-weight: normal; + -webkit-font-smoothing: antialiased; + content: '\e02a'; // arrow right icon + color: #b2b0ad; + } + &:hover:before { + color: #7e7e7e; + } + } + } + &.opened { + padding-bottom: 18px; + > .fieldset-wrapper-title { + //border-bottom: 1px solid #ededed; + margin-bottom: 18px; + > .title:before { + content: '\e02c'; // arrow down icon + } } } } -} - -/* Fieldset styles in another fieldset */ -.fieldset .fieldset-wrapper, -.fieldset-wrapper .fieldset-wrapper { - border: 1px solid #cac3b4; - border-radius: 2px; - padding: 0; -} -.fieldset .fieldset-wrapper .fieldset-wrapper-title, -.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title { - background:#f7f3eb; - padding: 0 18px; - border: 0; -} - -.fieldset .fieldset-wrapper.opened .fieldset-wrapper-title, -.fieldset-wrapper .fieldset-wrapper.opened .fieldset-wrapper-title { - border-bottom: 1px solid #cccbca; - -webkit-touch-callout: none; - -webkit-user-select: none; // use in 41 Chrome - -moz-user-select: none; // use in 36 Firefox - -ms-user-select: none; // use in 11 IE - min-height: 39px; -} + // Fieldset styles in another fieldset + .fieldset .fieldset-wrapper, + .fieldset-wrapper .fieldset-wrapper { + border: 1px solid #cac3b4; + border-radius: 2px; + padding: 0; + } -.fieldset .fieldset-wrapper .fieldset-wrapper-title .actions, -.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .actions { - padding: 6px 0 0; -} + .fieldset .fieldset-wrapper .fieldset-wrapper-title, + .fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title { + background:#f7f3eb; + padding: 0 18px; + border: 0; + } -.fieldset .fieldset-wrapper .fieldset-wrapper-title .title, -.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .title { - padding-top: 9px; - padding-bottom: 8px; - color: #555; - font: normal 16px/1.333 Arial, Verdana, sans-serif; -} + .fieldset .fieldset-wrapper.opened .fieldset-wrapper-title, + .fieldset-wrapper .fieldset-wrapper.opened .fieldset-wrapper-title { + border-bottom: 1px solid #cccbca; + -webkit-touch-callout: none; + -webkit-user-select: none; // use in 41 Chrome + -moz-user-select: none; // use in 36 Firefox + -ms-user-select: none; // use in 11 IE + min-height: 39px; + } -.fieldset .fieldset-wrapper .fieldset-wrapper-title .title:before, -.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .title:before { - top: 9px; -} + .fieldset .fieldset-wrapper .fieldset-wrapper-title .actions, + .fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .actions { + padding: 6px 0 0; + } -.fieldset-wrapper-content .fieldset > .title { - margin-top: 0; - padding-left: 22px; -} + .fieldset .fieldset-wrapper .fieldset-wrapper-title .title, + .fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .title { + padding-top: 9px; + padding-bottom: 8px; + color: #555; + font: normal 16px/1.333 Arial, Verdana, sans-serif; + } -.fieldset-wrapper .draggable-handle, -.fieldset .draggable-handle { - width: 8px; - height: 14px; - line-height: 14px; - background: url(../Magento_Backend/images/draggable-handle-vertical.png) no-repeat 0 0; - cursor: ns-resize; - color: #b2b0ad; -} + .fieldset .fieldset-wrapper .fieldset-wrapper-title .title:before, + .fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .title:before { + top: 9px; + } -.fieldset-wrapper-title > .draggable-handle { - position: absolute; - left: 10px; - top: 12px; -} + .fieldset-wrapper-content .fieldset > .title { + margin-top: 0; + padding-left: 22px; + } -.fieldset .fieldset-wrapper .fieldset-wrapper-content, -.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-content { - padding: 0 10px; -} + .fieldset-wrapper .draggable-handle, + .fieldset .draggable-handle { + width: 8px; + height: 14px; + line-height: 14px; + background: url(../Magento_Backend/images/draggable-handle-vertical.png) no-repeat 0 0; + cursor: ns-resize; + color: #b2b0ad; + } -/* Sortable fieldsets */ -.ui-sortable .entry-edit .fieldset-wrapper-title, -#product_options_container_top .fieldset-wrapper-title { - padding-left: 30px; -} + .fieldset-wrapper-title > .draggable-handle { + position: absolute; + left: 10px; + top: 12px; + } -.ui-sortable .entry-edit .fieldset-wrapper-title > .title { -} + .fieldset .fieldset-wrapper .fieldset-wrapper-content, + .fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-content { + padding: 0 10px; + } -.fieldset-wrapper-title > .actions, -.fieldset .legend > .actions { - float: right; - padding-top: 8px; -} + // Sortable fieldsets + .ui-sortable .entry-edit .fieldset-wrapper-title, + #product_options_container_top .fieldset-wrapper-title { + padding-left: 30px; + } -.fieldset > .legend + br { - display: block; - height: 0; - overflow: hidden; - clear: left; -} + .ui-sortable .entry-edit .fieldset-wrapper-title > .title { + } -.fieldset-wrapper .fieldset, -.fieldset .fieldset { - background: transparent; - padding: 9px 0; - border: none; - border-radius: 0; - margin: 0 0 29px; -} + .fieldset-wrapper-title > .actions, + .fieldset .legend > .actions { + float: right; + padding-top: 8px; + } -.fieldset .comment { - margin: 0 0 29px 10px; -} + .fieldset > .legend + br { + display: block; + height: 0; + overflow: hidden; + clear: left; + } -.fieldset { - .field { + .fieldset-wrapper .fieldset, + .fieldset .fieldset { + background: transparent; + padding: 9px 0; + border: none; + border-radius: 0; margin: 0 0 29px; } -} - -.with-note .note, -.field .note, -.data-table .note { - color: #303030; - font-size: 12px; - font-weight: 400; - margin: 5px 0; -} -.fieldset .field .options-list { - list-style: none; - margin: 0; - padding: 0; -} + .fieldset .comment { + margin: 0 0 29px 10px; + } -.fieldset .field .options-list input[type="checkbox"], -.fieldset .field .options-list input[type="radio"] { - margin-right: 5px; -} + .fieldset { + .field { + margin: 0 0 29px; + } + } -[class^="fields-group-"] .field { - margin-bottom: 0; -} + .with-note .note, + .field .note, + .data-table .note { + color: #303030; + font-size: 12px; + font-weight: 400; + margin: 5px 0; + } -.fieldset-wrapper .fieldset:last-child, -.fieldset .fieldset:last-child, -.fieldset .field:last-child { - margin-bottom: 0; -} + .fieldset .field .options-list { + list-style: none; + margin: 0; + padding: 0; + } -.fieldset .label { - color: #303030; - font-size: 14px; - font-weight: 600; -} + .fieldset .field .options-list input[type="checkbox"], + .fieldset .field .options-list input[type="radio"] { + margin-right: 5px; + } -.fieldset .control .label { - .style9(); - padding-top: 0; -} + [class^="fields-group-"] .field { + margin-bottom: 0; + } -.form-inline div:not([class*='fields-group']) > .field > .label, -.form-inline .fieldset > .field > .label { - color: #303030; - font-size: 14px; - font-weight: 600; - line-height: 3.2rem; - padding: 0 30px 0 0; - white-space: nowrap; - - &:before { - content: '.'; - margin-left: -7px; - overflow: hidden; - visibility: hidden; - width: 0; + .fieldset-wrapper .fieldset:last-child, + .fieldset .fieldset:last-child, + .fieldset .field:last-child { + margin-bottom: 0; } - span { - display: inline-block; - line-height: 1.33; - vertical-align: middle; - white-space: normal; + .fieldset .label { + color: #303030; + font-size: 14px; + font-weight: 600; } -} -.details-content > .field.required > .label, -.fieldset > .field.required > .label { - &:after { - content:''; + + .fieldset .control .label { + .style9(); + padding-top: 0; } - padding-left: 1.5rem; - .form-inline & { - padding-left: 0; + + .form-inline div:not([class*='fields-group']) > .field > .label, + .form-inline .fieldset > .field > .label { + color: #303030; + font-size: 14px; + font-weight: 600; + line-height: 3.2rem; + padding: 0 30px 0 0; + white-space: nowrap; + word-break: break-all; + &:before { + content: '.'; + margin-left: -7px; + overflow: hidden; + visibility: hidden; + width: 0; + } + + span { + display: inline-block; + line-height: 1.33; + vertical-align: middle; + white-space: normal; + } } - span { + + .details-content > .field.required > .label, + .fieldset > .field.required > .label { &:after { - color: #e22626; - content: '*'; - display: inline-block; - font-size: 1.6rem; - font-weight: 500; - left: 0; - line-height: 1; - position: absolute; - top: .2rem; - z-index: 1; - .form-inline & { - left: auto; + content:''; + } + padding-left: 1.5rem; + 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; } } } -} + .form-inline { + .details-content > .field.required > .label, + .fieldset > .field.required > .label { + padding-left: 0; + span { + &:after { + left: auto; + margin-left: 10px; + top: 1.2rem; + } + } + } + } -.with-addon .textarea { - margin: 0 0 6px; -} + .with-addon .textarea { + margin: 0 0 6px; + } -.fieldset .control .textarea, -.fieldset .control .addon .textarea { - width: 100%; -} -.details-content > .field > input[type="checkbox"], -.fieldset > .field > input[type="checkbox"] { - margin-top: 9px; -} + .fieldset .control .textarea, + .fieldset .control .addon .textarea { + width: 100%; + } + .details-content > .field > input[type="checkbox"], + .fieldset > .field > input[type="checkbox"] { + margin-top: 9px; + } -.fieldset-alt { - position: relative; - display: table-row; - border: 0; - padding: 0; - margin-bottom: 20px; - width: 100%; -} + .fieldset-alt { + position: relative; + display: table-row; + border: 0; + padding: 0; + margin-bottom: 20px; + width: 100%; + } -.fieldset-alt > .field { - display: table-cell; - vertical-align: top; - padding-right: 4%; -} + .fieldset-alt > .field { + display: table-cell; + vertical-align: top; + padding-right: 4%; + } -.fieldset-alt > .field.no-display { - display: none; -} + .fieldset-alt > .field.no-display { + display: none; + } -.fieldset-alt .field > .label { - display: block; - width: 100%; - clear: both; - text-align: left; - margin: 0 0 10px; -} + .fieldset-alt .field > .label { + display: block; + width: 100%; + clear: both; + text-align: left; + margin: 0 0 10px; + } -.fieldset-alt .label + .control { - width: 100%; -} + .fieldset-alt .label + .control { + width: 100%; + } -.fieldset-alt .field-option-title { - width: 50%; -} + .fieldset-alt .field-option-title { + width: 50%; + } -.fieldset .tooltip .help { - margin: 5px 0 0 15px; - display: inline-block; -} + .fieldset .tooltip .help { + margin: 5px 0 0 15px; + display: inline-block; + } -.fieldset-alt .field-option-store-view { - width: 20%; -} + .fieldset-alt .field-option-store-view { + width: 20%; + } -.fieldset-alt .field-option-input-type { - width: 20%; -} + .fieldset-alt .field-option-input-type { + width: 20%; + } -.fieldset-alt .field-option-input-type select { - width: 100%; -} + .fieldset-alt .field-option-input-type select { + width: 100%; + } -.fieldset-alt .field-option-req { - width: 105px; - white-space: nowrap; -} + .fieldset-alt .field-option-req { + width: 105px; + white-space: nowrap; + } -.fieldset-alt .field-option-req .control { - position: relative; - top: 32px; -} + .fieldset-alt .field-option-req .control { + position: relative; + top: 32px; + } -.fieldset-alt .field-option-position, -.fieldset-alt .field-option-position .control { - width: 60px; -} + .fieldset-alt .field-option-position, + .fieldset-alt .field-option-position .control { + width: 60px; + } -/* "Use default" checkbox */ -.use-default { + // "Use default" checkbox + .use-default { -} + } -.use-default-control { - display: none; -} - -.use-default-label { - cursor: pointer; - text-decoration: underline; - font-size: 11px; - color: #a29c94; -} + .use-default-control { + display: none; + } -.use-default-label:hover { - color: #7e7e7e; -} + .use-default-label { + cursor: pointer; + text-decoration: underline; + font-size: 11px; + color: #a29c94; + } -/* - Custom Multiselect --------------------------------------- */ -.multiselect-alt { - margin: 0; - padding: 0; - list-style: none; - border: 1px solid #ccc; - border-radius: 5px; - color: #333; -} + .use-default-label:hover { + color: #7e7e7e; + } -.multiselect-alt .item { - position: relative; - border-top: 1px solid #fff; - cursor: pointer; -} + // + // Custom Multiselect + // -------------------------------------- -.multiselect-alt .item:first-child { - border-top: 0; -} + .multiselect-alt { + margin: 0; + padding: 0; + list-style: none; + border: 1px solid #ccc; + border-radius: 5px; + color: #333; + } -.multiselect-alt .item.selected { - background: #d7ebf5; -} + .multiselect-alt .item { + position: relative; + border-top: 1px solid #fff; + cursor: pointer; + } -.multiselect-alt .item.selected:hover { - background: #afdef2; -} + .multiselect-alt .item:first-child { + border-top: 0; + } -.multiselect-alt label { - display: block; - cursor: pointer; - padding: 6px 25px 5px; -} + .multiselect-alt .item.selected { + background: #d7ebf5; + } -.multiselect-alt .item.selected label:before { - position: absolute; - left: 8px; - top: 1px; - bottom: 0; - width: 10px; - line-height: 28px; - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e01e'; /* checked icon */ - text-align: center; - color: #7ba4b1; - font-size: 9px; - text-shadow: 0 -1px 1px #60727b; -} + .multiselect-alt .item.selected:hover { + background: #afdef2; + } -.multiselect-alt input[type="checkbox"] { - width: 0; - height: 0; - opacity: 0; - margin: 0; - padding: 0; -} + .multiselect-alt label { + display: block; + cursor: pointer; + padding: 6px 25px 5px; + } -// -// Form item with table -// -------------------------------------- + .multiselect-alt .item.selected label:before { + position: absolute; + left: 8px; + top: 1px; + bottom: 0; + width: 10px; + line-height: 28px; + font-family: 'MUI-Icons'; + font-style: normal; + speak: none; + font-weight: normal; + -webkit-font-smoothing: antialiased; + content: '\e01e'; // checked icon + text-align: center; + color: #7ba4b1; + font-size: 9px; + text-shadow: 0 -1px 1px #60727b; + } -.with-table { - .label { - float: none; - text-align: left; - width: 100%; + .multiselect-alt input[type="checkbox"] { + width: 0; + height: 0; + opacity: 0; + margin: 0; + padding: 0; } - .control { - clear: left; - float: none; - width: 100%; + + // + // Form item with table + // -------------------------------------- + + .with-table { + .label { + float: none; + text-align: left; + width: 100%; + } + .control { + clear: left; + float: none; + width: 100%; + } } -} -// -// Form currency label -// -------------------------------------- + // + // Form currency label + // -------------------------------------- -.addon { - input[type="text"] { - border-width: 1px 1px 1px 0; - ~ .addafter strong { - .field-price & { - font-size: 18px; + .addon { + input[type="text"] { + border-width: 1px 1px 1px 0; + ~ .addafter strong { + display: inline-block; + background: #fff; + line-height: 24px; + margin: 0 3px 0 0; + padding-left: 4px; + padding-right: 4px; + position: relative; + font-size: 14px; + font-weight: 400; + color: #858585; + top: 0; } - display: inline-block; - background: #fff; - line-height: 24px; - margin: 0 3px 0 0; - padding-left: 4px; - padding-right: 4px; - position: relative; - font-size: 14px; - font-weight: 400; - color: #858585; - top: 0; - } - &:focus ~ .addafter { - border-color: #007bdb; - strong { - margin-top: 0; + &:focus ~ .addafter { + border-color: #007bdb; + strong { + margin-top: 0; + } } } - } - .addafter { - background: none; - color: #a6a6a6; - border-width: 1px 1px 1px 0; - border-radius: 1px 1px 0 0; - padding: 0; - border-color: #ada89e; - } - input[type="text"], - select { - &[disabled], - &[readonly] { - ~ .addafter { - border-color: #eee; - color: #999; + .addafter { + background: none; + color: #a6a6a6; + border-width: 1px 1px 1px 0; + border-radius: 1px 1px 0 0; + padding: 0; + border-color: #ada89e; + } + input[type="text"], + select { + &[disabled], + &[readonly] { + ~ .addafter { + background-color: #e9e9e9; + border-color: #adadad; + color: #303030; + opacity: .5; + cursor: not-allowed; + } } } + .pager input { + border-width: 1px; + } } - .pager input { - border-width: 1px; + + .field-price .addon input[type="text"] ~ .addafter strong { + font-size: 18px; } -} -.field-weight { - .addon { - input[type="text"] { - border-width: 1px 0 1px 1px; + .field-weight, + .field-base_price { + .addon { + input[type="text"] { + border-width: 1px 0 1px 1px; + } } } -} - -.field.type-price .addon, -.field-price .addon, -.field-special_price .addon, -.field-msrp .addon { - direction: rtl; -} - -.field.type-price .addon > *, -.field-price .addon > *, -.field-special_price .addon > *, -.field-msrp .addon > * { - direction: ltr; -} - -.field.type-price .addon .addafter, -.field-price .addon .addafter, -.field-special_price .addon .addafter, -.field-msrp .addon .addafter { - border-width: 1px 0 1px 1px; - border-radius: 1px 0 0 1px; -} - -.field.type-price .addon input[type=text]:first-child, -.field-price .addon input[type=text]:first-child, -.field-special_price .addon input[type=text]:first-child, -.field-msrp .addon input[type=text]:first-child { - border-radius: 0 1px 1px 0; -} - -.field.type-price input:focus, -.field-price input:focus, -.field-special_price input:focus, -.field-msrp input:focus { - border-color: #007bdb; -} -.field.type-price input:focus ~ label.addafter, -.field-price input:focus ~ label.addafter, -.field-special_price input:focus ~ label.addafter, -.field-msrp input:focus ~ label.addafter { - border-color: #007bdb; -} - -.field.type-price input ~ label.addafter strong, -.field-price input ~ label.addafter strong, -.field-special_price input ~ label.addafter strong, -.field-msrp input ~ label.addafter strong, -.field-gift_wrapping_price input ~ label.addafter strong { - margin-left: 2px; - margin-right: -2px; -} + .field.type-price .addon, + .field-price .addon, + .field-special_price .addon, + .field-msrp .addon { + direction: rtl; + } -/* - Details element --------------------------------------- */ -summary { - cursor: pointer; - display: inline-block; -} + .field.type-price .addon > *, + .field-price .addon > *, + .field-special_price .addon > *, + .field-msrp .addon > * { + direction: ltr; + } -.no-details details > * { - display: none; -} + .field.type-price .addon .addafter, + .field-price .addon .addafter, + .field-special_price .addon .addafter, + .field-msrp .addon .addafter { + border-width: 1px 0 1px 1px; + border-radius: 1px 0 0 1px; + } -.no-details details > summary:before { - float: left; - width: 20px; - content: 'â–º '; -} + .field.type-price .addon input[type=text]:first-child, + .field-price .addon input[type=text]:first-child, + .field-special_price .addon input[type=text]:first-child, + .field-msrp .addon input[type=text]:first-child { + border-radius: 0 1px 1px 0; + } -.no-details details.open > summary:before { - content: 'â–¼ '; -} + .field.type-price input:focus, + .field-price input:focus, + .field-special_price input:focus, + .field-msrp input:focus { + border-color: #007bdb; + } -.no-details details summary { - display: block; -} + .field.type-price input:focus ~ label.addafter, + .field-price input:focus ~ label.addafter, + .field-special_price input:focus ~ label.addafter, + .field-msrp input:focus ~ label.addafter { + border-color: #007bdb; + } -/* - Blockquotes --------------------------------------- */ -blockquote { - border-left: 2px solid #ccc; - padding-left: 5px; -} + .field.type-price input ~ label.addafter strong, + .field-price input ~ label.addafter strong, + .field-special_price input ~ label.addafter strong, + .field-msrp input ~ label.addafter strong, + .field-gift_wrapping_price input ~ label.addafter strong { + margin-left: 2px; + margin-right: -2px; + } -blockquote small:before { - content: '\2014 \00A0'; -} + // + // Details element + // -------------------------------------- -/* - Addresses --------------------------------------- */ -address { - font-style: normal; -} + summary { + cursor: pointer; + display: inline-block; + } -/* - X-tree styles --------------------------------------- */ -.x-tree-node .leaf .x-tree-node-icon { - background-image: url(../images/fam_leaf.png); -} + .no-details details > * { + display: none; + } -.x-tree-node .system-leaf .x-tree-node-icon { - background-image: url(../images/fam_application_form_delete.png); -} + .no-details details > summary:before { + float: left; + width: 20px; + content: 'â–º '; + } -/* - Styles for "js" tooltip with positionings --------------------------------------- */ -.tipsy { - padding: 11px; -} + .no-details details.open > summary:before { + content: 'â–¼ '; + } -.tipsy-inner { - padding: 12px 15px; - max-width: 185px; - background: #faf8f6; - border: 1px solid #dcd8ce; - box-shadow: 0 2px 5px rgba(49, 48, 43, .4); -} + .no-details details summary { + display: block; + } -.tipsy-inner .error { - width: 158px; -} + // + // Blockquotes + // -------------------------------------- -.tipsy-inner .error h5 { - color: #be0a0a; - font-size: 16px; - font-weight: 500; - margin: 0 0 6px; -} + blockquote { + border-left: 2px solid #ccc; + padding-left: 5px; + } -.tipsy-inner .error p { - color: #676056; - line-height: 1.5; - margin: 0; -} + blockquote small:before { + content: '\2014 \00A0'; + } -.tipsy-e .tipsy-arrow { - top: 50%; - left: 1px; - margin-top: -10px; - border-top: 10px solid transparent; - border-right: 10px solid #dcd8ce; - border-bottom: 10px solid transparent; - border-left: none; -} + // + // Addresses + // -------------------------------------- -.tipsy-w .tipsy-arrow { - top: 50%; - right: 0; - margin-top: -10px; - border-top: 10px solid transparent; - border-right: none; - border-bottom: 10px solid transparent; - border-left: 10px solid #dcd8ce; -} + address { + font-style: normal; + } -.tipsy-n .tipsy-arrow, -.tipsy-ne .tipsy-arrow, -.tipsy-nw .tipsy-arrow { - bottom: 1px; - border-top: 10px solid #dcd8ce; - border-right: 10px solid transparent; - border-bottom: none; - border-left: 10px solid transparent; -} + // + // X-tree styles + // -------------------------------------- -.tipsy-ne .tipsy-arrow { - left: 16px; -} + .x-tree-node .leaf .x-tree-node-icon { + background-image: url(../images/fam_leaf.png); + } -.tipsy-nw .tipsy-arrow { - right: 16px; -} + .x-tree-node .system-leaf .x-tree-node-icon { + background-image: url(../images/fam_application_form_delete.png); + } -.tipsy-s .tipsy-arrow, -.tipsy-se .tipsy-arrow, -.tipsy-sw .tipsy-arrow { - top: 1px; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-bottom: 10px solid #dcd8ce; - border-top: none; -} + // + // Styles for "js" tooltip with positionings + // -------------------------------------- -.tipsy-se .tipsy-arrow { - left: 16px; -} + .tipsy { + padding: 11px; + } -.tipsy-sw .tipsy-arrow { - right: 16px; -} + .tipsy-inner { + padding: 12px 15px; + max-width: 185px; + background: #faf8f6; + border: 1px solid #dcd8ce; + box-shadow: 0 2px 5px rgba(49, 48, 43, .4); + } -.tipsy-arrow:after, -.tipsy-arrow:before { - position: absolute; - width: 0; - height: 0; - content: ''; -} + .tipsy-inner .error { + width: 158px; + } -.tipsy-e .tipsy-arrow:after { - top: -5px; - left: 2px; - margin-top: -4px; - border-top: 9px solid transparent; - border-right: 9px solid #faf8f6; - border-bottom: 9px solid transparent; -} + .tipsy-inner .error h5 { + color: #be0a0a; + font-size: 16px; + font-weight: 500; + margin: 0 0 6px; + } -.tipsy-e .tipsy-arrow:before { - top: -8px; - margin-top: 0; - border-top: 10px solid transparent; - border-right: 10px solid rgba(49, 48, 43, .1); - border-bottom: 10px solid transparent; -} + .tipsy-inner .error p { + color: #676056; + line-height: 1.5; + margin: 0; + } -.tipsy-w .tipsy-arrow:after { - top: -5px; - left: -12px; - margin-top: -4px; - border-top: 9px solid transparent; - border-right: none; - border-bottom: 9px solid transparent; - border-left: 9px solid #faf8f6; -} + .tipsy-e .tipsy-arrow { + top: 50%; + left: 1px; + margin-top: -10px; + border-top: 10px solid transparent; + border-right: 10px solid #dcd8ce; + border-bottom: 10px solid transparent; + border-left: none; + } -.tipsy-w .tipsy-arrow:before { - top: -8px; - left: -10px; - margin-top: 0; - border-top: 10px solid transparent; - border-right: none; - border-bottom: 10px solid transparent; - border-left: 10px solid rgba(49, 48, 43, .1); -} + .tipsy-w .tipsy-arrow { + top: 50%; + right: 0; + margin-top: -10px; + border-top: 10px solid transparent; + border-right: none; + border-bottom: 10px solid transparent; + border-left: 10px solid #dcd8ce; + } -.tipsy-n .tipsy-arrow:after, -.tipsy-ne .tipsy-arrow:after, -.tipsy-nw .tipsy-arrow:after { - margin-top: -4px; - left: -9px; - top: -7px; - border-top: 9px solid #faf8f6; - border-right: 9px solid transparent; - border-left: 9px solid transparent; -} + .tipsy-n .tipsy-arrow, + .tipsy-ne .tipsy-arrow, + .tipsy-nw .tipsy-arrow { + bottom: 1px; + border-top: 10px solid #dcd8ce; + border-right: 10px solid transparent; + border-bottom: none; + border-left: 10px solid transparent; + } -.tipsy-n .tipsy-arrow:before, -.tipsy-ne .tipsy-arrow:before, -.tipsy-nw .tipsy-arrow:before { - left: -10px; - top: -8px; - margin-top: 0; - border-top: 10px solid rgba(49, 48, 43, .1); - border-right: 10px solid transparent; - border-left: 10px solid transparent; -} + .tipsy-ne .tipsy-arrow { + left: 16px; + } -.tipsy-s .tipsy-arrow:after, -.tipsy-sw .tipsy-arrow:after, -.tipsy-se .tipsy-arrow:after { - left: -9px; - top: 6px; - margin-top: -4px; - border-top: none; - border-right: 9px solid transparent; - border-bottom: 9px solid #faf8f6; - border-left: 9px solid transparent; -} + .tipsy-nw .tipsy-arrow { + right: 16px; + } -.tipsy-inner dl { - margin: 0; -} + .tipsy-s .tipsy-arrow, + .tipsy-se .tipsy-arrow, + .tipsy-sw .tipsy-arrow { + top: 1px; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-bottom: 10px solid #dcd8ce; + border-top: none; + } -.tipsy-inner dt { - margin: 0 0 4px; - font-size: 16px; - font-weight: 400; - color: #f47b20; -} + .tipsy-se .tipsy-arrow { + left: 16px; + } -.tipsy-inner dd { - margin: 0; - color: #676056; - font-size: 12px; - line-height: 18px; - font-family: Arial, Helvetica, sans-serif; -} + .tipsy-sw .tipsy-arrow { + right: 16px; + } -/* - Popups --------------------------------------- */ -.fade .popup { - padding: 0; - border: 5px solid #969288; - border-radius: 8px; -} + .tipsy-arrow:after, + .tipsy-arrow:before { + position: absolute; + width: 0; + height: 0; + content: ''; + } -.wrapper-popup { - padding: 0 10px; -} + .tipsy-e .tipsy-arrow:after { + top: -5px; + left: 2px; + margin-top: -4px; + border-top: 9px solid transparent; + border-right: 9px solid #faf8f6; + border-bottom: 9px solid transparent; + } -.fade .popup .popup-inner { - padding: 20px; - border-radius: 3px; -} + .tipsy-e .tipsy-arrow:before { + top: -8px; + margin-top: 0; + border-top: 10px solid transparent; + border-right: 10px solid rgba(49, 48, 43, .1); + border-bottom: 10px solid transparent; + } -.fade .popup .popup-title { - margin: 0 0 10px; -} + .tipsy-w .tipsy-arrow:after { + top: -5px; + left: -12px; + margin-top: -4px; + border-top: 9px solid transparent; + border-right: none; + border-bottom: 9px solid transparent; + border-left: 9px solid #faf8f6; + } -.popup-loading { - position: fixed; - z-index: 1003; - width: 200px; - background: rgba(255, 255, 255, .8); - left: 50%; - top: 40%; - margin-left: -100px; - color: #d85909; - border-color: #d85909; - font-size: 14px; - font-weight: bold; - text-align: center; - padding: 100px 0 10px; -} + .tipsy-w .tipsy-arrow:before { + top: -8px; + left: -10px; + margin-top: 0; + border-top: 10px solid transparent; + border-right: none; + border-bottom: 10px solid transparent; + border-left: 10px solid rgba(49, 48, 43, .1); + } -.popup-loading:after { - position: absolute; - left: 50%; - top: 40%; - background-image: url(../mui/images/ajax-loader-big.gif); - width: 64px; - height: 64px; - margin: -32px 0 0 -32px; - content: ''; - z-index: 2; -} + .tipsy-n .tipsy-arrow:after, + .tipsy-ne .tipsy-arrow:after, + .tipsy-nw .tipsy-arrow:after { + margin-top: -4px; + left: -9px; + top: -7px; + border-top: 9px solid #faf8f6; + border-right: 9px solid transparent; + border-left: 9px solid transparent; + } -/* Loading mask */ -.loading-old, -.loading-mask { - background: rgba(255, 255, 255, .4); - z-index: 999; -} + .tipsy-n .tipsy-arrow:before, + .tipsy-ne .tipsy-arrow:before, + .tipsy-nw .tipsy-arrow:before { + left: -10px; + top: -8px; + margin-top: 0; + border-top: 10px solid rgba(49, 48, 43, .1); + border-right: 10px solid transparent; + border-left: 10px solid transparent; + } -.loading-old, -.loading-mask { - position: fixed; - left: 0; - top: 0; - right: 0; - bottom: 0; -} + .tipsy-s .tipsy-arrow:after, + .tipsy-sw .tipsy-arrow:after, + .tipsy-se .tipsy-arrow:after { + left: -9px; + top: 6px; + margin-top: -4px; + border-top: none; + border-right: 9px solid transparent; + border-bottom: 9px solid #faf8f6; + border-left: 9px solid transparent; + } -.loading-old .loader, -.loading-mask .loader { - position: absolute; - margin: auto; - left: 0; - top: 0; - right: 0; - bottom: 0; - width: 160px; - height: 160px; - color: #5e5b56; - font-size: 14px; - font-weight: bold; - text-align: center; - background: #e5e2dd url(../mui/images/ajax-loader-big.gif) no-repeat 50% 30%; - border-radius: 5px; - opacity: .95; -} + .tipsy-inner dl { + margin: 0; + } -.loading-mask img { - display: none; -} + .tipsy-inner dt { + margin: 0 0 4px; + font-size: 16px; + font-weight: 400; + color: #f47b20; + } -.loading-old p, -.loading-mask p { - margin-top: 118px; -} + .tipsy-inner dd { + margin: 0; + color: #676056; + font-size: 12px; + line-height: 18px; + font-family: Arial, Helvetica, sans-serif; + } -/* Backup popup */ -/* TODO: remove after backups page js refactoring */ -.backup-dialog { - margin-top: inherit !important; -} + // Backup popup + // TODO: remove after backups page js refactoring + .backup-dialog { + margin-top: inherit !important; + } +// +// .side-col { +// box-sizing: border-box; +// padding-bottom: 20px; +// padding-right: 10px; +// position: relative; +// width: 25%; +// } +// +// .main-col { +// position: relative; +// width: 75%; +// padding: 0 20px 20px; +// box-sizing: border-box; +// } + + .col-left { + float: left; + } -/* - Page Structure --------------------------------------- */ - -//.page-title-wrapper-wrapper.complex .title { -// float: left; -// width: 70%; -// overflow: hidden; -// text-overflow: ellipsis; -// white-space: nowrap; -//} - -//.page-title-wrapper.complex .store-switcher-alt { -// float: right; -// margin: 12px 0 0; -//} - -.side-col { - padding-bottom: 20px; - position: relative; - width: 20%; -} + .col-right { + float: right; + } -.main-col { - position: relative; - width: 80%; - padding: 0 20px 20px; - box-sizing: border-box; -} + .col-1-layout { + .main-col { + width: auto; + } + } -.col-left { - float: left; -} + .col-2-left-layout, + .col-1-layout { + margin: 0 auto; + position: relative; + } -.col-right { - float: right; -} + .col-2-left-layout { + &:before { + position: absolute; + content: ""; + background-color: #fff; + right:0; + top: 0; + bottom: 0; + min-width: 730px; + width: 80%; + } +// .main-col { +// padding-right: 0; +// padding-left: 0; +// float: right; +// } +// .side-col { +// float: left; +// } + } -.col-1-layout { - .main-col { - width: auto; +// .col-2-right-layout { +// .side-col { +// float: right; +// } +// .main-col { +// float: left; +// } +// } + + .col-2-left-layout .main-col, + .col-2-right-layout .main-col { + min-width: 730px; } -} -.col-2-left-layout, -.col-1-layout { - background: #f7f3eb; - margin: 0 auto; - position: relative; -} + // + // Horizontal Tabs + // -------------------------------------- -.col-2-left-layout { - padding-top: 20px; - &:before { - position: absolute; - content: ""; - background-color: #fff; - right:0; - top: 0; - bottom: 0; - min-width: 730px; - width: 80%; + .ui-tabs { + clear: both; + margin-bottom: 0; } - .main-col { - padding-right: 0; - padding-left: 0; - float: right; + .tabs-horiz { + list-style: none; + margin: 0; + padding: 3px 0 0; } - .side-col { + + .tabs-horiz > li { float: left; + margin: 0 5px 0 0; } -} -.col-2-right-layout { - .side-col { - float: right; + .tabs-horiz .ui-tabs-anchor { + position: relative; + display: block; + text-decoration: none; + .style7(); + background: #e0dacf; + padding: 11px 15px 13px; + border-radius: 2px 2px 0 0; } - .main-col { - float: left; + + .tabs-horiz > .ui-state-active .ui-tabs-anchor { + background: #fff; } -} -.col-2-left-layout .main-col, -.col-2-right-layout .main-col { - min-width: 730px; -} + // + // Switcher + // -------------------------------------- -/* Sidebar title */ -/* TODO: temporary styles */ -.side-col h3 { - padding: 0 17px; - margin-top: 16px; -} + .switcher { + -webkit-touch-callout: none; + -webkit-user-select: none; // use in 41 Chrome + -moz-user-select: none; // use in 36 Firefox + -ms-user-select: none; // use in 11 IE + user-select: none; + cursor: pointer; + display: inline-block; + overflow: hidden; + } -.side-col .ui-tabs h3 { - margin-bottom: 5px; - color: #524c44; - text-shadow: 0 1px 0 #fff; -} + .switcher input[type="checkbox"] { + position: absolute; + left: -999em; + } -// -// Universal Sidebar Tabs -// -------------------------------------- -// TODO: for "Product" page only while refactoring */ -.side-col .ui-tabs .ui-accordion-header { - margin: 10px 0 0; - padding: 0; - &:focus { - outline: none; - } - span { - color: #524c44; - cursor: pointer; - display: block; - position: relative; - padding: 5px 20px; - text-shadow: 0 1px 0 #fff; - &:before { - position: absolute; - left: 4px; - top: 7px; - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e02a'; // arrow right icon - font-size: 14px; - color: #ada79e; - } + .switcher-label { + .style2(); + text-transform: uppercase; } - &:hover { - span:before { - color: #777; - } + + .switcher-label:after { + display: inline-block; + margin-left: 10px; + vertical-align: bottom; + width: 34px; + height: 17px; + background: url(../images/switcher.png) no-repeat; + content: ''; } - &-active span:before { - content: '\e02c'; // arrow down icon + + .switcher input[type="checkbox"] + .switcher-label:before { + content: attr(data-text-off); + background: none; + border-radius: 0; + border: none; + float: none; + font-size: 14px; + height: auto; + line-height: normal; + margin: 0; + text-align: left; + width: auto; } -} -.side-col .tabs { - margin: 0 0 30px; - padding: 0; - list-style: none; - font-weight: 500; -} + .switcher input[type="checkbox"]:focus + .switcher-label:after { + border-color: #007bdb; + } -.side-col > .ui-tabs > .tabs:first-child > li:first-child > a { - border-top-left-radius: 5px; -} + .switcher input[type="checkbox"]:checked + .switcher-label:after { + background-position: -34px 0; + } -.side-col .tabs > li { - border-bottom: 1px solid #e5e1db; -} + .switcher input[type="checkbox"]:checked + .switcher-label:before { + content: attr(data-text-on); + } -.side-col .tabs > li:first-child { - border-top: 1px solid #e5e1db; -} + // + // Content actions panel (with buttons, switchers...) + // -------------------------------------- -.side-col .tabs > li a { - position: relative; - display: block; - padding: 8px 18px; - text-decoration: none; - color: #676056; - transition: background .3s ease-in-out; -} + // .page-actions { + // padding: 0 0 20px; + // text-align: right; + // } -.side-col .tabs > li a:hover { - background: #fff; -} + .page-actions .buttons-group { + vertical-align: top; + text-align: left; + } -.side-col .tabs > .ui-state-active a { - border-left: 3px solid #d87e34; - padding-left: 15px; - background: #dedcd8; - box-shadow: 0 1px 2px #ccc inset; -} + .page-actions > .switcher { + display: inline-block; + vertical-align: top; + margin: 6px 10px 0 0; + } -.side-col .tabs > .ui-state-active a:after, -.side-col .tabs > .ui-state-active a:before { - position: absolute; - top: 50%; - right: 0; - width: 14px; - margin-top: -14px; - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e02b'; /* left turned triangle icon */ - font-size: 22px; - color: #fff; - overflow: hidden; - z-index: 4; -} + // .main-col .page-actions { + // padding: 20px 0; + // } -.side-col .tabs > .ui-state-active a:before { - color: #bdbbb7; - margin-top: -13px; - z-index: 3; -} + .catalog-product-index .page-actions { + padding-top: 0; + } -.side-col .tabs span.error, -.side-col .tabs span.loader { - display: none; - position: absolute; - right: 12px; - top: 7px; - width: 16px; - height: 16px; - font-size: 16px; -} + [class^=" catalog-product-"] .store-scope .store-tree { + float: left; + } -.side-col .tab-item-link.changed { - font-style: italic; -} + // TODO: refactor trees + .x-tree ul { + margin: 0; + padding: 0; + } -.side-col .tab-item-link.error span.error, -.side-col .ui-tabs-loading span.loader { - display: block; -} + .tree-wrapper { + width: 100%; + overflow: auto; + float: left; // Fixed Chrome scroll issue + } -.side-col .tab-item-link.error span.error:after { - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e006'; /* warning icon */ - color: #d87e34; -} + .page-actions.fixed .page-actions-inner:before { + content: attr(data-title); + float: left; + font-size: 20px; + max-width: 50%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } -.side-col .ui-tabs-loading span.loader:after { - background: url(../mui/images/ajax-loader-small.gif) no-repeat 50% 50%; - display: block; - content: ''; - width: 16px; - height: 16px; -} + // Dynamic Grid + // Used in pages like Catalog -> Attributes + .dynamic-grid th { + padding: 2px; + width: 100px; + } -/* TODO: styles for navigation on System > Configuration page */ + .dynamic-grid td { + padding: 2px; + } -/* - Horizontal Tabs --------------------------------------- */ -.ui-tabs { - clear: both; -} -.tabs-horiz { - list-style: none; - margin: 0; - padding: 3px 0 0; -} + .dynamic-grid td input { + width: 94px; + } -.tabs-horiz > li { - float: left; - margin: 0 5px 0 0; -} + tr.dynamic-grid td, + tr.dynamic-grid th { + padding: 2px 10px 2px 0; + width: auto; + } -.tabs-horiz .ui-tabs-anchor { - position: relative; - display: block; - text-decoration: none; - .style7(); - background: #e0dacf; - padding: 11px 15px 13px; - border-radius: 2px 2px 0 0; -} + tr.dynamic-grid input.input-text { + width: 154px; + } -.tabs-horiz > .ui-state-active .ui-tabs-anchor { - background: #fff; -} + .available { + color: #080; + font-weight: bold; + } -/* - System -> Configuration page navigation in sidebar --------------------------------------- */ -.config-nav, -.config-nav .items { - margin: 0; - padding: 0; - list-style: none; -} + .not-available { + color: #800; + } -.config-nav-block { + .categories-side-col { + padding: 0 3%; + } -} + // + // Website store views tree + // -------------------------------------- + .store-tree { + .website-name { + font-size: 14px; + font-weight: bold; + } + .webiste-groups { + margin: 5px 0 20px 18px; + dt { + font-weight: bold; + } + dd { + margin: 5px 0 15px 15px; + > ul { + list-style: none; + margin: 0; + padding: 0; + > li { + margin: 0 0 5px; + } + } + } + } + } -.config-nav-block:last-child { - margin-bottom: 30px; -} + // + // Customer Reviews + // -------------------------------------- + .field-detailed_rating { + .control-value { + padding: 0; + } + .nested { + padding: 0; + } + .field-rating { + margin: 15px 0 0; + &:first-child { + margin-top: 0; + } + .label { + width: 75px; + } + .control { + unicode-bidi: bidi-override; + direction: rtl; + width: 125px; + label { + color: #ccc; + cursor: pointer; + font-size: 18px; + float: right; + overflow: hidden; + white-space: nowrap; + width: 18px; + transition: color 150ms linear; + &:before { + display: none; + } + } + } + } + input[type="radio"] { + display: none; + } + } -.config-nav .item { - border-top: 1px solid #E5E1DB; -} + // + // Tree Store Scope + // -------------------------------------- + .tree-store-scope { + .buttons-set { + margin-bottom: 9px; + button { + margin-right: 4px; + } + } + .field { + margin: 0 0 5px; + input[type="checkbox"] { + margin-right: 8px; + position: relative; + top: 2px; + } + .addafter { + display: inline-block; + padding-top: 6px; + } + } + [class^="field field-website_"] .label, + [class^="field field-group_"] .label, + [class^="field field-w_"] .label, + [class^="field field-sg_"] .label { + text-align: left; + font-size: 18px; + padding-right: 0; + width: auto; + } + [class^="field field-group_"] .label, + [class^="field field-sg_"] .label { + padding-left: 20px; + } + .tooltip .help { + margin-top: 11px; + } + } -.config-nav .item:first-child { - border-top: 0; -} + // + // Widgets + // -------------------------------------- + .widget-layout-updates .fieldset-wrapper, + .widget-layout-updates .data-table { + margin: 0 0 18px; + } -.config-nav .title { - margin-bottom: 0; - text-transform: uppercase; - color: #444; - border: solid #CCC; - border-width: 1px 0; - opacity: .8; - padding: 7px 17px; - background: #E6E3DE; -} + .widget-layout-updates .fieldset-wrapper-title label { + &:not(.mage-error) { + padding: 10px 0 0; + } + } -.config-nav .item-nav { - display: block; - padding: 8px 18px; - text-decoration: none; - color: #676056; - transition: background .3s ease-in-out; -} + .widget-layout-updates .fieldset-wrapper-title select { + margin: 3px 10px 5px; + } -.config-nav .item-nav:hover { - background: #fff; -} + .widget-layout-updates .fieldset-wrapper-title span, + .widget-layout-updates .fieldset-wrapper-title select { + vertical-align: middle; + } -.config-nav .item-nav.active { - position: relative; - border-left: 3px solid #d87e34; - padding-left: 15px; - background: #dedcd8; - box-shadow: 0 1px 2px #ccc inset; -} + .widget-layout-updates .data-table { + table-layout: fixed; + } -.config-nav .item-nav.active:after { - position: absolute; - top: 50%; - right: 0; - width: 14px; - margin-top: -14px; - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e02b'; /* left turned triangle icon */ - font-size: 22px; - text-shadow: -1px 1px 0 #bdbbb7; - color: #fff; - overflow: hidden; - z-index: 3; -} + .widget-layout-updates .data-table, + .widget-layout-updates .data-table tr:nth-child(odd) td, + .widget-layout-updates .data-table tr:nth-child(odd):hover td { + background: none; + border: none; + } + .widget-layout-updates .data-table th, + .widget-layout-updates .data-table tbody td { + border: none; + padding: 5px 10px; + } -/* - Switcher --------------------------------------- */ -.switcher { - -webkit-touch-callout: none; - -webkit-user-select: none; // use in 41 Chrome - -moz-user-select: none; // use in 36 Firefox - -ms-user-select: none; // use in 11 IE - user-select: none; - cursor: pointer; - display: inline-block; - overflow: hidden; -} + .widget-layout-updates .data-table select { + margin: 0; + max-width: 99%; + overflow: hidden; + } -.switcher input[type="checkbox"] { - position: absolute; - left: -999em; -} + .widget-layout-updates .chooser_container { + padding: 0 10px; + margin-bottom: 18px; + } -.switcher-label { - .style2(); - text-transform: uppercase; -} + .widget-layout-updates .chooser_container p { + margin: 0 0 18px; + } -.switcher-label:after { - display: inline-block; - margin-left: 10px; - vertical-align: bottom; - width: 34px; - height: 17px; - background: url(../images/switcher.png) no-repeat; - content: ''; -} + .widget-layout-updates .chooser_container p img, + .widget-layout-updates .chooser_container p input { + vertical-align: middle; + } -.switcher input[type="checkbox"] + .switcher-label:before { - content: attr(data-text-off); - background: none; - border-radius: 0; - border: none; - float: none; - font-size: 14px; - height: auto; - line-height: normal; - margin: 0; - text-align: left; - width: auto; -} + // + // Preview window + // -------------------------------------- -.switcher input[type="checkbox"]:focus + .switcher-label:after { - border-color: #007bdb; -} + .preview-window { + background: #fff; + } -.switcher input[type="checkbox"]:checked + .switcher-label:after { - background-position: -34px 0; -} + .preview-window .toolbar { + background: #f5f2ed; + padding: 20px; + } -.switcher input[type="checkbox"]:checked + .switcher-label:before { - content: attr(data-text-on); -} + .preview-window .toolbar .switcher { + margin: 0; + } -/* - Content actions panel (with buttons, switchers...) --------------------------------------- */ -// .page-actions { -// padding: 0 0 20px; -// text-align: right; -// } - -.page-actions .buttons-group { - vertical-align: top; - text-align: left; -} + .preview-window .toolbar .switcher span { + background: none; + width: auto; + } -.page-actions > .switcher { - display: inline-block; - vertical-align: top; - margin: 6px 10px 0 0; -} + // + // Global 'No Products found' block + // -------------------------------------- -// .main-col .page-actions { -// padding: 20px 0; -// } + .no-products-message { + background: #fbfaf6; + padding: 12px; + text-align: center; + font-size: 12px; + color: #666; + margin-bottom: 13px; + } -.catalog-product-index .page-actions { - padding-top: 0; -} + // + // WYSIWYG + // -------------------------------------- -[class^=" catalog-product-"] .store-scope .store-tree { - float: left; -} + .action-wysiwyg { + margin: 10px 0; + } -// TODO: refactor trees -.x-tree ul { - margin: 0; - padding: 0; -} + #catalog-wysiwyg-editor .buttons-set { + margin-bottom: 9px; + } -.tree-wrapper { - width: 100%; - overflow: auto; - float: left; // Fixed Chrome scroll issue -} + #catalog-wysiwyg-editor .buttons-set button { + margin-right: 4px; + } -.page-actions.fixed .page-actions-inner:before { - content: attr(data-title); - float: left; - font-size: 20px; - max-width: 50%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} + // + // Add Attribute Popup + // -------------------------------------- -/* Dynamic Grid */ -/* Used in pages like Catalog -> Attributes */ -.dynamic-grid th { - padding: 2px; - width: 100px; -} + #create_new_attribute { + overflow: hidden; + } -.dynamic-grid td { - padding: 2px; -} + #create_new_attribute > .loading-mask { + left: -25px; + top: -50px; + } -.dynamic-grid td input { - width: 94px; -} + .attribute-popup { + background: none; + } -tr.dynamic-grid td, -tr.dynamic-grid th { - padding: 2px 10px 2px 0; - width: auto; -} + .attribute-popup #edit_form { + display: block; + > div:last-of-type { + margin-bottom: 150px; + } + } -tr.dynamic-grid input.input-text { - width: 154px; -} + .attribute-popup #edit_form > .fieldset > .legend { + display: none; + } -.available { - color: #080; - font-weight: bold; -} + .attribute-popup .wrapper-popup { + padding: 0; + height: 511px; + overflow-x: hidden; + overflow-y: auto; + } -.not-available { - color: #800; -} + .attribute-popup .fieldset, + .attribute-popup .fieldset-wrapper { + border: none; + border-radius: 0; + padding: 4px 0 20px; + margin: 0 23px 20px; + } -.categories-side-col { - padding: 0 3%; -} + .attribute-popup .fieldset-wrapper { + border-top: none; + } -// -// Website store views tree -// -------------------------------------- -.store-tree { - .website-name { + .attribute-popup .fieldset-wrapper:not(.collapsable-wrapper) .fieldset-wrapper-title { + border-bottom: none; + } + + .attribute-popup .fieldset-wrapper .fieldset-wrapper-content > .fieldset { + margin-left: 0; + margin-right: 0; + } + + .attribute-popup .fieldset > .field > input[type="checkbox"] { + margin-top: 7px; + } + + .attribute-popup .fieldset .label { + width: 35%; + } + + .attribute-popup .collapsable-wrapper, + #manage-titles-wrapper .fieldset-wrapper-title { + margin-bottom: 0; + padding-bottom: 0; + } + + .attribute-popup .collapsable-wrapper .fieldset-wrapper-title > .title:before { + color: #797269; font-size: 14px; - font-weight: bold; + top: 9px; } - .webiste-groups { - margin: 5px 0 20px 18px; - dt { - font-weight: bold; - } - dd { - margin: 5px 0 15px 15px; - > ul { - list-style: none; - margin: 0; - padding: 0; - > li { - margin: 0 0 5px; - } - } - } + + .attribute-popup form .entry-edit:first-child .fieldset { + border-bottom: 1px solid #dfdcd7; } -} -// -// Customer Reviews -// -------------------------------------- -.field-detailed_rating { - .control-value { - padding: 0; + .attribute-popup .fieldset .legend { + border: none; } - .nested { - padding: 0; + + .attribute-popup .page-actions [class^='action-'] { + margin-left: 18px; } - .field-rating { - margin: 15px 0 0; - &:first-child { - margin-top: 0; - } - .label { - width: 75px; - } - .control { - unicode-bidi: bidi-override; - direction: rtl; - width: 125px; - label { - color: #ccc; - cursor: pointer; - font-size: 18px; - float: right; - overflow: hidden; - white-space: nowrap; - width: 18px; - transition: color 150ms linear; - &:before { - display: none; - } - } - } + + .attribute-popup #base_fieldset { + padding-top: 20px; } - input[type="radio"] { + + .attribute-popup #base_fieldset > .legend { display: none; } -} -// -// Tree Store Scope -// -------------------------------------- -.tree-store-scope { - .buttons-set { - margin-bottom: 9px; - button { - margin-right: 4px; + .attribute-popup .page-actions-placeholder { + display: none; + } + + .attribute-popup .page-actions.fixed .page-actions-inner { + background: #fff; + padding: 0; + min-width: 100%; + max-width: 100%; + min-height: 100%; + margin: 0; + } + + .attribute-popup .footer { + display: none; + } + + #manage-options-panel > .data-table { + clear: both; + } + + // Custom grids view + .CustomGridView { + .page-layout-admin-1column .page-columns { + background: transparent; } } - .field { - margin: 0 0 5px; - input[type="checkbox"] { - margin-right: 8px; - position: relative; - top: 2px; + + // Custom grid action view for Primary Add Button at grid tables + .CustomGridAction { + .grid-actions { + border-radius: 5px 5px 0 0; + margin-top: 20px; + padding: 9px 15px; } - .addafter { - display: inline-block; - padding-top: 6px; + .page-actions.fixed { + left: 0; + margin: 0; + padding: 0 21px; + position: fixed; + } + .page-actions { + position: absolute; + z-index: 2; + margin-top: 10px; + margin-left: 15px; + padding: 0; } } - [class^="field field-website_"] .label, - [class^="field field-group_"] .label, - [class^="field field-w_"] .label, - [class^="field field-sg_"] .label { - text-align: left; - font-size: 18px; - padding-right: 0; - width: auto; - } - [class^="field field-group_"] .label, - [class^="field field-sg_"] .label { - padding-left: 20px; + + // Custom page-actions view + .sidebar-actions { + padding: 14px 0; } - .tooltip .help { - margin-top: 11px; + + .sidebar-actions button { + margin: 0 0 5px; } -} -// -// Widgets -//-------------------------------------- -.widget-layout-updates .fieldset-wrapper, -.widget-layout-updates .data-table { - margin: 0 0 18px; -} -.widget-layout-updates .fieldset-wrapper-title label { - &:not(.mage-error) { - padding: 10px 0 0; + .data-table .fpt-item-container { + td { + vertical-align: top; + } + select:first-child { + margin-bottom: 8px; + } } -} -.widget-layout-updates .fieldset-wrapper-title select { - margin: 3px 10px 5px; -} + // Clearfix + .clearfix:before, + .clearfix:after, + [class$="-layout"]:after, + .tabs-horiz:before, + .tabs-horiz:after, + .page-create-order:before, + .page-create-order:after, + .order-addresses:before, + .order-addresses:after, + .order-methods:before, + .order-methods:after, + .order-summary:before, + .order-summary:after, + .order-methods:before, + .order-methods:after, + .grid-actions:before, + .grid-actions:after, + .fieldset-wrapper-title:before, + .fieldset-wrapper-title:after { + content: ""; + display: table; + } -.widget-layout-updates .fieldset-wrapper-title span, -.widget-layout-updates .fieldset-wrapper-title select { - vertical-align: middle; -} + .clearfix:after, + [class$="-layout"]:after, + .tabs-horiz:after, + .page-create-order:after, + .order-addresses:after, + .order-methods:after, + .order-summary:after, + .order-methods:after, + .grid-actions:after, + .fieldset-wrapper-title:after { + clear: both; + } -.widget-layout-updates .data-table { - table-layout: fixed; -} + // + // Pages.less (begin) + // --------------------------------------------- -.widget-layout-updates .data-table, -.widget-layout-updates .data-table tr:nth-child(odd) td, -.widget-layout-updates .data-table tr:nth-child(odd):hover td { - background: none; - border: none; -} + .field-weight .control .field:first-child { + width: 36%; + margin-right: 15px; + } -.widget-layout-updates .data-table th, -.widget-layout-updates .data-table tbody td { - border: none; - padding: 5px 10px; -} + #allow_open_amount { + margin-top: 8px; + } -.widget-layout-updates .data-table select { - margin: 0; - max-width: 99%; - overflow: hidden; -} + #tab_content_downloadableInfo .data-table td { + vertical-align: top; + .row { + margin-bottom: 10px; + } + } -.widget-layout-updates .chooser_container { - padding: 0 10px; - margin-bottom: 18px; -} + // + // Customer + // --------------------------------------- -.widget-layout-updates .chooser_container p { - margin: 0 0 18px; -} -.widget-layout-updates .chooser_container p img, -.widget-layout-updates .chooser_container p input { - vertical-align: middle; -} + #customer_info_tabs_account_content #_accountsendemail { + margin-top: 8px; + } -/* - Preview window --------------------------------------- */ -.preview-window { - background: #fff; -} + .customer-information:before, + .customer-information:after { + content: ""; + display: table; + } -.preview-window .toolbar { - background: #f5f2ed; - padding: 20px; -} + .customer-information:after { + clear: both; + } -.preview-window .toolbar .switcher { - margin: 0; -} + .customer-information .data-table, + .customer-information address { + width: 48.5%; + } -.preview-window .toolbar .switcher span { - background: none; - width: auto; -} + .customer-information .data-table { + float: left; + width: 48.5%; + } -/* - Global 'No Products found' block --------------------------------------- */ -.no-products-message { - background: #fbfaf6; - padding: 12px; - text-align: center; - font-size: 12px; - color: #666; - margin-bottom: 13px; -} + .customer-information address { + padding-top: 4px; + line-height: 2.2; + float: right; + } -/* - WYSIWYG --------------------------------------- */ -.action-wysiwyg { - margin: 10px 0; -} + .address-list { + list-style: none; + width: 278px; + margin: 0 0 10px; + padding: 0; + float: left; + } -#catalog-wysiwyg-editor .buttons-set { - margin-bottom: 9px; -} + // +// Configuration -> Design +// -------------------------------------- -#catalog-wysiwyg-editor .buttons-set button { - margin-right: 4px; -} + #row_design_theme_ua_regexp .design_theme_ua_regexp { + float: left; + width: 100%; + } + #row_design_theme_ua_regexp .tooltip { + margin-top: 8px; + } + #row_design_theme_ua_regexp .note { + clear: both; + } -/* - Add Attribute Popup --------------------------------------- */ -#create_new_attribute { - overflow: hidden; -} + // + // CMS -> Banners + // -------------------------------------- -#create_new_attribute > .loading-mask { - left: -25px; - top: -50px; -} -.attribute-popup { - background: none; -} + // Banner Properties + #banner_properties_customer_segment_ids { + min-width: 20%; + } -.attribute-popup #edit_form { - display: block; - > div:last-of-type { - margin-bottom: 150px; + // Content + + .field-store_default_content .buttons-set { + margin-bottom: 9px; } -} -.attribute-popup #edit_form > .fieldset > .legend { - display: none; -} + .field-store_default_content .buttons-set button { + margin-right: 4px; + } -.attribute-popup .wrapper-popup { - padding: 0; - height: 511px; - overflow-x: hidden; - overflow-y: auto; -} + .field-store_0_content_use input[type="checkbox"] { + margin-right: 8px; + position: relative; + top: 2px; + } -.attribute-popup .fieldset, -.attribute-popup .fieldset-wrapper { - border: none; - border-radius: 0; - padding: 4px 0 20px; - margin: 0 23px 20px; -} + // + // CMS -> Manage Hierarchy + // -------------------------------------- -.attribute-popup .fieldset-wrapper { - border-top: none; -} -.attribute-popup .fieldset-wrapper:not(.collapsable-wrapper) .fieldset-wrapper-title { - border-bottom: none; -} + .cms-hierarchy .cms-scope { + float: right; + margin-right: 25px; + position: relative; + top: 2px; + z-index: 1; + } -.attribute-popup .fieldset-wrapper .fieldset-wrapper-content > .fieldset { - margin-left: 0; - margin-right: 0; -} + .cms-hierarchy #tree-container { + margin-top: 25px; + overflow: auto; + padding-bottom: 10px; + } -.attribute-popup .fieldset > .field > input[type="checkbox"] { - margin-top: 7px; -} + .cms-hierarchy .buttons-set { + margin-bottom: 10px; + } -.attribute-popup .fieldset .label { - width: 35%; -} + .cms-hierarchy .cms-hierarchy-tree { + width: 48.93617020799999%; + float: left; + margin: 10px 0 8px 0; + } -.attribute-popup .collapsable-wrapper, -#manage-titles-wrapper .fieldset-wrapper-title { - margin-bottom: 0; - padding-bottom: 0; -} + .cms-hierarchy .cms-hierarchy-node { + width: 48.93617020799999%; + float: left; + margin: 10px 0 8px 2.127659574%; + } -.attribute-popup .collapsable-wrapper .fieldset-wrapper-title > .title:before { - color: #797269; - font-size: 14px; - top: 9px; -} + .cms-hierarchy #cms_page_grid_container { + clear: both; + } -.attribute-popup form .entry-edit:first-child .fieldset { - border-bottom: 1px solid #dfdcd7; -} + .cms-hierarchy .store-switcher { + position: relative; + top: 10px; + } -.attribute-popup .fieldset .legend { - border: none; -} + .cms-hierarchy .store-switcher label { + margin-right: 8px; + } -.attribute-popup .page-actions [class^='action-'] { - margin-left: 18px; -} + .cms-hierarchy-node #node_properties_fieldset #node_preview { + position: relative; + top: 6px; + } -.attribute-popup #base_fieldset { - padding-top: 20px; -} + .cms-hierarchy-node .form-inline .label { + width: 30%; + } -.attribute-popup #base_fieldset > .legend { - display: none; -} + // + // CMS -> Widgets + // -------------------------------------- -.attribute-popup .page-actions-placeholder { - display: none; -} -.attribute-popup .page-actions.fixed .page-actions-inner { - background: #fff; - padding: 0; - min-width: 100%; - max-width: 100%; - min-height: 100%; - margin: 0; -} + #widget_instace_tabs_properties_section_content .widget-option-label { + margin-top: 6px; + } -.attribute-popup .footer { - display: none; -} + // + // CMS -> Static Blocks + // -------------------------------------- -#manage-options-panel > .data-table { - clear: both; -} -// Custom grids view -.CustomGridView { - .col-1-layout { - background: transparent; + #buttonsblock_content.buttons-set { + margin-bottom: 9px; } -} -// Custom grid action view for Primary Add Button at grid tables -.CustomGridAction { - .grid-actions { - border-radius: 5px 5px 0 0; - margin-top: 20px; - padding: 9px 15px; - } - .page-actions.fixed { - left: 0; - margin: 0; - padding: 0 21px; - position: fixed; + #buttonsblock_content.buttons-set button { + margin-right: 4px; } - .page-actions { - position: absolute; - z-index: 2; - margin-top: 10px; - margin-left: 15px; - padding: 0; - } -} - -// Custom page-actions view -.adminhtml-googleshopping-items-index .grid-title { - padding: 15px; -} - -.adminhtml-googleshopping-items-index .grid { - padding-bottom: 25px; -} -.adminhtml-googleshopping-items-index .grid-title .title { - font-size: 18px; -} + // + // CMS -> Manage Content + // -------------------------------------- -.adminhtml-googleshopping-items-index .page-actions { - float: right; -} -.adminhtml-system-backup-index .page-actions.fixed, -.adminhtml-scheduled-operation-index .page-actions.fixed, -.adminhtml-system-currency-index .page-actions.fixed, -.adminhtml-system-currencysymbol-index .page-actions.fixed, -.adminhtml-cache-index .page-actions.fixed, -.adminhtml-system-store-index .page-actions.fixed, -.sales-order-status-index .page-actions.fixed { - background-image: none; - padding: 0 21px; - position: fixed; -} + // Content -.adminhtml-cache-index .additional-cache-management { - margin-bottom: 0; -} + .cms-manage-content-actions .buttons-set { + margin-bottom: 9px; + } -.sidebar-actions { - padding: 14px 0; -} + .cms-manage-content-actions .buttons-set button { + margin-right: 4px; + } -.sidebar-actions button { - margin: 0 0 5px; -} + .cms-manage-content-actions textarea { + width: 100%; + } -.adminhtml-system-currency-index .page-actions.fixed .import-service { - display: inline-block; - float: none; -} + // + // System -> Action Log -> Report + // -------------------------------------- -.data-table .fpt-item-container { - td { - vertical-align: top; - } - select:first-child { - margin-bottom: 8px; - } -} + .adminhtml-logging-details .log-details-grid table { + th { + border: 1px solid #c9c2b8; + border-width: 0 0 1px; + padding: 6px 10px 7px; + background: #fff; + .style2(); -.eq-ie9 { - .col-1-layout, - .catalog-product-edit, - .catalog-product-new, - .sales-order-view, - .catalog-category-edit { - table.data { - table-layout: fixed; - word-wrap: break-word; - th { - word-wrap: normal; - overflow: hidden; - vertical-align: top; - > span { - white-space: normal; - } - } - th:not(.col-select):not(.col-id):not(.col-severity), - td:not(.col-select):not(.col-id):not(.col-severity) { - width: auto; + span { + border: 0; + padding: 0; } } - } - #setGrid_table, - #attributeGrid_table, - .custom-options .data-table, - .ui-dialog .data, - .col-1-layout .data, - .sales-order-view .data, - .catalog-category-edit .data { - word-wrap: break-word; - table-layout: fixed; - } - .fieldset-wrapper { - table.data { - table-layout: inherit; - word-wrap: normal; + td { + border: none; + padding: 6px 10px 7px; + background: #fff; } - } - .sales-order-create-index table.data, - .sales-order-create-index .fieldset-wrapper table.data { - table-layout: fixed; - word-wrap: break-word; - th { - word-wrap: normal; - overflow: hidden; - vertical-align: top; - > span { - white-space: normal; - } + + tr:last-child td { + border: 1px solid #eae8e4; + border-width: 0 0 1px; } - } - .entry-edit .product-options .grouped-items-table { - table-layout: fixed; - word-wrap: break-word; - th { - word-wrap: normal; - overflow: hidden; - vertical-align: top; - > span { - white-space: normal; - } + tr.on-mouse { + cursor: inherit; } - } - .catalog-category-edit, - .adminhtml-cache-index, - .adminhtml-process-list, - .indexer-indexer-list, - .adminhtml-notification-index { - table.data { - table-layout: inherit; - word-wrap: normal; + tr:nth-child(odd) td, + tr.on-mouse:nth-child(odd):hover td { + background: #fbfaf6; } } -} -// Clearfix -.clearfix:before, -.clearfix:after, -[class$="-layout"]:after, -.tabs-horiz:before, -.tabs-horiz:after, -.page-create-order:before, -.page-create-order:after, -.order-addresses:before, -.order-addresses:after, -.order-methods:before, -.order-methods:after, -.order-summary:before, -.order-summary:after, -.order-methods:before, -.order-methods:after, -.grid-actions:before, -.grid-actions:after, -.fieldset-wrapper-title:before, -.fieldset-wrapper-title:after { - content: ""; - display: table; -} + // + // System -> Roles + // -------------------------------------- -.clearfix:after, -[class$="-layout"]:after, -.tabs-horiz:after, -.page-create-order:after, -.order-addresses:after, -.order-methods:after, -.order-summary:after, -.order-methods:after, -.grid-actions:after, -.fieldset-wrapper-title:after { - clear: both; -} + #gws_container ul { + padding: 0; + margin: 0; + list-style: none; + } -/* ========================================================================== - pages.less (begin) - ========================================================================== */ -[class^=" catalog-product-"] .page-actions .action-back.mage-error, -[class^=" newsletter-"] .page-actions .action-back.mage-error { - color: #b57c72; -} + #gws_container ul ul { + margin: .8em 0 .8em 1.4em; + } -.field-weight .control .field:first-child { - width: 36%; - margin-right: 15px; -} + #gws_container input[type="checkbox"] { + margin-right: 3px; + position: relative; + top: -1px; + } -#allow_open_amount { - margin-top: 8px; -} + // + // Reports + // -------------------------------------- + .reports-title .page-actions { + float: right; + } -.catalog-product-new .user-defined.type-select select, -.catalog-product-edit .user-defined.type-select select { - width: 100%; -} - -#tab_content_downloadableInfo .data-table td { - vertical-align: top; - .row { - margin-bottom: 10px; + .reports-title .store-switcher { + padding: 14px 0 18px; } -} - -/* - Customer ----------------------------------------*/ -.customer-index-edit .grid tr.headings th > span { - white-space: normal; -} - -#customer_info_tabs_account_content #_accountsendemail { - margin-top: 8px; -} -.customer-information:before, -.customer-information:after { - content: ""; - display: table; -} + .reports-content select { + width: 160px; + } -.customer-information:after { - clear: both; -} + .reports-content input.hasDatepicker { + width: 133px; + } -.customer-information .data-table, -.customer-information address { - width: 48.5%; -} + .reports-content .required .control { + position: relative; + } -.customer-information .data-table { - float: left; - width: 48.5%; -} + .reports-content input.hasDatepicker + label.mage-error { + left: 0; + position: absolute; + top: 30px; + } -.customer-information address { - padding-top: 4px; - line-height: 2.2; - float: right; -} + .reports-title:before, + .reports-title:after { + content: ""; + display: table; + } -.address-list { - list-style: none; - width: 278px; - margin: 0 0 10px; - padding: 0; - float: left; -} + .reports-title:after { + clear: both; + } -.address-list li { - border: 1px solid #d9d2ca; - background: #f7f2ec; - padding: 10px 10px 15px; - cursor: pointer; - margin-bottom: -1px; -} + .table-fieldset-alt, + .type-options { + margin-bottom: 20px; + } -.address-list li.ui-state-active { - background: #fff; - position: relative; - box-shadow: 0 1px 1px 0 rgba(217, 210, 202, 1); - margin-left: -2px; - padding-left: 12px; -} + .table-fieldset-alt thead th, + .table-fieldset-alt tbody tr td { + border-width: 0; + } -.address-list li.ui-state-active:before, -.address-list li.ui-state-active:after { - position: absolute; - font-family: 'MUI-Icons'; - font-style: normal; - font-weight: normal; - font-size: 18px; - color: #fff; - content: "\e02a"; - speak: none; - line-height: 11px; - width: 10px; - right: -9px; - text-indent: -6px; - top: 50%; - margin-top: -5px; - z-index: 2; -} + .table-fieldset-alt tbody tr:nth-child(odd) td, + .table-fieldset-alt tbody tr:nth-child(odd):hover td { + background: #fff; + } -.address-list li.ui-state-active:before { - color: #d9d2ca; - right: -11px; - z-index: 1; -} + // + // System - Tax + // -------------------------------------- -.address-list li.address-list-actions:before, -.address-list li.address-list-actions:after { - display: none; -} -.address-list li.address-list-actions { - padding: 20px 0 0; - border: 0; - background: none; - box-shadow: none; - cursor: default; -} -.address-list li.address-list-actions:first-child { - padding: 0; -} + .mselect-hidden + .mage-error { + position: absolute; + top: 100%; + } -.address-list .label { - float: none; - width: auto; - padding: 0 0 0 10px; -} + // + // Tags + // -------------------------------------- -.address-list input[type="checkbox"] { - float: left; -} + .tag-title { + overflow: hidden; + } -.address-list address:first-line { - /* its not work if First Name and Last Name in two lines */ - font-weight: bold; -} + .tag-title .page-actions { + float: right; + } -.address-list address { - margin: 0 20px 15px 0; - line-height: 1.5; -} + // + // Attribute Mapping + // -------------------------------------- -.address-list-item-actions { - float: right; -} + .field-attributes_box .control-value { + width: 100%; + } -.address-list .action-edit { - display: none; -} + .adminhtml-googleshopping-types-new #attribute_set { + padding: 0; + } -.address-list .field { - margin-bottom: 15px; -} + .adminhtml-googleshopping-types-new #gcontent_attributes_container { + margin-top: -6px; + } -.ui-tabs-nav .address-list-item a { - text-decoration: none; - color: #676056; -} + // + // Sales + // -------------------------------------- -.address-item-edit { - margin-left: 277px; -} -.address-item-edit-content { - border: 1px solid #dad1c8; - background: #fff; - box-shadow: 0 2px 1px 0 rgba(217, 210, 202, .5); - padding-left: 10px; -} + #order-totals strong { + .style28(); + } -.address-item-edit-content .fieldset:last-child { - margin-bottom: 29px; -} + #order-shipping-method-summary a { + .style3(); + } -.address-item-edit .legend { - border-bottom: 0; - margin: 0 0 18px; - padding-left: 20%; -} + .order-sidebar { + float: left; + width: 22%; + } -.address-item-edit .legend span { - padding-left: 0; -} + .customer-current-activity-inner { + padding: 18px; + } -.address-item-edit-actions { - padding: 0 0 18px 20%; -} + .customer-current-activity .action-refresh { + float: right; + &:hover { + text-decoration: none; + } + } -/* - Configuration -> Design --------------------------------------- */ -#row_design_theme_ua_regexp .design_theme_ua_regexp { - float: left; - width: 100%; -} -#row_design_theme_ua_regexp .tooltip { - margin-top: 8px; -} -#row_design_theme_ua_regexp .note { - clear: both; -} + .order-currency { + padding: 18px; + } + .order-detail { + } + .order-details-existing-customer { + background: #fff; + padding-left: 0; + position: relative; + width: 77.9%; + float: right; + } -/* - Configuration -> Payment Methods --------------------------------------- */ -.adminhtml-system-config-edit .payflow-settings-notice .important-label { - .style32(); -} + .order-billing-address, + .order-billing-method { + float: left; + width: 49.5%; + } -.adminhtml-system-config-edit .payflow-settings-notice ul.options-list strong { - .style28(); -} + .order-shipping-address, + .order-shipping-method { + float: right; + width: 49%; + } -/* - CMS -> Banners --------------------------------------- */ + #order-data .order-account-information { + float: none; + width: auto; + } -/* Banner Properties */ -#banner_properties_customer_segment_ids { - min-width: 20%; -} + #order-data .actions .action-add, + #order-data .actions .action-delete, + #order-customer-selector .actions .action-add { + margin: 0 0 0 20px; + } -/* Content */ + #order-data .order-methods ul { + list-style: none; + margin: 0; + padding: 0; + } -.field-store_default_content .buttons-set { - margin-bottom: 9px; -} + #order-data .order-methods dl, + #order-data .order-methods dt, + #order-data .order-methods dd, + #order-data .payment-methods dl, + #order-data .payment-methods dt, + #order-data .payment-methods dd { + margin: 0; + padding: 0; + } -.field-store_default_content .buttons-set button { - margin-right: 4px; -} + #order-data .order-methods dd + dt, + #order-data .payment-methods dd + dt { + margin-top: 17px; + } -.field-store_0_content_use input[type="checkbox"] { - margin-right: 8px; - position: relative; - top: 2px; -} + #order-data .order-methods dt, + #order-data .payment-methods dt { + margin: 0 0 8px; + } -/* - CMS -> Manage Hierarchy --------------------------------------- */ + .order-coupons .box-left, + .order-gift-options .box-left { + float: left; + width: 49%; + } -.cms-hierarchy .cms-scope { - float: right; - margin-right: 25px; - position: relative; - top: 2px; - z-index: 1; -} + .order-coupons .box-right, + .order-gift-options .box-right { + float: right; + width: 49%; + } -.cms-hierarchy #tree-container { - margin-top: 25px; - overflow: auto; - padding-bottom: 10px; -} + .order-gift-options .box-left:last-child, + .order-gift-options .fieldset-wrapper-title + .box-right { + float: none; + width: auto; + } -.cms-hierarchy .buttons-set { - margin-bottom: 10px; -} + .order-coupons .content { + .action- { + vertical-align: top; + } + input[type="text"] { + height: 28px; + } + } -.cms-hierarchy .cms-hierarchy-tree { - width: 48.93617020799999%; - float: left; - margin: 10px 0 8px 0; -} + .order-gift-options { + fieldset { + border-radius: 5px; + } -.cms-hierarchy .cms-hierarchy-node { - width: 48.93617020799999%; - float: left; - margin: 10px 0 8px 2.127659574%; -} + .gift-wrapping-form select { + margin-left: 10px; + } -.cms-hierarchy #cms_page_grid_container { - clear: both; -} + .giftmessage-entire-order textarea { + height: 6em; + width: 100%; + } -.cms-hierarchy .store-switcher { - position: relative; - top: 10px; -} + .giftmessage-whole-order-container { + textarea { + height: 6em; + width: 100%; + } + .actions { + margin-left: 20%; + } + } + } -.cms-hierarchy .store-switcher label { - margin-right: 8px; -} + .ui-dialog.gift-options-popup .ui-dialog-content { + padding: 25px; + } -.cms-hierarchy-node #node_properties_fieldset #node_preview { - position: relative; - top: 6px; -} + .ui-dialog.gift-options-popup .ui-dialog-content h4 { + margin: 0 0 17px; + } -.cms-hierarchy-node .form-inline .label { - width: 30%; -} + .gift-options-tooltip { + background: #fff; + border-radius: 5px; + padding: 10px; + box-shadow: 0 0 3px rgba(0, 0, 0, .3); + } -/* - CMS -> Widgets --------------------------------------- */ + #order-data .box-left fieldset, + #order-data .box-right fieldset { + border-radius: 5px; + } -#widget_instace_tabs_properties_section_content .widget-option-label { - margin-top: 6px; -} + .adminhtml-rma-new .order-totals, + .order-comments-history .order-comments-history { + float: none; + width: 100%; + } -/* - CMS -> Static Blocks --------------------------------------- */ + // + // Sales -> Create Order + // -------------------------------------- -#buttonsblock_content.buttons-set { - margin-bottom: 9px; -} + .summary-total { + .summary-collapse { + cursor: pointer; + display: inline-block; + &:before { + @iconsize: 16px; + content: "\e02d"; + color: #816063; + background: #f2ebde; + display: inline-block; + text-indent: 0; + font-size: @iconsize; + width:@iconsize; + height:@iconsize; + line-height: @iconsize; + overflow: hidden; + font-family: 'MUI-Icons'; + border:1px solid #ada89e; + font-style: normal; + vertical-align: top; + margin-right:7px; + font-weight: normal; + speak: none; + -webkit-font-smoothing: antialiased; + border-radius: 2px; + } + &:hover:before { + background: #cac3b4; + } + } + &.show-details .summary-collapse:before { + content: "\e03a"; + } + } -#buttonsblock_content.buttons-set button { - margin-right: 4px; -} + tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) td, + tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(even) td, + tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(even) td { + background: #fbfaf6; + } -/* - CMS -> Manage Content --------------------------------------- */ + tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(odd) td, + tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(odd) td, + tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) td { + background: #fff; + } -/* Content */ -.cms-manage-content-actions .buttons-set { - margin-bottom: 9px; -} + #order-data .page-actions { + padding-top: 0; + } -.cms-manage-content-actions .buttons-set button { - margin-right: 4px; -} + .create-order-sidebar-container > div + div { + border-top: 1px solid #cac3b4; + margin-top: 35px; + } -.cms-manage-content-actions textarea { - width: 100%; -} + .create-order-sidebar-container > div .head h5 { + .style9(); + margin: 17px 0 17px; + } -/* - System -> Action Log -> Report --------------------------------------- */ -.adminhtml-logging-details .log-details-grid table { - th { - border: 1px solid #c9c2b8; - border-width: 0 0 1px; - padding: 6px 10px 7px; - background: #fff; - .style2(); + .customer-current-activity-inner > h4 { + .style10(); + border-bottom: 1px solid #cac3b4; + margin-top: 0; + padding: 0 0 16px; + } - span { + .customer-current-activity-inner .auto-scroll { + margin-right: -18px; + margin-left: -18px; + .no-items { + padding: 5px 18px; + display: block; + } + } + .customer-current-activity-inner .data-table { + thead { + background-color: transparent; + } + thead th { + background-color: transparent; + .style18(); border: 0; - padding: 0; + &:first-child { + padding-left: 18px; + } + &:last-child { + padding-right: 18px; + } + } + tbody tr { + td { + background-color: transparent; + border: 0; + &:first-child { + padding-left: 18px; + } + &:first-child { + padding-right: 18px; + } + } + &:nth-child(2n + 1) td { + background: #e0dace; + } } } + .customer-current-activity .action-refresh { + float: right; + } - td { - border: none; - padding: 6px 10px 7px; - background: #fff; + .customer-current-activity .action-refresh, + .customer-current-activity .data-table .icon { + display: inline-block; + text-indent: 100%; + overflow: hidden; + height: 16px; + width: 16px; + line-height: 16px; + white-space: nowrap; } - tr:last-child td { - border: 1px solid #eae8e4; - border-width: 0 0 1px; + .customer-current-activity .action-refresh:before, + .customer-current-activity .data-table .icon:before { + content: "\e010"; + color: #c3c2be; + display: block; + text-indent: 0; + font-size: 16px; + line-height: 16px; + font-family: 'MUI-Icons'; + font-style: normal; + font-weight: normal; + speak: none; + -webkit-font-smoothing: antialiased; } - tr.on-mouse { - cursor: inherit; + .customer-current-activity .data-table .icon-remove:before { + content: "\e07f"; } - tr:nth-child(odd) td, - tr.on-mouse:nth-child(odd):hover td { - background: #fbfaf6; + .customer-current-activity .data-table .icon-add:before { + content: "\e071"; } -} -// -// System -> Roles -// -------------------------------------- + .customer-current-activity .auto-scroll { + .style18(); + overflow: auto; + max-height: 150px; + } -#gws_container ul { - padding: 0; - margin: 0; - list-style: none; -} + .customer-current-activity .auto-scroll + button { + margin: 22px 0 0; + } -#gws_container ul ul { - margin: .8em 0 .8em 1.4em; -} + .customer-current-activity .actions { + border-top: none; + margin: 20px 0 0; + padding: 0; + } -#gws_container input[type="checkbox"] { - margin-right: 3px; - position: relative; - top: -1px; -} + .overlay { + background: rgba(255, 255, 255, .5); + border-radius: 5px; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; -// -// Reports -// -------------------------------------- */ -.reports-title .page-actions { - float: right; -} + span { + color: #111; + font-weight: bold; + position: absolute; + top: 56px; + left: 0; + margin: 0 8px; + padding: 10px; + background: #fff; + } + } -.reports-title .store-switcher { - padding: 14px 0 18px; -} + // + // Order view + // -------------------------------------- -.reports-content select { - width: 160px; -} + .order-comments-history fieldset { + border: 0; + margin: 0; + padding: 0; + } -.reports-content input.hasDatepicker { - width: 133px; -} - -.reports-content .required .control { - position: relative; -} - -.reports-content input.hasDatepicker + label.mage-error { - left: 0; - position: absolute; - top: 30px; -} - -.reports-title:before, -.reports-title:after { - content: ""; - display: table; -} - -.reports-title:after { - clear: both; -} - -// -// Reports - PayPal Settlement Reports -//-------------------------------------- - -.adminhtml-paypal-reports-index .grid tr.headings th > span { - white-space: normal; -} - -.adminhtml-paypal-reports-index .col-transaction_event_code { - max-width: 150px; -} - -.adminhtml-paypal-reports-index .col-amount, -.adminhtml-paypal-reports-index .col-fee-amount { - text-align: right; -} - -/* - Newsletter Templates --------------------------------------- */ -.newsletter-template-index .col-id { - width: 35px; -} - -.newsletter-template-index .col-actions { - width: 80px; -} - -.newsletter-template-index .col-type { - width: 100px; -} - -.newsletter-template-index .col-added, -.newsletter-template-index .col-updated { - width: 140px; -} - -[class^=' newsletter-'] .buttons-set { - margin: 0 0 15px; -} - -[class^=" newsletter-"] .buttons-set button { - margin-right: 4px; -} - -/* - Newsletter - Queue --------------------------------------- */ -.newsletter-queue-index .col-id { - width: 35px; -} + .order-comments-history textarea, + .rma-history-form textarea { + height: 6em; + margin: 5px 0 10px; + resize: vertical; + width: 100%; + } -.newsletter-queue-index .col-finish, -.newsletter-queue-index .col-start { - width: 130px; -} + .order-comments-history input[type="checkbox"] { + margin-right: 5px; + } -.newsletter-queue-index .col-status, -.newsletter-queue-index .col-processed, -.newsletter-queue-index .col-recipients { - white-space: nowrap; - width: 85px; -} + .order-history-comments-options { + float: left; + } -.newsletter-queue-index td.col-processed, -.newsletter-queue-index td.col-recipients { - text-align: right; -} + .order-comments-history .actions { + float: right; + } -.newsletter-queue-index .col-actions { - width: 80px; -} + [class*="-order-"] .fieldset-wrapper address { + overflow: auto; + } -/* - Newsletter - Subscribers --------------------------------------- */ -.newsletter-subscriber-index .col-id { - width: 35px; -} + // + // Orders comments + //-------------------------------------- + .note-list { + list-style: none; + padding: 0; + li { + border-top: 1px solid #ededed; + padding: 9px 0; + &:first-child { + border: 0; + padding-top: 13px; + } + } + div { + font-size: 12px; + } + .note-list-date, + .note-list-status, + .note-list-customer span { + font-weight: bold; + } + .note-list-time, + .note-list-status { + border-right: 1px solid #676056; + padding: 0 5px 0 0; + margin: 0 5px 0 0; + } + .note-list-customer { + white-space: nowrap; + } + .note-list-comment { + margin: 5px 0 0; + } + .note-list-customer-notapplicable { + color: #d87e34; + } + .note-list-customer-notified { + color: #185b00; + } + .note-list-customer-not-notified { + color: #963535; + } + } -.newsletter-subscriber-index .col-type { - width: 75px; -} + .adminhtml-rma-item-attribute-edit .col-position input { + text-align: center; + } -.newsletter-subscriber-index .col-status { - white-space: nowrap; - width: 85px; -} + .order-subtotal .label { + text-align: right; + } -/* - Newsletter - Problems --------------------------------------- */ -.newsletter-problem-index .col-select { - width: 25px; -} + .items-to-invoice { + border: 1px solid #c0bbaf; + margin-top: 13px; + width: 100%; + } -.newsletter-problem-index .col-id { - width: 35px; -} + .items-to-invoice td, + table.items-to-invoice tbody tr:hover td { + background-color: #e6e3de; + border: 0; + text-align: center; + } -.newsletter-problem-index .col-start { - width: 130px; -} + .items-to-invoice .grand-total { + color: #19a3d1; + font-weight: bold; + } -.newsletter-problem-index .col-error-code { - width: 150px; -} + .creditmemo-totals .data-table input[type="text"] { + text-align: right; + width: 60px; + } + .col-product .product_to_add { + float: right; + } -.table-fieldset-alt, -.type-options { - margin-bottom: 20px; -} + // + // Orders refund + //-------------------------------------- + .field-refund-store-credit { + .input-text { + text-align: right; + width: 60px; + } + } -.table-fieldset-alt thead th, -.table-fieldset-alt tbody tr td { - border-width: 0; -} + // + // Packaging for Shipping Popup + // -------------------------------------- + #popup-window-mask, + .popup-window-mask { + background: rgba(0, 0, 0, .5); + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 999; + } -.table-fieldset-alt tbody tr:nth-child(odd) td, -.table-fieldset-alt tbody tr:nth-child(odd):hover td { - background: #fff; -} + .packaging-window, + .packed-window { + background: #fff; + box-shadow: 0 3px 6px rgba(0, 0, 0, .4); + left: 50%; + margin: -200px 0 0 -471px; + position: fixed; + top: 50%; + width: 1000px; + z-index: 1000; + } -/* - System - Tax ---------------------------------------*/ + .packaging-window .entry-edit-head { + padding: 3px 5px; + } -.tax-rate-popup .form-inline .field { - position: static; - &.required .label { + .packaging-window .messages { + padding: 10px 26px 10px 32px; + border-radius: 0; + color: #963535; + text-shadow: none; position: relative; - z-index: 1; + background: #f3dcd8; + border: 1px solid #963535; + margin-top: -1px; } -} - -.mselect-hidden + .mage-error { - position: absolute; - top: 100%; -} - -/* - Tags --------------------------------------- */ -.tag-title { - overflow: hidden; -} - -.tag-title .page-actions { - float: right; -} - -/* - Attribute Mapping --------------------------------------- */ -.field-attributes_box .control-value { - width: 100%; -} - -.adminhtml-googleshopping-types-new #attribute_set { - padding: 0; -} - -.adminhtml-googleshopping-types-new #gcontent_attributes_container { - margin-top: -6px; -} - -/* - Sales --------------------------------------- */ - -#order-totals strong { - .style28(); -} - -#order-shipping-method-summary a { - .style3(); -} - -.order-sidebar { - float: left; - width: 22%; -} - -.customer-current-activity-inner { - padding: 18px; -} - -.customer-current-activity .action-refresh { - float: right; - &:hover { - text-decoration: none; + .packaging-window .messages:before { + position: absolute; + left: 8px; + top: 50%; + margin-top: -11px; + background: none; + text-shadow: none; + width: auto; + height: auto; + border: 0; + font-family: 'MUI-Icons'; + font-style: normal; + speak: none; + font-weight: normal; + -webkit-font-smoothing: antialiased; + font-size: 16px; + content: '\e069'; + color: #963535; } -} -.order-currency { - padding: 18px; -} -.order-detail { -} -.order-details-existing-customer { - background: #fff; - padding-left: 0; - position: relative; - width: 77.9%; - float: right; -} + .packaging-window .validation-failed { + background: #fef0ed; + border: 1px dashed #d6340e; + } -.order-billing-address, -.order-billing-method, -[class*="-order-"] .order-history, -[class*="-order-"] .order-comments-history, -[class*="-order-"] .order-information, -[class*="-order-"] .order-billing-address, -[class*="-order-"] .order-payment-method, -[class^=" adminhtml-rma-"] .order-comments-history, -[class^=" adminhtml-rma-"] .order-shipping-address, -[class^=" adminhtml-rma-"] .rma-request-details { - float: left; - width: 49.5%; -} + .packaging-window { + .packaging-content { + overflow: auto; + overflow-x: hidden; + height: auto !important; + max-height: 400px; + .measures { + width: 50px; + } + .options-weight { + vertical-align: top; + } + } + } -.order-shipping-address, -.order-shipping-method, -[class*="-order-"] .order-totals, -[class*="-order-"] .order-account-information, -[class*="-order-"] .order-shipping-address, -[class*="-order-"] .order-payment-method-virtual, -[class*="-order-"] .order-shipping-method, -[class^=" adminhtml-rma-"] .rma-confirmation, -[class^=" adminhtml-rma-"] .order-shipping-method, -[class^=" adminhtml-rma-"] .order-return-address { - float: right; - width: 49%; -} + .packaging-window .package-options { + width: 100%; + border-top: 1px solid #ccc; + padding: 10px 0 0; + margin: 3px 0 0; + } -[class*="-order-"] { - .order-card-validation { - width: 49.5%; - box-sizing: border-box; + .packaging-window .package-options td { + vertical-align: middle; + } - .actions { - margin-top: 17px; - } + .packaging-window .package-options .input-text { + width: 50px; } - .order-totals { - .field.choice { - margin: 20px 0; - } + + .packaging-window .package_prapare { + margin-bottom: 15px; } -} -#order-data .order-account-information { - float: none; - width: auto; -} + .packaging-window .package-options .customs-value { + width: 80px; + } -[class^=" sales-"] .order-information .fieldset-wrapper > .fieldset-wrapper-title .title { - width: 100%; -} + .packaging-window .package-options .options-weight { + width: 75px; + } -#order-data .actions .action-add, -#order-data .actions .action-delete, -#order-customer-selector .actions .action-add { - margin: 0 0 0 20px; -} + .packaging-window .package-options .options-units-weight { + width: 45px; + } -#order-data .order-methods ul { - list-style: none; - margin: 0; - padding: 0; -} + .packaging-window .package-options .options-units-dimensions { + width: 45px; + } -#order-data .order-methods dl, -#order-data .order-methods dt, -#order-data .order-methods dd, -#order-data .payment-methods dl, -#order-data .payment-methods dt, -#order-data .payment-methods dd { - margin: 0; - padding: 0; -} + .packaging-window .package-options .options-content-type { + width: 120px; + } -#order-data .order-methods dd + dt, -#order-data .payment-methods dd + dt { - margin-top: 17px; -} + .packaging-window .package-options input[type=text].disabled, + .packaging-window .package-options select.disabled { + background: #eee; + } -#order-data .order-methods dt, -#order-data .payment-methods dt { - margin: 0 0 8px; -} + .packaging-window .package-options-contents { + border-top: 0; + } -.order-coupons .box-left, -.order-gift-options .box-left { - float: left; - width: 49%; -} + .packaging-window .package-add-products { + margin: 20px 0 0; + } -.order-coupons .box-right, -.order-gift-options .box-right { - float: right; - width: 49%; -} + .packaging-window .package-add-products .grid { + padding: 0; + } -.order-gift-options .box-left:last-child, -.order-gift-options .fieldset-wrapper-title + .box-right { - float: none; - width: auto; -} + .packaging-window .package-add-products .grid button { + vertical-align: middle; + } -.order-coupons .content { - .action- { - vertical-align: top; + .packaging-window .package-number { + font-weight: bold; } - input[type="text"] { - height: 28px; + + .packaging-window .package-number span { + margin-left: 5px; } -} -.order-gift-options { - fieldset { - border-radius: 5px; + .packed-window .entry-edit-head { + padding: 3px 5px; } - .gift-wrapping-form select { - margin-left: 10px; + .packed-window .packed-content { + padding: 10px 10px 0; + overflow: auto; + max-height: 400px; } - .giftmessage-entire-order textarea { - height: 6em; - width: 100%; + .packed-window .package { + border-top: 1px solid #ededed; + margin-bottom: 30px; + padding: 10px; } - .giftmessage-whole-order-container { - textarea { - height: 6em; - width: 100%; - } - .actions { - margin-left: 20%; - } + .packed-window .package:first-child { + border-top: 0; } -} -.ui-dialog.gift-options-popup .ui-dialog-content { - padding: 25px; -} + .package-info { + background: #e6e3de; + border: 1px solid #c0bbaf; + } -.ui-dialog.gift-options-popup .ui-dialog-content h4 { - margin: 0 0 17px; -} + .package-info th { + font-weight: bold; + } -.gift-options-tooltip { - background: #fff; - border-radius: 5px; - padding: 10px; - box-shadow: 0 0 3px rgba(0, 0, 0, .3); -} + .packed-window .package-info table tbody tr td, + .packed-window .package-info table tbody tr th, + .package-info table tbody tr:nth-child(2n+1) td, + .package-info table tbody tr:nth-child(2n+1) th { + background: none; + border: 0; + padding: 5px 5px 2px; + } -#order-data .box-left fieldset, -#order-data .box-right fieldset { - border-radius: 5px; -} + .packed-window .package .grid { + padding: 0; + } -.adminhtml-rma-new .order-totals, -.order-comments-history .order-comments-history, -[class^=" adminhtml-rma-"] .rma-comments-history { - float: none; - width: 100%; -} + .packed-window .package-options { + width: 60%; + } -[class*="-order-"] .order-billing-address .actions, -[class*="-order-"] .order-shipping-address .actions { - margin: 17px 0; -} + .packed-window .package-options td, + .packed-window .package-options th { + padding: 1px 0; + } -[class*="-order-"] .order-billing-address .control + label, -[class*="-order-"] .order-shipping-address .control + label { - margin: 17px 0 0; -} + .grid .popup-window { + text-align: left; + } -.sales-order-create-index #order-message .messages .message, -.sales-order-edit-index #order-message .messages .message { - margin: 0 0 60px; -} + .grid tr.on-mouse td .popup-window .data-table tbody tr:nth-child(2n+1) td, + .grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td, + .grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td, + .grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td, + .grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td, + .grid table tbody tr.on-mouse:hover td .popup-window .data-table tbody tr:nth-child(2n+1), + .grid table tbody tr.on-mouse:hover th .popup-window .data-table tbody tr:nth-child(2n+1) { + background-color: #fbfaf6; + } -// -// Sales -> Create Order -// -------------------------------------- -.sales-order-create-index { + .grid .popup-window { + text-align: left; + } -} + .popup-window-buttons-set { + text-align: right; + padding: 25px; + } -.sales-order-create-index .order-items.fieldset-wrapper, -.sales-order-create-index .order-search-items.fieldset-wrapper, -.sales-order-create-index .order-additional-area.fieldset-wrapper, -.sales-order-create-index .order-errors, -.checkout-index-index .checkout-errors { - .fieldset-wrapper-title { - border-bottom: 0; - margin: 0; + .popup-window-title { + background: #f3efea; + padding: 19px 20px; } - .title { - border-bottom: 1px solid #cac3b4; - margin: 0 0 18px; - width: 100%; + + .popup-window-title .title { + color: #676056; + display: block; + font-size: 20px; + line-height: 1; } -} -[class*="-order-"] { - .fieldset-wrapper-title { - .actions { - float: right; - padding: 0; - a:link, - a:visited, - a:hover, - a:active { - color: #a29c94; - } - } + .popup-window-title .actions { + float: right; } - .order-customer-selector .fieldset-wrapper-title .actions { - padding-top: 8px; + + .popup-window-content { + padding: 25px 25px 0; } - .order-details .fieldset-wrapper-title .actions { - padding-bottom: 15px; + + .popup-window-content > ul { + list-style: none; + padding: 0; } -} -.sales-order-create-index { - // Configure product popup - .ui-dialog { - // Virtual and downloadable product - .downloadable.information .link { - .label { - margin-left: 0; - } - .nested { - margin-left: 8px; - } - } - // Bundle product - .fieldset.bundle { - .nested { - padding-left: 6px; - .field { - margin: 0 0 5px; - } - .label { - font-size: 13px; - margin: 0; - } - .qty .control { - display: inline-block; - margin: 0 0 0 10px; - width: 60px; - } - } - } + .packaging-window .col-weight { + text-align: left; + width: 60px; } - .order-billing-method { - .payment-methods { - .fieldset { - padding: 0; - margin: 0; - .field { - margin: 0 0 12px 0; - } - } - } + + .packaging-window .col-qty { + text-align: left; + width: 80px; } - .grid .action-configure { - float: right; - &.disabled { - cursor: default; - opacity: .5; - &:hover { - text-decoration: none; - } - } + + .packed-window .col-qty, + .packed-window .col-weight, + .packed-window .col-qty_ordered { + text-align: right; + width: 70px; } - .order-items.fieldset-wrapper { - .clearfix(); + + .packaging-window .col-select, + .packaging-window .col-measure { + text-align: center; + width: 35px; } -} -.summary-total { - .summary-collapse { - cursor: pointer; + .popup-fieldset-title .title { + color: #666; display: inline-block; - &:before { - @iconsize: 16px; - content: "\e02d"; - color: #816063; - background: #f2ebde; - display: inline-block; - text-indent: 0; - font-size: @iconsize; - width:@iconsize; - height:@iconsize; - line-height: @iconsize; - overflow: hidden; - font-family: 'MUI-Icons'; - border:1px solid #ada89e; - font-style: normal; - vertical-align: top; - margin-right:7px; - font-weight: normal; - speak: none; - -webkit-font-smoothing: antialiased; - border-radius: 2px; - } - &:hover:before { - background: #cac3b4; - } + font-size: 18px; + font-weight: normal; + padding: 7px 0 10px; } - &.show-details .summary-collapse:before { - content: "\e03a"; + + .popup-fieldset-title .actions { + float: right; } -} -tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) td, -tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(even) td, -tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(even) td { - background: #fbfaf6; -} + .packaging-window select { + margin-bottom: 0; + } -tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(odd) td, -tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(odd) td, -tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) td { - background: #fff; -} + .packaging-window .col-width, + .packaging-window .col-height, + .packaging-window .col-length, + .packaging-window .data-table .col-total-weight input[type="text"], + .packaging-window .data-table .col-custom input[type="text"] { + width: 60px; + } -/* ----------------------------------- */ + .packaging-window .col-total-weight { + white-space: nowrap; + width: 100px; + } -#order-data .page-actions { - padding-top: 0; -} + .packaging-window .col-signature { + width: 160px; + } -// #order-data .store-switcher { -// margin: -46px 0 0; -// position: relative; -// width: 50%; -// } + .packaging-window .data-table .col-actions, + .packaging-window .col-total-weight, + .packaging-window .data-table .col-custom { + white-space: nowrap; + } -.create-order-sidebar-container > div + div { - border-top: 1px solid #cac3b4; - margin-top: 35px; -} + .packaging-window .data-table .action-delete { + margin: 5px 0 0 5px; + } -.create-order-sidebar-container > div .head h5 { - .style9(); - margin: 17px 0 17px; -} + .packaging-window .grid tr th { + border-bottom: 1px solid #c9c2b8; + } -.customer-current-activity-inner > h4 { - .style10(); - border-bottom: 1px solid #cac3b4; - margin-top: 0; - padding: 0 0 16px; -} + .packaging-window .grid tr th:first-child, + .packaging-window .grid td:first-child, + .packaging-window .grid td:last-child { + border-left: 0; + border-right: 0; + } -.customer-current-activity-inner .auto-scroll { - margin-right: -18px; - margin-left: -18px; - .no-items { - padding: 5px 18px; - display: block; + .packaging-window .data-table .col-qty-edit { + white-space: nowrap; + width: 50px; } -} -.customer-current-activity-inner .data-table { - thead { - background-color: transparent; + + .packaging-window .data-table .col-qty-edit input[type="text"] { + width: 50px; } - thead th { - background-color: transparent; - .style18(); - border: 0; - &:first-child { - padding-left: 18px; - } - &:last-child { - padding-right: 18px; - } + + .sp-methods > dt { + font-weight: bold; } - tbody tr { - td { - background-color: transparent; - border: 0; - &:first-child { - padding-left: 18px; - } - &:first-child { - padding-right: 18px; - } - } - &:nth-child(2n + 1) td { - background: #e0dace; - } + + .sp-methods > dd { + margin: 5px 0 5px 15px; } -} -.customer-current-activity .action-refresh { - float: right; -} -.customer-current-activity .action-refresh, -.customer-current-activity .data-table .icon { - display: inline-block; - text-indent: 100%; - overflow: hidden; - height: 16px; - width: 16px; - line-height: 16px; - white-space: nowrap; -} + .sp-methods > dd > ul { + list-style: none; + padding: 0; + } -.customer-current-activity .action-refresh:before, -.customer-current-activity .data-table .icon:before { - content: "\e010"; - color: #c3c2be; - display: block; - text-indent: 0; - font-size: 16px; - line-height: 16px; - font-family: 'MUI-Icons'; - font-style: normal; - font-weight: normal; - speak: none; - -webkit-font-smoothing: antialiased; -} + // + // Popup Configuration Popup + // -------------------------------------- -.customer-current-activity .data-table .icon-remove:before { - content: "\e07f"; -} + #product_composite_configure_messages { + margin-left: 0 !important; + padding: 10px 15px; + } -.customer-current-activity .data-table .icon-add:before { - content: "\e071"; -} + .rma-popup, + .cms-popup { + background: #fff; + box-shadow: 0 3px 6px rgba(0, 0, 0, .4); + cursor: default; + position: fixed; + left: 50%; + top: 50%; + z-index: 1000; + } -.customer-current-activity .auto-scroll { - .style18(); - overflow: auto; - max-height: 150px; -} + .rma-popup { + width: 540px; + margin: 0 0 0 -271px; + } -.customer-current-activity .auto-scroll + button { - margin: 22px 0 0; -} + .rma-popup .entry-edit .fieldset { + border: none; + } -.customer-current-activity .actions { - border-top: none; - margin: 20px 0 0; - padding: 0; -} + .rma-popup .validation-advice, + .rma-popup label.mage-error { + margin-left: 0; + } -.overlay { - background: rgba(255, 255, 255, .5); - border-radius: 5px; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - - span { - color: #111; - font-weight: bold; - position: absolute; - top: 56px; - left: 0; - margin: 0 8px; - padding: 10px; + .rma-popup .content { background: #fff; + border-bottom: 1px solid #ccc; + max-height: 400px; + overflow: auto; } -} -// -// Order view -// -------------------------------------- + .rma-popup .content .grid { + padding: 0; + } -.order-comments-history fieldset { - border: 0; - margin: 0; - padding: 0; -} + .rma-popup .content .grid table { + border-bottom: 1px solid #cbd3d4; + } -.order-comments-history textarea, -.rma-history-form textarea { - height: 6em; - margin: 5px 0 10px; - resize: vertical; - width: 100%; -} + .rma-popup .product-options { + border-bottom: 1px solid #e7e7e7; + margin: 0 0 15px; + padding: 0 0 12px; + } -.order-comments-history input[type="checkbox"] { - margin-right: 5px; -} + .rma-popup .product-options .required { + color: #333 !important; + font-weight: normal !important; + } -.order-history-comments-options { - float: left; -} + .rma-popup .product-options .required em { + color: #d40707; + } -.order-comments-history .actions { - float: right; -} + .rma-popup .last-fieldset .product-options { + border: 0 none; + margin-bottom: 0; + padding-bottom: 0; + } -[class*="-order-"] .fieldset-wrapper address { - overflow: auto; -} + .rma-popup .buttons-set { + text-align: right; + margin: 0; + overflow: hidden; + padding: 7px 10px 8px; + } -// -// Orders comments -//-------------------------------------- -.note-list { - list-style: none; - padding: 0; - li { - border-top: 1px solid #ededed; - padding: 9px 0; - &:first-child { - border: 0; - padding-top: 13px; - } + .rma-popup .buttons-set { + width: 518px; } - div { - font-size: 12px; + + .cms-popup .buttons-set { + width: 289px; } - .note-list-date, - .note-list-status, - .note-list-customer span { - font-weight: bold; + + .rma-popup .buttons-set button { + margin: 0 0 0 5px; } - .note-list-time, - .note-list-status { - border-right: 1px solid #676056; - padding: 0 5px 0 0; - margin: 0 5px 0 0; + + .grid .rma-popup .form-list tr, + .grid tr.even .rma-popup .form-list tr, + .grid tr.on-mouse .rma-popup .form-list tr { + background: #fff !important; } - .note-list-customer { - white-space: nowrap; + + // + // URL rewrite + // -------------------------------------- + + .adminhtml-urlrewrite-edit .field-entity-type-selector .label { + width: auto; } - .note-list-comment { - margin: 5px 0 0; + + // + // Shopping Cart Price Rule + // -------------------------------------- + + .fieldset .field-coupon_code, + .fieldset .field-rule_use_auto_generation { + margin-bottom: 0; } - .note-list-customer-notapplicable { - color: #d87e34; + + .field-rule_use_auto_generation .label { + margin-left: 5px; } - .note-list-customer-notified { - color: #185b00; + + .field-rule_use_auto_generation .nested { + margin-bottom: 29px; } - .note-list-customer-not-notified { - color: #963535; + + // + // Product Image Placeholders + // -------------------------------------- + + #catalog_placeholder .input-file, + #catalog_placeholder .delete-image > input { + margin-right: 5px; } -} -[class^=" sales-"] tr.headings .col-parent-transaction-id > span, -[class^=" sales-"] tr.headings .col-method > span, -[class^=" sales-"] tr.headings .col-transaction-id > span, -[class^=" sales-"] tr.headings .col-transaction-type > span, -[class^=" sales-"] tr.headings .col-gtbase > span, -[class^=" sales-"] tr.headings .col-gtpurchased > span, -[class*="-order-"] tr.headings .col-discont > span { - white-space: normal; -} + // Permanent Redirect for old URL + .control > [name="product[url_key_create_redirect]"], + .control > [name="general[url_key_create_redirect]"] { + float: left; + margin: 8px 5px 0 0; + } -[class^=" sales-"] .col-2-left-layout .hor-scroll { - margin-bottom: -4px; - overflow: auto; - padding-bottom: 4px; - width: 100%; -} + .control > [name="product[url_key_create_redirect]"] + .label, + .control > [name="general[url_key_create_redirect]"] + .label { + width: auto; + padding-top: 8px; + } -[class*="-order-"] .col-price .label, -[class*="-order-"] .col-subtotal .label { - display: inline-block; - min-width: 60px; - white-space: nowrap; -} + // + // New Product Attribute Set + // -------------------------------------- -[class*="-order-"] .item-options { - margin: 5px 0 5px 10px; - dt { - font-weight: bold; + .field-skeleton_set .select { + width: 100%; } - dd { - margin: 0 0 0 10px; + + #affected-attribute-set-form .fieldset .field { + margin-bottom: 12px; + + &:last-child { + margin-bottom: 0; + } } -} -.adminhtml-rma-item-attribute-edit .col-position input { - text-align: center; -} + // + // Cache Management + // -------------------------------------- -.order-subtotal .label { - text-align: right; -} + .additional-cache-management .label { + margin-top: 5px; + } -.items-to-invoice { - border: 1px solid #c0bbaf; - margin-top: 13px; - width: 100%; -} + // + // Categories + // -------------------------------------- -.items-to-invoice td, -table.items-to-invoice tbody tr:hover td { - background-color: #e6e3de; - border: 0; - text-align: center; -} + .category-content .form-inline.permissions-custom-options { + .messages { + li { + margin-top: 0; + } + } + .data-table { + margin-bottom: 25px; + } + } -[class~=" -order-creditmemo-"] .no-items { - padding-top: 13px; - text-align: center; -} + // + // Marketing - Email Reminders + // -------------------------------------- -.items-to-invoice .grand-total { - color: #19a3d1; - font-weight: bold; -} + .lt-1280 .adminhtml-reminder-edit #customerGrid .grid .filter .range div.date { + min-width: 0; + } -.adminhtml-order-shipment-new .order-totals .fieldset-wrapper { - padding-top: 18px; -} + // + // Customers - Manage Shopping Cart + // -------------------------------------- -.creditmemo-totals .data-table input[type="text"] { - text-align: right; - width: 60px; -} + .checkout-index-index { + .products-search { + margin-top: 35px; + > .actions { + text-align: right; + margin: 10px 0; + } + } + .shopping-cart-items { + > .actions { + margin-bottom: 15px; + } + .box-left, + .box.right { + width: 49%; + fieldset { + border-radius: 5px; + } + } + .box-left { + float: left; + } + .box.right { + float: right; + } + } + .grid table .action-configure { + float: right; + } + } -[class*="-order-"] .order-subtotal .label { - width: 80%; -} + // + // Clearfix + // -------------------------------------- + + .shopping-cart-items:before, + .shopping-cart-items:after, + .image-panel:before, + .image-panel:after, + .images:before, + .images:after, + .tax-rate-popup .field:before, + .tax-rate-popup .field:after, + .clearfix:before, + .clearfix:after, + #tab_content_downloadableInfo .data-table td .row:before, + #tab_content_downloadableInfo .data-table td .row:after { + content: ""; + display: table; + } -[class^=" adminhtml-rma-"] .rma-items th.col-qty span, -.adminhtml-rma-edit .rma-items th.col-qty span { - text-align: left; - white-space: normal; -} + .shopping-cart-items:after, + .image-panel:after, + .images:after, + .tax-rate-popup .field:after, + .clearfix:after, + #tab_content_downloadableInfo .data-table td .row:after { + clear: both; + } + // + // pages.less (end) + // -------------------------------------- -.adminhtml-rma-edit .data-table .col-carrier, -[class^=" sales-billing-agreement-"] .log-details .data-table th { - width: 20%; -} -.adminhtml-rma-edit .data-table .col-title { - width: 35%; -} -.adminhtml-rma-edit .data-table .col-number { - width: 25%; -} + // + // debug.less (begin) + // ========================================================================== -[class*="-order-"] .order-shipping-address .price, -.order-shipping-address .shipping-description-title { - font-weight: bold; -} + // + // This file was created to debug old classes in order to indicate where we must replase it with new ones -[class^=" adminhtml-rma-"] .col-actions a { - cursor: pointer; - white-space: nowrap; -} + .debug { + border: 1px solid red !important; + } -[class^=" adminhtml-rma-"] .col-reason input[type="text"] { - margin: 5px 0 0; - width: 100%; -} + // + // Accordion + // ------------------------ -[class^=" adminhtml-rma-"] .col-actions .separator { - margin: 0 3px; -} + .accordion { + margin: 0 0 8px; + padding: 0; + } -[class^=" sales-"] .order-payment-method .data-table { - margin-top: 15px; -} + .accordion > dt, + .accordion > dd.open, + .accordion .collapseable, + .section-config.active > .collapseable + input + fieldset, + .accordion .collapseable.open + input + fieldset { + background: #fff; + padding: 5px 18px 2px; + position: relative; + } -[class^=" sales-"] .order-payment-currency { - margin-top: 15px; -} + .accordion > dt + dd { + display: none; + } -[class^=" sales-"] .grid .data { - border-bottom: 1px solid #c0bbaf; -} + .accordion > dt.open, + .section-config.active > .collapseable, + .accordion .collapseable.open { + margin: 0; + border-bottom: 0; + border-radius: 5px 5px 0 0; + } + .section-config.active > .collapseable + input + fieldset, + .accordion > dt + dd.open, + .accordion .collapseable.open + input + fieldset { + padding: 25px 18px 18px; + display: block; + margin-left: 0; + border-top: 0; + border-radius: 0 0 5px 5px; + } -[class^=" sales-"] .grid td .option-label { - font-weight: bold; -} + .section-config > .collapseable > a, + .accordion > dt a, + .accordion .collapseable > a { + .style10(); + display: block; + padding: 7px 0 10px 22px; + text-decoration: none; + position: relative; + cursor: pointer; + border-bottom: 1px solid #cac3b4; + } -[class^=" sales-"] .grid td .option-value { - margin: 0 0 0 10px; -} + .section-config > .collapseable > a i, + .accordion > dt a i, + .accordion .collapseable > a i { + .style31(); + } -.col-product .product_to_add { - float: right; -} + .section-config > .collapseable > a:before, + .accordion > dt a:before, + .accordion .collapseable > a:before { + position: absolute; + left: 0; + top: 11px; + font-family: 'MUI-Icons'; + font-style: normal; + speak: none; + font-size: 16px; + font-weight: normal; + -webkit-font-smoothing: antialiased; + content: '\e02a'; // arrow right icon + color: #b2b0ad; + } -[class^=" adminhtml-extension-custom-"] { - #authors_fieldset .data-table td { - vertical-align: top; + .section-config.active > .collapseable > a:before, + .accordion > dt.open a:before, + .accordion .collapseable.open a:before { + content: '\e02c'; // arrow down icon + } + .section-config > .collapseable > a:hover:before, + .accordion > dt a:hover:before, + .accordion .collapseable > a:hover:before { + color: #7e7e7e; } -} -// -// Orders refund -//-------------------------------------- -.field-refund-store-credit { - .input-text { - text-align: right; - width: 60px; + // PayPal connected + + .section-config.complex .section-config.with-button { + padding:20px 15px; + margin:0 -30px 0 -15px; + border-bottom:1px solid #eae6e0; } -} -// -// Packaging for Shipping Popup -// -------------------------------------- -#popup-window-mask, -.popup-window-mask { - background: rgba(0, 0, 0, .5); - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 999; -} + .section-config.complex tr:last-child .section-config.with-button { + border-bottom:0; + } -.packaging-window, -.packed-window { - background: #fff; - box-shadow: 0 3px 6px rgba(0, 0, 0, .4); - left: 50%; - margin: -200px 0 0 -471px; - position: fixed; - top: 50%; - width: 1000px; - z-index: 1000; -} + .section-config.complex .section-config.with-button > .entry-edit-head { + padding: 0 0 0 25px; + border:0; + } -.packaging-window .entry-edit-head { - padding: 3px 5px; -} + .section-config.complex .section-config.with-button.enabled > .entry-edit-head:before { + content: "\e01e"; + color:#fff; + background: #65940a; + font-family: "MUI-Icons"; + font-weight: normal; + padding:3px; + font-size: 10px; + width:10px; + height:10px; + line-height: 10px; + overflow: hidden; + border-radius: 8px; + display: block; + float:left; + margin-left:-25px; + margin-top:0; + } -.packaging-window .messages { - padding: 10px 26px 10px 32px; - border-radius: 0; - color: #963535; - text-shadow: none; - position: relative; - background: #f3dcd8; - border: 1px solid #963535; - margin-top: -1px; -} + .section-config.complex .section-config.with-button > .config { + margin:10px -10px; + border:1px solid #d1d0ce; + border-radius: 0; + padding:5px 0; + } + .section-config.complex .section-config.with-button > .config > table > tbody > tr > td { + padding:0; + } + + .section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head { + border:0; + border-radius: 0; + margin-bottom:0; + padding:5px 10px 2px; + border-bottom:1px solid #d1d0ce; + background: transparent; + } + .section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head > a { + padding-left: 22px; + } + .section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head > a:before { + left: 0; + } + .section-config.complex .section-config.with-button > .config > table > tbody > tr:last-child > td > .section-config > .entry-edit-head { + border:0; + } + .section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head a { + border-bottom:0; + } + + .section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .config { + border:0; + border-bottom:1px solid #d1d0ce; + border-radius: 0; + margin:0; + padding-bottom:50px; + } + .section-config.complex .section-config.with-button > .config > table > tbody > tr:last-child > td > .section-config > .config { + border-bottom:0; + } -.packaging-window .messages:before { - position: absolute; - left: 8px; - top: 50%; - margin-top: -11px; - background: none; - text-shadow: none; - width: auto; - height: auto; - border: 0; - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-weight: normal; - -webkit-font-smoothing: antialiased; - font-size: 16px; - content: '\e069'; - color: #963535; -} + .section-config .config h4 { + padding-left:25%; + font-size: 18px; + } -.packaging-window .validation-failed { - background: #fef0ed; - border: 1px dashed #d6340e; -} + .section-config .config td.label label.enabled:before { + content: "\e01e"; + color:#fff; + background: #65940a; + font-family: "MUI-Icons"; + font-weight: normal; + padding:3px; + font-size: 10px; + width:10px; + height:10px; + line-height: 10px; + overflow: hidden; + border-radius: 8px; + display: block; + float:left; + margin-right:5px; + } -.packaging-window { - .packaging-content { - overflow: auto; - overflow-x: hidden; - height: auto !important; - max-height: 400px; - .measures { - width: 50px; - } - .options-weight { - vertical-align: top; - } + .section-config.complex .section-config.with-button > .config:before { + content:''; + height: 9px; + width: 20px; + overflow: hidden; + display: block; + position: absolute; + bottom: 100%; + left: 50%; + z-index: 2; + margin-left: -10px; + background: url(../images/subconfig-bg.png) no-repeat 0 0; } -} -.packaging-window .package-options { - width: 100%; - border-top: 1px solid #ccc; - padding: 10px 0 0; - margin: 3px 0 0; -} + .section-config.config-advanced { + padding:30px 0 0; + } + .section-config.config-advanced > .entry-edit-head { + border:0; + padding: 0 0 0 25%; + } + .section-config.config-advanced > .entry-edit-head a { + border:0 !important; + } + .section-config.config-advanced > .config { + padding-left:0!important; + padding-right:0!important; + border:0!important; + border-radius: 0!important; + } -.packaging-window .package-options td { - vertical-align: middle; -} + .section-config.config-advanced > .entry-edit-head a { + margin-left:-22px; + } -.packaging-window .package-options .input-text { - width: 50px; -} -.packaging-window .package_prapare { - margin-bottom: 15px; -} + .section-config.with-button .config-heading strong { + display: block; + .style28(); + margin-bottom:5px; + } -.packaging-window .package-options .customs-value { - width: 80px; -} + .section-config.with-button .config-heading .button-container { + margin:15px 0 0; + } + .section-config.with-button .button-container { + line-height: 28px; + } + .section-config.with-button .button-container a { + margin-left:20px; + } -.packaging-window .package-options .options-weight { - width: 75px; -} + .section-config.with-button .action-configure span { + display: block; + position: relative; + text-align: center; + } + .section-config.with-button .action-configure .state-opened { + visibility: hidden; + height:0; + overflow: hidden; + } + .section-config.with-button .action-configure.open .state-opened { + visibility: visible; + height:auto; + overflow: auto; + } + .section-config.with-button .action-configure.open .state-closed { + visibility: hidden; + height:0; + overflow: hidden; + } -.packaging-window .package-options .options-units-weight { - width: 45px; -} + .accordion > dt + dd { + display: none; + } -.packaging-window .package-options .options-units-dimensions { - width: 45px; -} + .accordion > dt + .open:empty { + background: #fff url(../mui/images/ajax-loader-big.gif) no-repeat center; + height: 100px; + } -.packaging-window .package-options .options-content-type { - width: 120px; -} + // TODO: arrange configuration tables + .accordion .collapseable.disabled { + background: #f1f1f1; + } -.packaging-window .package-options input[type=text].disabled, -.packaging-window .package-options select.disabled { - background: #eee; -} + .accordion .collapseable.disabled > a { + cursor: not-allowed; + } -.packaging-window .package-options-contents { - border-top: 0; -} + .accordion .collapseable.disabled > a:before { + content: ''; + } -.packaging-window .package-add-products { - margin: 20px 0 0; -} + .accordion .config { + border: 0; + } -.packaging-window .package-add-products .grid { - padding: 0; -} + .accordion .config { + .comment a, + .link-more { + .style3(); + } + } -.packaging-window .package-add-products .grid button { - vertical-align: middle; -} + .accordion .config legend { + display: none; + } -.packaging-window .package-number { - font-weight: bold; -} + .accordion .config table { + width: 100%; + } -.packaging-window .package-number span { - margin-left: 5px; -} + .accordion .config .label { + float: none; + width: 33%; + padding-right: 30px; + text-align: right; + font-size: 14px; + font-weight: 600; + color: #303030; + } -.packed-window .entry-edit-head { - padding: 3px 5px; -} + .accordion .config .value .label { + padding: 6px 5px 0 15px; + vertical-align: top; + width: auto; + } -.packed-window .packed-content { - padding: 10px 10px 0; - overflow: auto; - max-height: 400px; -} + .accordion .config .value .label:first-child { + padding-left: 0; + } -.packed-window .package { - border-top: 1px solid #ededed; - margin-bottom: 30px; - padding: 10px; -} + .accordion .config .label label { + padding-top: 7px; + } -.packed-window .package:first-child { - border-top: 0; -} + .accordion .config td { + background: none; + border: 0; + padding: 22px 15px 0 0; + vertical-align: top; + } -.package-info { - background: #e6e3de; - border: 1px solid #c0bbaf; -} + .accordion .paypal-selection-simplified { + padding-left: 30px; + } -.package-info th { - font-weight: bold; -} + .accordion .paypal-selection input[type="checkbox"] { + margin: -4px 7px 0 0; + } -.packed-window .package-info table tbody tr td, -.packed-window .package-info table tbody tr th, -.package-info table tbody tr:nth-child(2n+1) td, -.package-info table tbody tr:nth-child(2n+1) th { - background: none; - border: 0; - padding: 5px 5px 2px; -} + .accordion .config input[type="text"], + .accordion .config input[type="password"], + .accordion .config select, + .accordion .config textarea { + width: 100%; + } -.packed-window .package .grid { - padding: 0; -} + .accordion .config input.input-file { + margin-top: 4px; + } -.packed-window .package-options { - width: 60%; -} + .accordion .config select.select-date { + width: 27%; + } -.packed-window .package-options td, -.packed-window .package-options th { - padding: 1px 0; -} + .accordion .config .value { + width: 44%; + padding-right: 40px; + .checkboxes { + list-style: none; + padding: 0; + margin: -3px 0 0; -.grid .popup-window { - text-align: left; -} + li { + margin: 7px 0; + } -.grid tr.on-mouse td .popup-window .data-table tbody tr:nth-child(2n+1) td, -.grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td, -.grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td, -.grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td, -.grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td, -.grid table tbody tr.on-mouse:hover td .popup-window .data-table tbody tr:nth-child(2n+1), -.grid table tbody tr.on-mouse:hover th .popup-window .data-table tbody tr:nth-child(2n+1) { - background-color: #fbfaf6; -} + input, + label { + vertical-align: middle; + } -.grid .popup-window { - text-align: left; -} + label { + margin-left: 5px; + } + } + } -.popup-window-buttons-set { - text-align: right; - padding: 25px; -} + .accordion .config .value.with-tooltip { + padding-top:5px; + } + .accordion .config .value.with-tooltip .tooltip { + position: relative; + top:0; + left:0; + right:0; + bottom:0; + float:right; + margin: 6px -28px 0 0; + } + .accordion .config .value.with-tooltip .tooltip-content { + padding: 18px; + margin: 0 -17px 10px 0; + right: 0; + bottom: 100%; + width: 239px; + max-width: 239px; + font-size: 13px; + line-height: 1.4; + background: #31302b; + background: rgba(49, 48, 43, .8); + border-radius: 5px; + } + .accordion .config .value.with-tooltip .tooltip-content:before { + content: ''; + position: absolute; + width: 0; + height: 0; + top: auto; + bottom:-5px; + left:auto; + right: 20px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #31302b; + border-bottom:0; + opacity: .8; + } -.popup-window-title { - background: #f3efea; - padding: 19px 20px; -} + .accordion .config .value.with-tooltip .help { + position: relative; + width:auto; + margin:0; + } -.popup-window-title .title { - color: #676056; - display: block; - font-size: 20px; - line-height: 1; -} + .accordion .config .scope-label { + color: #999; + font-size: 12px; + letter-spacing: .05em; + padding: 31px 15px 0 0; + } -.popup-window-title .actions { - float: right; -} + .accordion .config .note { + color: #303030; + font-size: 12px; + margin: 5px 0; + } -.popup-window-content { - padding: 25px 25px 0; -} + .accordion .config .note a { + .style22(); + } -.popup-window-content > ul { - list-style: none; - padding: 0; -} + .accordion .config .system-tooltip-box { + position: absolute; + } -.packaging-window .col-weight { - text-align: left; - width: 60px; -} + .accordion .paypal-selection { + margin: 10px; + width: 98%; + } -.packaging-window .col-qty { - text-align: left; - width: 80px; -} + .accordion .paypal-selection th { + padding: 6px 10px 7px; + } -.packed-window .col-qty, -.packed-window .col-weight, -.packed-window .col-qty_ordered { - text-align: right; - width: 70px; -} + .accordion .paypal-selection { + border-bottom: 2px solid #c0bbaf; + } -.packaging-window .col-select, -.packaging-window .col-measure { - text-align: center; - width: 35px; -} + .accordion .paypal-payment-notice { + margin: 10px; + } -.popup-fieldset-title .title { - color: #666; - display: inline-block; - font-size: 18px; - font-weight: normal; - padding: 7px 0 10px; -} + .accordion .custom-options { + border: 1px solid #999; + padding: 0 10px; + margin: 0 0 20px; + } -.popup-fieldset-title .actions { - float: right; -} + // + // Sales + // -------------------------------------- -.packaging-window select { - margin-bottom: 0; -} -.packaging-window .col-width, -.packaging-window .col-height, -.packaging-window .col-length, -.packaging-window .data-table .col-total-weight input[type="text"], -.packaging-window .data-table .col-custom input[type="text"] { - width: 60px; -} + .order-items .entry-edit-head .form-buttons { + float: right; + } -.packaging-window .col-total-weight { - white-space: nowrap; - width: 100px; -} + .order-items .entry-edit-head .icon-head { + display: inline; + } -.packaging-window .col-signature { - width: 160px; -} + .order-items .entry-edit-head { + margin-bottom: 20px; + } -.packaging-window .data-table .col-actions, -.packaging-window .col-total-weight, -.packaging-window .data-table .col-custom { - white-space: nowrap; -} + .order-items .entry-edit-head:before, + .order-items .entry-edit-head:after { + content: ""; + display: table; + } -.packaging-window .data-table .action-delete { - margin: 5px 0 0 5px; -} + .order-items .entry-edit-head:after { + clear: both; + } -.packaging-window .grid tr th { - border-bottom: 1px solid #c9c2b8; -} + // + // Import-export tax rates + // -------------------------------------- -.packaging-window .grid tr th:first-child, -.packaging-window .grid td:first-child, -.packaging-window .grid td:last-child { - border-left: 0; - border-right: 0; -} + .import-export-tax-rates input[type=file] { + margin-right: 10px; + } -.packaging-window .data-table .col-qty-edit { - white-space: nowrap; - width: 50px; -} + .import-tax-rates, + .export-tax-rates { + float: left; + width: 48.9362%; + } -.packaging-window .data-table .col-qty-edit input[type="text"] { - width: 50px; -} + .export-tax-rates { + margin-left: 2.12766%; + } -.sp-methods > dt { - font-weight: bold; -} + .import-export-tax-rates:before, + .import-export-tax-rates:after { + content: ""; + display: table; + } -.sp-methods > dd { - margin: 5px 0 5px 15px; -} + .import-export-tax-rates:after { + clear: both; + } -.sp-methods > dd > ul { - list-style: none; - padding: 0; -} + // + // Product + // -------------------------------------- -[class*="-order-"] .order-billing-address .packaging-window .actions, -[class*="-order-"] .order-shipping-address .packaging-window .actions { - margin: 0; -} + .tier { + margin: 20px 0 0; + } -/* - Popup Configuration Popup --------------------------------------- */ -#product_composite_configure_messages { - margin-left: 0 !important; - padding: 10px 15px; -} + // + // Edit attribute set + // -------------------------------------- -.rma-popup, .cms-popup { - background: #fff; - box-shadow: 0 3px 6px rgba(0, 0, 0, .4); - cursor: default; - position: fixed; - left: 50%; - top: 50%; - z-index: 1000; -} + .attribute-set-col { + display: block; + float: left; + margin-left: 2.127659574%; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 31.9149%; + } -.rma-popup { - width: 540px; - margin: 0 0 0 -271px; -} + .attribute-set-col:first-child { + margin-left: 0; + } -.rma-popup .entry-edit .fieldset { - border: none; -} + .attribute-set-tree { + margin-top: 5px; + overflow: auto; + height: 400px; + width: 100%; + } -.rma-popup .validation-advice, -.rma-popup label.mage-error { - margin-left: 0; -} + .attribute-set:before, + .attribute-set:after { + content: ""; + display: table; + } + .attribute-set:after { + clear: both; + } -.rma-popup .content { - background: #fff; - border-bottom: 1px solid #ccc; - max-height: 400px; - overflow: auto; -} + // + // Manage Categories + // -------------------------------------- -.rma-popup .content .grid { - padding: 0; -} + .catalog-category-edit .category-edit-title { + float: left; + } -.rma-popup .content .grid table { - border-bottom: 1px solid #cbd3d4; -} + // + // Catalog Price Rule + // -------------------------------------- -.rma-popup .product-options { - border-bottom: 1px solid #e7e7e7; - margin: 0 0 15px; - padding: 0 0 12px; -} + .rule-tree-wrapper { + line-height: 28px; + } -.rma-popup .product-options .required { - color: #333 !important; - font-weight: normal !important; -} + .rule-tree .fieldset { + min-width: 0; // Fixed Chrome fieldset issue + } -.rma-popup .product-options .required em { - color: #d40707; -} + @-moz-document url-prefix() { // Fixed Firefox fieldset issue + .rule-tree .fieldset { + display: table-cell; + } + } -.rma-popup .last-fieldset .product-options { - border: 0 none; - margin-bottom: 0; - padding-bottom: 0; -} + .rule-tree ul { + list-style: none; + padding-left: 16px; + border-left: dotted 1px #888; + } -.rma-popup .buttons-set { - text-align: right; - margin: 0; - overflow: hidden; - padding: 7px 10px 8px; -} + .rule-tree li { + margin: 0 0 10px; + } -.rma-popup .buttons-set { - width: 518px; -} + .rule-tree .x-tree ul { + padding-left: 0 !important; + border-left: none !important; + } -.cms-popup .buttons-set { - width: 289px; -} + .rule-param .label { + color: #000; + float: none; + text-align: left; + padding: 0; + vertical-align: baseline; + width: auto; + } -.rma-popup .buttons-set button { - margin: 0 0 0 5px; -} + .rule-param .label-disabled { + color: #eee; + cursor: default; + text-decoration: none; + } -.grid .rma-popup .form-list tr, -.grid tr.even .rma-popup .form-list tr, -.grid tr.on-mouse .rma-popup .form-list tr { - background: #fff !important; -} + .rule-chooser, + .rule-param .element, + .rule-param-edit .label { + display: none; + } -/* - URL rewrite --------------------------------------- */ -.adminhtml-urlrewrite-edit .field-entity-type-selector .label { - width: auto; -} + .rule-chooser .field-row { + .clearfix(); + display: block; + margin-bottom: 17px; + .input-text { + margin-top: 5px; + } + .ui-datepicker-trigger { + margin-left: 5px; + margin-top:-2px; + } + } -/* - Shopping Cart Price Rule --------------------------------------- */ -.fieldset .field-coupon_code, -.fieldset .field-rule_use_auto_generation { - margin-bottom: 0; -} + .rule-param input, + .rule-param select { + width: auto !important; + margin: 0; + min-width: 170px; + } -.field-rule_use_auto_generation .label { - margin-left: 5px; -} + .rule-param-edit .element { + display: inline; + } -.field-rule_use_auto_generation .nested { - margin-bottom: 29px; -} + .rule-param-edit .element .addafter { + padding-left: 5px; + } -/* - Product Image Placeholders --------------------------------------- */ -#catalog_placeholder .input-file, -#catalog_placeholder .delete-image > input { - margin-right: 5px; -} + [class^="rule-param-"] img, + .rule-chooser-trigger img { + vertical-align: middle; + } -/* Permanent Redirect for old URL */ -.control > [name="product[url_key_create_redirect]"], -.control > [name="general[url_key_create_redirect]"] { - float: left; - margin: 8px 5px 0 0; -} + .rule-chooser { + border: solid 1px #CCC; + margin: 20px; + padding: 15px 10px 5px; + overflow: auto; + } -.control > [name="product[url_key_create_redirect]"] + .label, -.control > [name="general[url_key_create_redirect]"] + .label { - width: auto; - padding-top: 8px; -} + .rule-param-wait { + background: url(../mui/images/ajax-loader-small.gif) no-repeat left center; + padding-left: 20px; + } -/* - New Product Attribute Set --------------------------------------- */ -.field-skeleton_set .select { - width: 100%; -} + // + // URL Rewrite + // -------------------------------------- -#affected-attribute-set-form .fieldset .field { - margin-bottom: 12px; + .field-entity-type-selector { + padding-top: 13px; + } - &:last-child { - margin-bottom: 0; + // jstree + .jstree-default .disabled > a { + color: #a29c94; } -} + // + // debug.less (end) + // -------------------------------------- -/* - Cache Management --------------------------------------- */ -.additional-cache-management .label { - margin-top: 5px; -} -/* - Categories --------------------------------------- */ -.category-content .form-inline.permissions-custom-options { - .messages { - li { - margin-top: 0; +// Magento Import instructions +//@magento_import "source/module.less"; // import theme styles + + // + // WYSIWYG editor styles fixes + // --------------------------------------------- + .defaultSkin { + table.mceLayout { + td { + background: #fff; + } + } + td.mceToolbar { + padding: 1px 0 0; } } - .data-table { - margin-bottom: 25px; + + .ui-tabs-panel { + border-top: 0; + } + #category_tab_content { + .ui-tabs-panel { + border-top: 1px solid #adadad; + } } } -/* - Marketing - Email Reminders --------------------------------------- */ -.lt-1280 .adminhtml-reminder-edit #customerGrid .grid .filter .range div.date { - min-width: 0; -} +// +// IE9 styles +// --------------------------------------------- -/* - Customers - Manage Shopping Cart --------------------------------------- */ -.checkout-index-index { - .products-search { - margin-top: 35px; - > .actions { - text-align: right; - margin: 10px 0; +.ie9 { +.admin__scope-old { + select { + &:not([multiple]) { + padding-right: 4px; + min-width: 0; + } + } + + // Table Filters + .filter select { + &:not([multiple]) { + padding-right: 0; } } - .shopping-cart-items { - > .actions { - margin-bottom: 15px; + + .adminhtml-widget-instance-edit { + .grid-chooser .control { + margin-top: -18px; } - .box-left, - .box.right { - width: 49%; - fieldset { - border-radius: 5px; + } + .page-layout-admin-1column .page-columns, + .catalog-product-edit, + .catalog-product-new, + .sales-order-view, + .catalog-category-edit { + table.data { + table-layout: fixed; + word-wrap: break-word; + th { + word-wrap: normal; + overflow: hidden; + vertical-align: top; + > span { + white-space: normal; + } + } + th:not(.col-select):not(.col-id):not(.col-severity), + td:not(.col-select):not(.col-id):not(.col-severity) { + width: auto; } } - .box-left { - float: left; + } + + #setGrid_table, + #attributeGrid_table, + .custom-options .data-table, + .ui-dialog .data, + .page-layout-admin-1column .page-columns .data, + .sales-order-view .data, + .catalog-category-edit .data { + word-wrap: break-word; + table-layout: fixed; + } + .fieldset-wrapper { + table.data { + table-layout: inherit; + word-wrap: normal; } - .box.right { - float: right; + } + .sales-order-create-index table.data, + .sales-order-create-index .fieldset-wrapper table.data { + table-layout: fixed; + word-wrap: break-word; + th { + word-wrap: normal; + overflow: hidden; + vertical-align: top; + > span { + white-space: normal; + } } } - .grid table .action-configure { - float: right; + + .entry-edit .product-options .grouped-items-table { + table-layout: fixed; + word-wrap: break-word; + th { + word-wrap: normal; + overflow: hidden; + vertical-align: top; + > span { + white-space: normal; + } + } } -} -/* - Clearfix --------------------------------------- */ -.shopping-cart-items:before, -.shopping-cart-items:after, -.image-panel:before, -.image-panel:after, -.images:before, -.images:after, -.tax-rate-popup .field:before, -.tax-rate-popup .field:after, -.clearfix:before, -.clearfix:after, -#tab_content_downloadableInfo .data-table td .row:before, -#tab_content_downloadableInfo .data-table td .row:after { - content: ""; - display: table; + .catalog-category-edit, + .adminhtml-cache-index, + .adminhtml-process-list, + .indexer-indexer-list, + .adminhtml-notification-index { + table.data { + table-layout: inherit; + word-wrap: normal; + } + } } - -.shopping-cart-items:after, -.image-panel:after, -.images:after, -.tax-rate-popup .field:after, -.clearfix:after, -#tab_content_downloadableInfo .data-table td .row:after { - clear: both; } -/* ========================================================================== - pages.less (end) - ========================================================================== */ - -/* ========================================================================== - debug.less (begin) - ========================================================================== */ -///* -// This file was created to debug old classes in order to indicate where we must replase it with new ones - -.debug { - border: 1px solid red !important; +// +// Pages styles +// --------------------------------------------- + +[class^=" catalog-product-"], +[class^=" newsletter-"] { + .admin__scope-old { + .page-actions .action-back.mage-error { + color: #b57c72; + } + } } -/* - Accordion -------------------------*/ -.accordion { - margin: 0 0 8px; - padding: 0; +.catalog-product-new, +.catalog-product-edit { + .admin__scope-old { + .user-defined.type-select select { + width: 100%; + } + } } -.accordion > dt, -.accordion > dd.open, -.accordion .collapseable, -.section-config.active > .collapseable + input + fieldset, -.accordion .collapseable.open + input + fieldset { - background: #fff; - padding: 5px 18px 2px; - position: relative; +.customer-index-edit { + .admin__scope-old { + .grid tr.headings th > span { + white-space: normal; + } + } } -.accordion > dt + dd { - display: none; +// Configuration -> Payment Methods +.adminhtml-system-config-edit { + .admin__scope-old { + .payflow-settings-notice { + padding: 10px; + .important-label { + .style32(); + } + ul.options-list strong { + .style28(); + } + } + } } -.accordion > dt.open, -.section-config.active > .collapseable, -.accordion .collapseable.open { - margin: 0; - border-bottom: 0; - border-radius: 5px 5px 0 0; -} -.section-config.active > .collapseable + input + fieldset, -.accordion > dt + dd.open, -.accordion .collapseable.open + input + fieldset { - padding: 25px 18px 18px; - display: block; - margin-left: 0; - border-top: 0; - border-radius: 0 0 5px 5px; +.adminhtml-googleshopping-items-index { + .admin__scope-old { + .grid-title { + padding: 15px; + .title { + font-size: 18px; + } + } + .grid { + padding-bottom: 25px; + } + .page-actions { + float: right; + } + } } -.section-config > .collapseable > a, -.accordion > dt a, -.accordion .collapseable > a { - .style10(); - display: block; - padding: 7px 0 10px 22px; - text-decoration: none; - position: relative; - cursor: pointer; - border-bottom: 1px solid #cac3b4; +.adminhtml-system-backup-index, +.adminhtml-scheduled-operation-index, +.adminhtml-system-currency-index, +.adminhtml-system-currencysymbol-index, +.adminhtml-cache-index, +.adminhtml-system-store-index, +.sales-order-status-index { + .admin__scope-old { + .page-actions.fixed { + background-image: none; + padding: 0 21px; + position: fixed; + } + } } -.section-config > .collapseable > a i, -.accordion > dt a i, -.accordion .collapseable > a i { - .style31(); +.adminhtml-system-currency-index { + .admin__scope-old { + .page-actions.fixed .import-service { + display: inline-block; + float: none; + } + } } -.section-config.active > .collapseable > a, -.accordion .collapseable.open a, -.accordion dt.open a { - /*border-bottom: 1px solid #ededed;*/ -} -.section-config > .collapseable > a:before, -.accordion > dt a:before, -.accordion .collapseable > a:before { - position: absolute; - left: 0; - top: 11px; - font-family: 'MUI-Icons'; - font-style: normal; - speak: none; - font-size: 16px; - font-weight: normal; - -webkit-font-smoothing: antialiased; - content: '\e02a'; /* arrow right icon */ - color: #b2b0ad; +.adminhtml-cache-index { + .admin__scope-old { + .additional-cache-management { + margin-bottom: 0; + } + } } - -.section-config.active > .collapseable > a:before, -.accordion > dt.open a:before, -.accordion .collapseable.open a:before { - content: '\e02c'; /* arrow down icon */ -} -.section-config > .collapseable > a:hover:before, -.accordion > dt a:hover:before, -.accordion .collapseable > a:hover:before { - color: #7e7e7e; +// Reports - PayPal Settlement Reports +.adminhtml-paypal-reports-index { + .admin__scope-old { + .grid tr.headings th > span { + white-space: normal; + } + .col-transaction_event_code { + max-width: 150px; + } + .col-amount, + .col-fee-amount { + text-align: right; + } + } } -/* PayPal connected */ - -.section-config.complex .section-config.with-button { - padding:20px 15px; - margin:0 -30px 0 -15px; - border-bottom:1px solid #eae6e0; +// Newsletter Templates +.newsletter-template-index { + .admin__scope-old { + .col-id { + width: 35px; + } + .col-actions { + width: 80px; + } + .col-type { + width: 100px; + } + .col-added, + .col-updated { + width: 140px; + } + } } -.section-config.complex tr:last-child .section-config.with-button { - border-bottom:0; +[class^=' newsletter-'] { + .admin__scope-old { + .buttons-set { + margin: 0 0 15px; + button { + margin-right: 4px; + } + } + } } -.section-config.complex .section-config.with-button > .entry-edit-head { - padding: 0 0 0 25px; - border:0; +// Newsletter - Queue +.newsletter-queue-index { + .admin__scope-old { + .col-id { + width: 35px; + } + .col-finish, + .col-start { + width: 130px; + } + .col-status, + .col-processed, + .col-recipients { + white-space: nowrap; + width: 85px; + } + td.col-processed, + .newsletter-queue-index td.col-recipients { + text-align: right; + } + .col-actions { + width: 80px; + } + } } -.section-config.complex .section-config.with-button.enabled > .entry-edit-head:before { - content: "\e01e"; - color:#fff; - background: #65940a; - font-family: "MUI-Icons"; - font-weight: normal; - padding:3px; - font-size: 10px; - width:10px; - height:10px; - line-height: 10px; - overflow: hidden; - border-radius: 8px; - display: block; - float:left; - margin-left:-25px; - margin-top:0; +// Newsletter - Subscribers +.newsletter-subscriber-index { + .admin__scope-old { + .col-id { + width: 35px; + } + .col-type { + width: 75px; + } + .col-status { + white-space: nowrap; + width: 85px; + } + } } -.section-config.complex .section-config.with-button > .config { - margin:10px -10px; - border:1px solid #d1d0ce; - border-radius: 0; - padding:5px 0; -} -.section-config.complex .section-config.with-button > .config > table > tbody > tr > td { - padding:0; +// Newsletter - Problems +.newsletter-problem-index { + .admin__scope-old { + .col-select { + width: 25px; + } + .col-id { + width: 35px; + } + .col-start { + width: 130px; + } + .col-error-code { + width: 150px; + } + } } -.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head { - border:0; - border-radius: 0; - margin-bottom:0; - padding:5px 10px 2px; - border-bottom:1px solid #d1d0ce; - background: transparent; -} -.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head > a { - padding-left: 22px; -} -.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head > a:before { - left: 0; -} -.section-config.complex .section-config.with-button > .config > table > tbody > tr:last-child > td > .section-config > .entry-edit-head { - border:0; -} -.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head a { - border-bottom:0; +[class*="-order-"] .admin__scope-old .order-history, +[class*="-order-"] .admin__scope-old .order-comments-history, +[class*="-order-"] .admin__scope-old .order-information, +[class*="-order-"] .admin__scope-old .order-billing-address, +[class*="-order-"] .admin__scope-old .order-payment-method, +[class^=" adminhtml-rma-"] .admin__scope-old .order-comments-history, +[class^=" adminhtml-rma-"] .admin__scope-old .order-shipping-address, +[class^=" adminhtml-rma-"] .admin__scope-old .rma-request-details { + float: left; + width: 49.5%; } -.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .config { - border:0; - border-bottom:1px solid #d1d0ce; - border-radius: 0; - margin:0; - padding-bottom:50px; -} -.section-config.complex .section-config.with-button > .config > table > tbody > tr:last-child > td > .section-config > .config { - border-bottom:0; +[class*="-order-"] .admin__scope-old .order-totals, +[class*="-order-"] .admin__scope-old .order-account-information, +[class*="-order-"] .admin__scope-old .order-shipping-address, +[class*="-order-"] .admin__scope-old .order-payment-method-virtual, +[class*="-order-"] .admin__scope-old .order-shipping-method, +[class^=" adminhtml-rma-"] .admin__scope-old .rma-confirmation, +[class^=" adminhtml-rma-"] .admin__scope-old .order-shipping-method, +[class^=" adminhtml-rma-"] .admin__scope-old .order-return-address { + float: right; + width: 49%; } -.section-config .config h4 { - padding-left:25%; - font-size: 18px; -} +[class*="-order-"] { + .admin__scope-old { + .order-card-validation { + width: 49.5%; + box-sizing: border-box; -.section-config .config td.label label.enabled:before { -} -.section-config .config td.label label.enabled:before { - content: "\e01e"; - color:#fff; - background: #65940a; - font-family: "MUI-Icons"; - font-weight: normal; - padding:3px; - font-size: 10px; - width:10px; - height:10px; - line-height: 10px; - overflow: hidden; - border-radius: 8px; - display: block; - float:left; - margin-right:5px; + .actions { + margin-top: 17px; + } + } + .order-totals { + .field.choice { + margin: 20px 0; + } + } + } } -.section-config.complex .section-config.with-button > .config:before { - content:''; - height: 9px; - width: 20px; - overflow: hidden; - display: block; - position: absolute; - bottom: 100%; - left: 50%; - z-index: 2; - margin-left: -10px; - background: url(../images/subconfig-bg.png) no-repeat 0 0; +[class^=" sales-"] { + .admin__scope-old { + .order-information .fieldset-wrapper > .fieldset-wrapper-title .title { + width: 100%; + } + } } -.section-config.config-advanced { - padding:30px 0 0; -} -.section-config.config-advanced > .entry-edit-head { - border:0; - padding: 0 0 0 25%; -} -.section-config.config-advanced > .entry-edit-head a { - border:0 !important; -} -.section-config.config-advanced > .config { - padding-left:0!important; - padding-right:0!important; - border:0!important; - border-radius: 0!important; +.adminhtml-rma-new .admin__scope-old .order-totals, +[class^=" adminhtml-rma-"] .admin__scope-old .rma-comments-history { + float: none; + width: 100%; } -.section-config.config-advanced > .entry-edit-head a { - margin-left:-22px; +[class*="-order-"] .admin__scope-old .order-billing-address .actions, +[class*="-order-"] .admin__scope-old .order-shipping-address .actions { + margin: 17px 0; } - -.section-config.with-button .config-heading strong { - display: block; - .style28(); - margin-bottom:5px; +[class*="-order-"] .admin__scope-old .order-billing-address .control + label, +[class*="-order-"] .admin__scope-old .order-shipping-address .control + label { + margin: 17px 0 0; } -.section-config.with-button .config-heading .button-container { - margin:15px 0 0; +.sales-order-create-index #order-message .admin__scope-old .messages .message, +.sales-order-edit-index #order-message .admin__scope-old .messages .message { + margin: 0 0 60px; } -.section-config.with-button .button-container { - line-height: 28px; + +.sales-order-create-index .admin__scope-old .order-items.fieldset-wrapper, +.sales-order-create-index .admin__scope-old .order-search-items.fieldset-wrapper, +.sales-order-create-index .admin__scope-old .order-additional-area.fieldset-wrapper, +.sales-order-create-index .admin__scope-old .order-errors, +.checkout-index-index .checkout-errors { + .fieldset-wrapper-title { + border-bottom: 0; + margin: 0; + } + .title { + border-bottom: 1px solid #cac3b4; + margin: 0 0 18px; + width: 100%; + } } -.section-config.with-button .button-container a { - margin-left:20px; + +[class*="-order-"] .admin__scope-old { + .fieldset-wrapper-title { + .actions { + float: right; + padding: 0; + a:link, + a:visited, + a:hover, + a:active { + color: #a29c94; + } + } + } + .order-customer-selector .fieldset-wrapper-title .actions { + padding-top: 8px; + } + .order-details .fieldset-wrapper-title .actions { + padding-bottom: 15px; + } } -.section-config.with-button .action-configure span { - display: block; - position: relative; - text-align: center; +.sales-order-create-index { + .admin__scope-old { + // Configure product popup + .ui-dialog { + // Virtual and downloadable product + .downloadable.information .link { + .label { + margin-left: 0; + } + .nested { + margin-left: 8px; + } + } + // Bundle product + .fieldset.bundle { + .nested { + padding-left: 6px; + .field { + margin: 0 0 5px; + } + .label { + font-size: 13px; + margin: 0; + } + .qty .control { + display: inline-block; + margin: 0 0 0 10px; + width: 60px; + } + } + } + } + .order-billing-method { + .payment-methods { + .fieldset { + padding: 0; + margin: 0; + .field { + margin: 0 0 12px 0; + } + } + } + } + .grid .action-configure { + float: right; + &.disabled { + cursor: default; + opacity: .5; + &:hover { + text-decoration: none; + } + } + } + .order-items.fieldset-wrapper { + .clearfix(); + } + } } -.section-config.with-button .action-configure .state-opened { - visibility: hidden; - height:0; - overflow: hidden; + +[class^=" sales-"] { + .admin__scope-old { + tr.headings { + .col-parent-transaction-id > span, + .col-method > span, + .col-transaction-id > span, + .col-transaction-type > span, + .col-gtbase > span, + .col-gtpurchased > span, + .col-discont > span { + white-space: normal; + } + } + } } -.section-config.with-button .action-configure.open .state-opened { - visibility: visible; - height:auto; - overflow: auto; + +[class*="-order-"] { + .admin__scope-old { + .col-price .label, + .col-subtotal .label { + display: inline-block; + min-width: 60px; + white-space: nowrap; + } + .order-subtotal .label { + width: 80%; + } + } } -.section-config.with-button .action-configure.open .state-closed { - visibility: hidden; - height:0; - overflow: hidden; + +[class*="-order-"] { + .admin__scope-old { + .item-options { + margin: 5px 0 5px 10px; + dt { + font-weight: bold; + } + dd { + margin: 0 0 0 10px; + } + } + } } -.accordion > dt + dd { - display: none; +[class~=" -order-creditmemo-"] { + .admin__scope-old { + .no-items { + padding-top: 13px; + text-align: center; + } + } } -.accordion > dt + .open:empty { - background: #fff url(../mui/images/ajax-loader-big.gif) no-repeat center; - height: 100px; +.adminhtml-order-shipment-new { + .admin__scope-old { + .order-totals .fieldset-wrapper { + padding-top: 18px; + } + } } -/* TODO: arrange configuration tables */ -.accordion .collapseable.disabled { - background: #f1f1f1; +[class^=" adminhtml-rma-"], +.adminhtml-rma-edit { + .admin__scope-old { + .rma-items th.col-qty span { + text-align: left; + white-space: normal; + } + } } -.accordion .collapseable.disabled > a { - cursor: not-allowed; +.adminhtml-rma-edit .admin__scope-old .data-table .col-carrier, +[class^=" sales-billing-agreement-"] .admin__scope-old .log-details .data-table th { + width: 20%; } -.accordion .collapseable.disabled > a:before { - content: ''; +.adminhtml-rma-edit { + .admin__scope-old { + .data-table { + .col-title { + width: 35%; + } + .col-number { + width: 25%; + } + } + } } -.accordion .config { - border: 0; +[class*="-order-"] .admin__scope-old .order-shipping-address .price, +.order-shipping-address .admin__scope-old .shipping-description-title { + font-weight: bold; } -.accordion .config { - .comment a, - .link-more { - .style3(); +[class^=" adminhtml-rma-"] { + .admin__scope-old { + .col-actions a { + cursor: pointer; + white-space: nowrap; + } + .col-reason input[type="text"] { + margin: 5px 0 0; + width: 100%; + } + .col-actions .separator { + margin: 0 3px; + } } } -.accordion .config legend { - display: none; +[class^=" sales-"] { + .admin__scope-old { + .order-payment-method .data-table { + margin-top: 15px; + } + .order-payment-currency { + margin-top: 15px; + } + .grid .data { + border-bottom: 1px solid #c0bbaf; + } + .grid td .option-label { + font-weight: bold; + } + .grid td .option-value { + margin: 0 0 0 10px; + } + } } -.accordion .config table { - width: 100%; +[class^=" adminhtml-extension-custom-"] { + .admin__scope-old { + #authors_fieldset .data-table td { + vertical-align: top; + } + } } -.accordion .config .label { - float: none; - width: 33%; - padding-right: 30px; - text-align: right; - font-size: 14px; - font-weight: 600; - color: #303030; +[class*="-order-"] { + .admin__scope-old { + .order-billing-address .packaging-window .actions, + .order-shipping-address .packaging-window .actions { + margin: 0; + } + } } -.accordion .config .value .label { - padding: 6px 5px 0 15px; - vertical-align: top; - width: auto; +// +// Tables +// --------------------------------------------- + +// Sales +[class^=' sales-order-'] { + .admin__scope-old { + .grid .col-name { + &:extend(.col-220-max all); + } + } } -.accordion .config .value .label:first-child { - padding-left: 0; +.sales-order-view { + .admin__scope-old { + .grid { + .col-name { + &:extend(.col-150-max all); + } + .col-period { + &:extend(.col-70-max all); + } + } + } } -.accordion .config .label label { - padding-top: 7px; +.sales-order-index { + .admin__scope-old { + .grid .col-name { + &:extend(.col-110-max all); + } + } } -.accordion .config td { - background: none; - border: 0; - padding: 22px 15px 0 0; - vertical-align: top; +.sales-order-create-index { + .admin__scope-old { + .col-phone { + &:extend(.col-70-max all); + } + .col-in_products { + &:extend(.col-70); + } + } } -.accordion .paypal-selection-simplified { - padding-left: 30px; +// Sales -> Create Order +.sales-order-create-index, +.sales-order-edit-index { + .admin__scope-old { + .grid, + .grid-actions { + &:extend(.side-paddings-0); + table .action-configure { + float: right; + &.disabled { + cursor: default; + opacity: .5; + &:hover { + text-decoration: none; + } + } + } + } + .data-table { + .border td { + padding-bottom: 15px; + } + .col-product { + &:extend(.ellipsis all); + &:extend(.col-150-max all); + } + } + .actions.update { + margin: 10px 0; + } + } } -.accordion .paypal-selection input[type="checkbox"] { - margin: -4px 7px 0 0; +// Sales -> Create Shipment +.adminhtml-order-shipment-new { + .admin__scope-old { + .grid .col-product { + max-width: 770px; + width: 770px; + } + } } -.accordion .config input[type="text"], -.accordion .config input[type="password"], -.accordion .config select, -.accordion .config textarea { - width: 100%; +// Sales -> View order +[class^=' sales-order-view'] { + .admin__scope-old { + .grid .col-customer_name { + &:extend(.col-110-max all); + } + } } -.accordion .config input.input-file { - margin-top: 4px; +// Sales -> Return +[class^=' adminhtml-rma-'] { + .admin__scope-old { + .fieldset-wrapper .data-table td { + &:extend(.ellipsis all); + &:extend(.col-670-max); + } + .grid { + .col-product_sku { + &:extend(.ellipsis all); + &:extend(.col-70-max all); + } + .col-name, + .col-product { + &:extend(.col-150-max all); + } + .col-product_name { + &:extend(.ellipsis all); + &:extend(.col-110-max all); + } + } + .col-actions { + a { + &:extend(.col-actions-links); + } + } + .rma-request-details { + &:extend(.data-table-td-max all); + } + #rma_items_grid_table .headings th { + &:extend(.nowrap all); + } + } } -.accordion .config select.select-date { - width: 27%; +.adminhtml-rma-edit { + .admin__scope-old { + .col-product, + .col-sku { + &:extend(.col-70-max all); + } + } } -.accordion .config .value { - width: 44%; - padding-right: 40px; - .checkboxes { - list-style: none; - padding: 0; - margin: -3px 0 0; - li { - margin: 7px 0; +// +// Products +// -------------------------------------- +.catalog-product-index { + .admin__scope-old { + .grid .col-name { + &:extend(.col-110-max all); } + } +} - input, - label { - vertical-align: middle; +.catalog-product-edit { + .admin__scope-old { + .ui-tabs-panel .grid { + .hor-scroll { + &:extend(.h-scroll); + } + .col-name, + .col-type, + .col-sku { + &:extend(.col-70-max all); + } + .col-price, + .col-position { + &:extend(.col-50 all); + } } + } +} - label { - margin-left: 5px; +.catalog-product-index { + .admin__scope-old { + .grid .hor-scroll { + &:extend(.h-scroll); } } } -.accordion .config .value.with-tooltip { - padding-top:5px; -} -.accordion .config .value.with-tooltip .tooltip { - position: relative; - top:0; - left:0; - right:0; - bottom:0; - float:right; - margin: 6px -28px 0 0; -} -.accordion .config .value.with-tooltip .tooltip-content { - padding: 18px; - margin: 0 -17px 10px 0; - right: 0; - bottom: 100%; - width: 239px; - max-width: 239px; - font-size: 13px; - line-height: 1.4; - background: #31302b; - background: rgba(49, 48, 43, .8); - border-radius: 5px; -} -.accordion .config .value.with-tooltip .tooltip-content:before { - content: ''; - position: absolute; - width: 0; - height: 0; - top: auto; - bottom:-5px; - left:auto; - right: 20px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #31302b; - border-bottom:0; - opacity: .8; +.catalog-product-review-index { + .admin__scope-old { + .grid { + .col-name, + .col-title { + &:extend(.col-110-max all); + } + } + } } -.accordion .config .value.with-tooltip .help { - position: relative; - width:auto; - margin:0; +// Products -> Categories +.catalog-category-edit { + .admin__scope-old { + .grid { + .col-name { + &:extend(.col-220-max all); + } + } + } } -.accordion .config .scope-label { - color: #999; - font-size: 12px; - letter-spacing: .05em; - padding: 31px 15px 0 0; +// Customer +.customer-index-index { + .admin__scope-old { + .grid { + .col-name { + max-width: 90px; + width: 90px; + } + .col-customer_since, + .col-billing_country_id { + &:extend(.col-70-max all); + } + .col-billing_region { + width: 70px; + } + } + } } -.accordion .config .note { - color: #303030; - font-size: 12px; - margin: 5px 0; +[class^=' customer-index-'] { + .admin__scope-old { + .fieldset-wrapper, + .accordion { + .grid .col-created_at { + &:extend(.col-70-max all); + } + } + .col-action a { + &:extend(.col-actions-links); + } + } } -.accordion .config .note a { - .style22(); +.customer-index-edit { + .admin__scope-old { + .ui-tabs-panel .grid .col-name { + &:extend(.col-110-max all); + } + } } -.accordion .config .system-tooltip-box { - position: absolute; +// Customer -> Customer Segments +.col-grid_segment_name { + .admin__scope-old { + &:extend(.col-570-max all); + &:extend(.ellipsis all); + } } -.accordion .paypal-selection { - margin: 10px; - width: 98%; +// Marketing -> Catalog Event +.adminhtml-catalog-event-index { + .admin__scope-old { + .col-category { + &:extend(.ellipsis all); + &:extend(.col-220-max all); + } + } } -.accordion .paypal-selection th { - padding: 6px 10px 7px; +// Marketing -> Search Terms +[class^=' catalog-search'] { + .admin__scope-old { + .col-search_query, + .col-synonym_for, + .col-redirect { + &:extend(.ellipsis all); + &:extend(.col-150-max all); + } + } } -.accordion .paypal-selection { - border-bottom: 2px solid #c0bbaf; +// Marketing -> URL Rewrites +.adminhtml-urlrewrite-index { + .admin__scope-old { + .col-request_path { + &:extend(.ellipsis all); + &:extend(.col-150-max all); + } + } } -.accordion .paypal-payment-notice { - margin: 10px; +// Marketing -> Reviews +.review-product-index { + .admin__scope-old { + .grid { + .hor-scroll { + &:extend(.h-scroll); + } + .col-name { + &:extend(.col-110-max all); + } + } + } } -.accordion .custom-options { - border: 1px solid #999; - padding: 0 10px; - margin: 0 0 20px; +// Content -> Pages +.adminhtml-cms-page-index { + .admin__scope-old { + .col-title, + .col-identifier { + &:extend(.ellipsis all); + &:extend(.col-110-max all); + } + } } -/* - Sales --------------------------------------- */ - -.order-items .entry-edit-head .form-buttons { - float: right; +// Content -> Hierarchy +.adminhtml-cms-hierarchy-index { + .admin__scope-old { + .col-title, + .col-identifier { + &:extend(.ellipsis all); + max-width: 410px; + width: 410px; + } + } } -.order-items .entry-edit-head .icon-head { - display: inline; +// Content -> Frontend Apps +.adminhtml-widget-instance-index { + .admin__scope-old { + .col-title { + &:extend(.col-370-max all); + &:extend(.ellipsis all); + } + } } -.order-items .entry-edit-head { - margin-bottom: 20px; +.adminhtml-widget-instance-edit { + .admin__scope-old { + .grid-chooser .control { + margin-top: -19px; + width: 80%; + .grid-actions { + padding: 0 0 15px; + } + .grid { + padding: 0; + } + .addon { + input:last-child, + select:last-child{ + border-radius: 0; + } + } + } + } } -.order-items .entry-edit-head:before, -.order-items .entry-edit-head:after { - content: ""; - display: table; +// Reports -> Low Stock +.reports-report-product-lowstock { + .admin__scope-old { + .grid { + .col-name { + &:extend(.col-670-max all); + } + .col-sku { + &:extend(.col-220-max all); + } + } + } } -.order-items .entry-edit-head:after { - clear: both; +.reports-report-shopcart-product, +.reports-report-review-customer { + .admin__scope-old { + .grid .col-name { + &:extend(.col-670-max all); + } + } } -/* - Import-export tax rates --------------------------------------- */ -.import-export-tax-rates input[type=file] { - margin-right: 10px; +.reports-report-shopcart-abandoned { + .admin__scope-old { + .grid .col-name { + &:extend(.col-150-max all); + } + } } -.import-tax-rates, -.export-tax-rates { - float: left; - width: 48.9362%; +// Reports +[class^=' reports-'] [class^='col-total'], +[class^=' reports-'] [class^='col-average'], +[class^=' reports-'] [class^='col-ref-'], +[class^=' reports-'] [class^='col-rate'], +[class^=' reports-'] [class^='col-tax-amount'] { + .admin__scope-old { + &:extend(.col-70 all); + } } -.export-tax-rates { - margin-left: 2.12766%; +.reports-report-sales-invoiced, +.reports-report-sales-refunde { + .admin__scope-old { + .grid .col-period { + &:extend(.col-auto all); + } + } } -.import-export-tax-rates:before, -.import-export-tax-rates:after { - content: ""; - display: table; +// Reports -> Search Terms +.reports-index-search { + .admin__scope-old { + .col-query_text { + &:extend(.col-570-max all); + &:extend(.ellipsis all); + } + } } -.import-export-tax-rates:after { - clear: both; +// Reports -> Ordered Products Report +.reports-report-product-sold { + .admin__scope-old { + .grid .col-name { + max-width: 720px; + width: 720px; + } + } } -/* - Product --------------------------------------- */ -.tier { - margin: 20px 0 0; +// Reports -> Newsletter Problem Reports +.newsletter-problem-index { + .admin__scope-old { + .grid { + .col-name, + .col-subject, + .col-product { + &:extend(.col-220-max all); + } + } + } } -/* - Edit attribute set --------------------------------------- */ -.attribute-set-col { - display: block; - float: left; - margin-left: 2.127659574%; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 31.9149%; +// Content -> Banners +.adminhtml-banner-edit { + .admin__scope-old { + .grid .col-name { + &:extend(.col-220-max all); + } + } } -.attribute-set-col:first-child { - margin-left: 0; +// Stroes -> Tax rules +.tax-rule-index { + .admin__scope-old { + .grid .col-title { + &:extend(.col-150-max all); + } + } } -.attribute-set-tree { - margin-top: 5px; - overflow: auto; - height: 400px; - width: 100%; +// Stores -> Returns Attributes +.adminhtml-rma-item-attribute-index { + .admin__scope-old { + .grid { + .col-label { + &:extend(.col-220-max all); + } + .col-attr-code { + &:extend(.ellipsis); + &:extend(.col-150-max all); + } + } + } } -.attribute-set:before, -.attribute-set:after { - content: ""; - display: table; -} -.attribute-set:after { - clear: both; +.adminhtml-rma-edit { + .admin__scope-old { + .hor-scroll { + &:extend(.h-scroll); + } + } } -/* - Manage Categories --------------------------------------- */ -.catalog-category-edit .category-edit-title { - float: left; +// Stores -> All Stores +.adminhtml-system-store-index { + .admin__scope-old { + .grid td { + &:extend(.ellipsis all); + max-width: 310px; + } + } } -/* - Catalog Price Rule --------------------------------------- */ -.rule-tree-wrapper { - line-height: 28px; -} -.rule-tree .fieldset { - min-width: 0; // Fixed Chrome fieldset issue +// Stores -> Currency +.adminhtml-system-currency-index { + .admin__scope-old { + .grid { + padding-top: 0; + } + .col-currency-edit-rate { + min-width: 40px; + } + .col__base-currency { + font-weight: bold; + } + .old-rate { + display: block; + margin-top: 3px; + text-align: center; + } + .hor-scroll { + overflow-x: auto; + min-width: 970px; + } + } } -@-moz-document url-prefix() { // Fixed Firefox fieldset issue - .rule-tree .fieldset { - display: table-cell; +// Stores -> Currency symbol +.adminhtml-system-currencysymbol-index { + .admin__scope-old { + .col-currency { + width: 35%; + } + .grid .input-text { + margin: 0 10px 0 0; + width: 50%; + } } } -.rule-tree ul { - list-style: none; - padding-left: 16px; - border-left: dotted 1px #888; +// Stores -> Customer attributes +[class^=' adminhtml-customer-'], +.adminhtml-rma-item-attribute-index { + .admin__scope-old { + .col-label { + &:extend(.col-370-max all); + } + .col-required, + .col-system, + .col-is_visible, + .col-sort_order { + &:extend(.col-70 all); + } + } } -.rule-tree li { - margin: 0 0 10px; +// Stores -> Product Attribute +.catalog-product-attribute-index { + .admin__scope-old { + .col-attr-code, + .col-label { + &:extend(.col-110-max all); + &:extend(.ellipsis); + } + [class^=' col-is_'], + .col-required, + .col-system { + &:extend(.col-70 all); + } + } } -.rule-tree .x-tree ul { - padding-left: 0 !important; - border-left: none !important; +.catalog-product-set-index { + .admin__scope-old { + .col-set_name { + max-width: 930px; + width: 930px; + } + } } -.rule-param .label { - color: #000; - float: none; - text-align: left; - padding: 0; - vertical-align: baseline; - width: auto; +// System -> Export +.adminhtml-export-index { + .admin__scope-old { + .grid-actions, + .grid { + &:extend(.side-paddings-0); + } + .col-label, + .col-code { + &:extend(.col-220-max all); + } + .col-code { + &:extend(.ellipsis all); + } + .grid { + td { + vertical-align: middle; + } + .input-text-range { + margin: 0 10px 0 5px; + width: 37%; + } + .input-text-range-date { + margin: 0 5px; + width: 32%; + } + } + .ui-datepicker-trigger { + display: inline-block; + margin: -3px 10px 0 0; + vertical-align: middle; + } + } } -.rule-param .label-disabled { - color: #eee; - cursor: default; - text-decoration: none; +// System -> Scheduled Imports/Exports +.adminhtml-scheduled-operation-index { + .admin__scope-old { + .grid .col-name { + &:extend(.col-220-max all); + } + } } -.rule-chooser, -.rule-param .element, -.rule-param-edit .label { - display: none; +// System -> Report +.adminhtml-logging-index { + .admin__scope-old { + .grid .col-fullaction { + &:extend(.ellipsis all); + &:extend(.col-220-max all); + } + } } -.rule-chooser .field-row { - .clearfix(); - display: block; - margin-bottom: 17px; - .input-text { - margin-top: 5px; - } - .ui-datepicker-trigger { - margin-left: 5px; - margin-top:-2px; +// System -> Notifications +.adminhtml-notification-index { + .admin__scope-old { + .col-actions a { + &:extend(.col-actions-links); + } } } -.rule-param input, -.rule-param select { - width: auto !important; - margin: 0; - min-width: 170px; +.adminhtml-process-list { + .admin__scope-old { + .col-action a, + .col-mode { + &:extend(.nowrap all); + } + } } -.rule-param-edit .element { - display: inline; +.adminhtml-notification-index, +.adminhtml-cache-index, +.adminhtml-process-list, +.indexer-indexer-list { + .admin__scope-old { + .grid .col-select { + width: 10px; + } + } } -.rule-param-edit .element .addafter { - padding-left: 5px; +// System -> Locked Users +.adminhtml-locks-index { + .admin__scope-old { + .grid .col-name { + &:extend(.col-570 all); + } + } } -[class^="rule-param-"] img, -.rule-chooser-trigger img { - vertical-align: middle; +// System -> Custom Variables +.adminhtml-system-variable-index { + .admin__scope-old { + .grid .col-code { + &:extend(.col-370-max all); + &:extend(.ellipsis all); + } + } } -.rule-chooser { - border: solid 1px #CCC; - margin: 20px; - padding: 15px 10px 5px; - overflow: auto; +.adminhtml-logging-index { + .admin__scope-old { + .grid .col-info { + &:extend(.col-110-max all); + &:extend(.ellipsis all); + } + } } -.rule-param-wait { - background: url(../mui/images/ajax-loader-small.gif) no-repeat left center; - padding-left: 20px; -} +// +// Login page captcha reload @todo ui - remove after loader consistency +// _____________________________________________ -/* - URL Rewrite --------------------------------------- */ -.field-entity-type-selector { - padding-top: 13px; +// Tax popup +.tax-rate-popup .form-inline .field { + position: static; + &.required .label { + position: relative; + z-index: 1; + } } -/* jstree */ -.jstree-default .disabled > a { - color: #a29c94; +// Product tabs +#product-edit-form-tabs .ui-tabs-panel { + border-top-width: 0; + .main-col & { + padding-left: 0; + padding-right: 0; + } + .accordion { + margin: 0 0 8px; + padding: 0; + > dt { + background: #fff; + padding: 5px 18px 2px; + position: relative; + + dd { + display: none; + &.open { + padding: 25px 18px 18px; + display: block; + margin-left: 0; + border-top: 0; + border-radius: 0 0 5px 5px; + } + } + &.open { + margin: 0; + border-bottom: 0; + border-radius: 5px 5px 0 0; + a { + &:before { + content: '\e02c'; // arrow down icon + } + } + } + a { + .style10(); + display: block; + padding: 7px 0 10px 22px; + text-decoration: none; + position: relative; + cursor: pointer; + border-bottom: 1px solid #cac3b4; + i { + .style31(); + } + &:before { + position: absolute; + left: 0; + top: 11px; + font-family: 'MUI-Icons'; + font-style: normal; + speak: none; + font-size: 16px; + font-weight: normal; + -webkit-font-smoothing: antialiased; + content: '\e02a'; // arrow right icon + color: #b2b0ad; + } + &:hover { + &:before { + color: #7e7e7e; + } + } + } + } + } } -/* ========================================================================== - debug.less (end) - ========================================================================== */ - -// Magento Import instructions -//@magento_import "source/module.less"; // import theme styles diff --git a/app/design/adminhtml/Magento/backend/web/css/styles.less b/app/design/adminhtml/Magento/backend/web/css/styles.less index 47e26fc2cc41ebcecee31e66643bdc82fec0e6cf..8e4522368a9d25d9647c714bee0e035062d108ca 100644 --- a/app/design/adminhtml/Magento/backend/web/css/styles.less +++ b/app/design/adminhtml/Magento/backend/web/css/styles.less @@ -21,6 +21,27 @@ //@magento_import "source/_module.less"; // import theme styles + +// +// Temporary +// --------------------------------------------- + +// ToDo UI: Hiding menu (should be fixed in layouts) +.attribute-popup { + .page-wrapper { + margin-left: 0; + } + .menu-wrapper, + .page-header-hgroup, + .page-header-actions { + display: none; + } +} + +// ToDo UI: Temporary. Should be changed +@import 'source/components/_calendar-temp.less'; +@import 'source/components/_tooltip-temp.less'; + // // Media queries collector // --------------------------------------------- diff --git a/app/design/adminhtml/Magento/backend/web/images/grid-cal.png b/app/design/adminhtml/Magento/backend/web/images/grid-cal.png deleted file mode 100644 index 15b3ed03af371fa0f979d99aae6428f34b28e114..0000000000000000000000000000000000000000 Binary files a/app/design/adminhtml/Magento/backend/web/images/grid-cal.png and /dev/null differ diff --git a/app/design/adminhtml/Magento/backend/web/js/theme.js b/app/design/adminhtml/Magento/backend/web/js/theme.js index 706bf3bde82bdba2f2a8973620ce71d6dc27e020..56921a21e7f2d83eb9cf13e5c446f86b55640c60 100644 --- a/app/design/adminhtml/Magento/backend/web/js/theme.js +++ b/app/design/adminhtml/Magento/backend/web/js/theme.js @@ -12,6 +12,8 @@ define('globalNavigation', [ $.widget('mage.globalNavigation', { options: { selectors: { + menu: '#nav', + currentItem: '._current', topLevelItem: '.level-0', topLevelHref: '> a', subMenu: '> .submenu', @@ -25,59 +27,79 @@ define('globalNavigation', [ this.menu = this.element; this.menuLinks = $(selectors.topLevelHref, selectors.topLevelItem); + this.closeActions = $(selectors.closeSubmenuBtn); this._initOverlay() ._bind(); }, _initOverlay: function () { - var wrapper = $('<div />').addClass('admin__scope'); - this.overlay = $(this.options.overlayTmpl).appendTo('body').hide(0); - /** - * @todo fix LESS and remove next line and wrapper definition - */ - this.overlay.wrap(wrapper); - return this; }, _bind: function () { - var lighten = this._lighten.bind(this), - open = this._open.bind(this), - darken = this._darken.bind(this); + var focus = this._focus.bind(this), + open = this._open.bind(this), + blur = this._blur.bind(this), + keyboard = this._keyboard.bind(this); this.menuLinks - .on('focus', lighten) - .on('click', open) - .on('blur', darken); + .on('focus', focus) + .on('click', open); + + this.menuLinks.last().on('blur', blur); + + this.closeActions.on('keydown', keyboard); + }, + + + /** + * Remove active class from current menu item + * Turn back active class to current page menu item + */ + _blur: function(e){ + var selectors = this.options.selectors, + menuItem = $(e.target).closest(selectors.topLevelItem), + currentItem = $(selectors.menu).find(selectors.currentItem); + + menuItem.removeClass('_active'); + currentItem.addClass('_active'); }, - _lighten: function (e) { + /** + * Add focus to active menu item + */ + _keyboard: function(e) { var selectors = this.options.selectors, menuItem = $(e.target).closest(selectors.topLevelItem); - menuItem - .addClass('_active') - .siblings(selectors.topLevelItem) - .removeClass('_active'); + if(e.which === 13) { + this._close(e); + $(selectors.topLevelHref, menuItem).focus(); + } }, - _darken: function (e) { + /** + * Toggle active state on focus + */ + _focus: function (e) { var selectors = this.options.selectors, menuItem = $(e.target).closest(selectors.topLevelItem); - menuItem.removeClass('_active'); + menuItem.addClass('_active') + .siblings(selectors.topLevelItem) + .removeClass('_active'); }, _closeSubmenu: function (e) { var selectors = this.options.selectors, - menuItem = $(e.target).closest(selectors.topLevelItem); + currentItem = $(selectors.menu).find(selectors.currentItem); this._close(e); - $(selectors.topLevelHref, menuItem).focus(); + currentItem.addClass('_active'); }, _open: function (e) { @@ -92,33 +114,36 @@ define('globalNavigation', [ e.preventDefault(); } - menuItem - .addClass('_hover _recent') - .siblings(menuItemSelector) - .removeClass('_hover _recent'); + menuItem.addClass('_show') + .siblings(menuItemSelector) + .removeClass('_show'); subMenu.attr('aria-expanded', 'true'); closeBtn.on('click', close); this.overlay.show(0).on('click', close); + this.menuLinks.last().off('blur'); }, _close: function (e) { var selectors = this.options.selectors, - menuItem = this.menu.find(selectors.topLevelItem + '._hover._recent'), + menuItem = this.menu.find(selectors.topLevelItem + '._show'), subMenu = $(selectors.subMenu, menuItem), - closeBtn = subMenu.find(selectors.closeSubmenuBtn); + closeBtn = subMenu.find(selectors.closeSubmenuBtn), + blur = this._blur.bind(this); e.preventDefault(); this.overlay.hide(0).off('click'); + this.menuLinks.last().on('blur', blur); + closeBtn.off('click'); subMenu.attr('aria-expanded', 'false'); - menuItem.removeClass('_hover _recent'); + menuItem.removeClass('_show _active'); } }); diff --git a/app/design/adminhtml/Magento/backend/web/mui/styles/dashboard.less b/app/design/adminhtml/Magento/backend/web/mui/styles/dashboard.less deleted file mode 100644 index a04295c825787e2c2e460e16ec570fdc33ac494b..0000000000000000000000000000000000000000 --- a/app/design/adminhtml/Magento/backend/web/mui/styles/dashboard.less +++ /dev/null @@ -1,198 +0,0 @@ -// /** -// * Copyright © 2015 Magento. All rights reserved. -// * See COPYING.txt for license details. -// */ - -/* - Dashboard --------------------------------------- */ -@dashboard-background-color: #f7f3eb; -@dashboard-tab-content-background-color: #fff; -@dashboard-active-color: #ef672f; - -/* - Dashboard Layout --------------------------------------- */ -.adminhtml-dashboard-index .col-1-layout { - max-width: 1300px; // resets global styles - border: none; // resets global styles - border-radius: 0; // resets global styles - padding: 0; // resets global styles - background: @dashboard-background-color; // resets global styles -} - -.dashboard-container { - .clearfix(); - padding-top: 35px; -} - -.dashboard-secondary { - float: left; - width: 32%; - margin: 0 1.5%; -} - -.dashboard-main { - float: right; - width: 65%; -} - -/* - Dashboard Diagram --------------------------------------- */ -.dashboard-diagram { - &-chart { - max-width: 100%; - height: auto; - } - &-nodata, - &-switcher { - padding: 20px 0; - } - &-image { - background: @dashboard-tab-content-background-color url(../mui/images/ajax-loader-small.gif) no-repeat 50% 50%; - } - .form-select-label { - display: inline-block; - } - &-disabled { - padding: 10px; - } -} - -/* - Dashboard Store Stats --------------------------------------- */ -.dashboard-container { - .ui-tabs-panel { - background-color: @dashboard-tab-content-background-color; - min-height: 40px; - padding: 15px; - } - .empty-text { - padding: 10px 12px; - text-align: center; - } -} - -.dashboard-store-stats { - margin-top: 35px; - .ui-tabs-panel { - background: @dashboard-tab-content-background-color url(../mui/images/ajax-loader-small.gif) no-repeat 50% 50%; - } - .empty-text { // "no data" messages - background: #f7f3eb; - } -} - -.dashboard-item { - margin-bottom: 30px; - &-title { - font-weight: 700; - margin-left: 5px; - } - &.dashboard-item-primary { - margin-bottom: 35px; - .dashboard-item-title { - font-size: 22px; - margin-bottom: 5px; - } - .dashboard-sales-value { - display: block; - text-align: right; - font-weight: 600; - font-size: 30px; - margin-right: 12px; - padding-bottom: 5px; - } - &:first-child { - color: @dashboard-active-color; - } - } - .dashboard-secondary & { - tr > td:first-child { - &:extend(.col-150-max all); - &:extend(.ellipsis all); - } - } - .empty-text { - background: #e1dbcf; - } -} - -.dashboard-totals { - background: @dashboard-tab-content-background-color; - padding: 50px 15px 25px; - &-list { - .clearfix(); - .list-reset-styles(); - } - &-item { - float: left; - width: 18%; - margin-left: 7%; - padding-top: 15px; - border-top: 2px solid #cac3b4; - &:first-child { - margin-left: 0; - } - } - &-label { - display: block; - font-size: 16px; - font-weight: 600; - padding-bottom: 2px; - } - &-value { - color: @dashboard-active-color; - font-size: 20px; - } -} - -.dashboard-data { - width: 100%; - thead { - background: transparent; // resets global styles - tr { - background: none; - } - } - th, - td { - border: none; // resets global styles - padding: 10px 12px; // resets global styles - text-align: right; // resets global styles - &:first-child { - text-align: left; - } - } - th { - color: @primary1; // resets global styles - font-weight: 600; - } - td { - background-color: transparent; // resets global styles - } - tbody { - tr:hover td { - background-color: transparent; // resets global styles - } - tr:nth-child(odd), - tr:nth-child(odd):hover { - td, - th { - background-color: #e1dbcf; // resets global styles - .ui-tabs-panel & { - background-color: #f7f3eb; // resets global styles - } - } - } - } - .ui-tabs-panel & { - background-color: @dashboard-tab-content-background-color; - .col-name { - &:extend(.ellipsis all); - &:extend(.col-370-max all); - } - } -} diff --git a/app/design/adminhtml/Magento/backend/web/mui/styles/table.less b/app/design/adminhtml/Magento/backend/web/mui/styles/table.less index c7b2e60187cdab7df778030f1db4042446dbd3e5..25284d00b65989e4a88a3c3fe51f0d1f2822bfc6 100644 --- a/app/design/adminhtml/Magento/backend/web/mui/styles/table.less +++ b/app/design/adminhtml/Magento/backend/web/mui/styles/table.less @@ -194,30 +194,38 @@ table { vertical-align: top; width: 99%; } - img { - cursor: pointer; - height: 25px; - width: 25px; - right: 0; - position: absolute; - vertical-align: middle; - z-index: 2; - opacity: 0; - } - .icon-font( - @icon-calendar, - @_icon-font-color: @grid-headings-color, - @_icon-font-color-hover: @grid-headings-color-darker, - @_icon-font-size: 42px, - @_icon-font-line-height: 30px - ); - &:before { - height: 29px; - margin-left: 5px; + .ui-datepicker-trigger { + .icon-font( + @icon-calendar, + @_icon-font-color: @grid-headings-color, + @_icon-font-color-hover: @grid-headings-color-darker, + @_icon-font-size: 42px, + @_icon-font-line-height: 30px + ); + background-color: transparent; + border: none; + margin: 0; + padding: 0; position: absolute; right: -3px; top: -3px; - width: 35px; + > span { + position: absolute; + visibility: hidden; + z-index: -1; + } + &:active { + top: -2px; + } + &:focus { + outline: 0; + box-shadow: none; + } + &:before { + width: 35px; + height: 29px; + margin-left: 5px; + } } } @@ -226,11 +234,6 @@ table { margin: 0; padding: 0; width: 99%; - &:not([multiple]) { - .ie9 & { - padding-right: 0; - } - } } input.input-text { @@ -539,25 +542,6 @@ td.col-type { } } - .accordion .config & { - thead th, - tfoot td { - &:extend(.data-table thead all); - } - - td { - &:extend(.data-table td all); - } - - tbody tr:nth-child(odd) td { - &:extend(.data-table tbody tr:nth-child(odd) td); - } - - tfoot tr:last-child td { - &:extend(tfoot tr:last-child td all); - } - } - input[type="text"] { width: 98%; padding-left: 1%; @@ -647,6 +631,25 @@ td.col-type { } } +.accordion .config .data-table { + thead th, + tfoot td { + &:extend(.data-table thead all); + } + + td { + &:extend(.data-table td all); + } + + tbody tr:nth-child(odd) td { + &:extend(.data-table tbody tr:nth-child(odd) td); + } + + tfoot tr:last-child td { + &:extend(tfoot tr:last-child td all); + } +} + // // Grid - Pager and Buttons row // -------------------------------------- @@ -693,12 +696,16 @@ td.col-type { float: left; margin: 0 15px 0 0; position: relative; - &:before { - color: @color-middle; - top: 1px; - } - &:hover:before { - color: @color-dark; + .ui-datepicker-trigger { + &:before { + color: @color-middle; + top: 1px; + } + &:hover { + &:before { + color: @color-dark; + } + } } } .label { @@ -759,18 +766,14 @@ td.col-type { .link-feed { white-space: nowrap; } - .form-inline & { - &:extend(.massaction-form-inline-label-reset all); - } +} + +.form-inline .grid-actions { + &:extend(.massaction-form-inline-label-reset all); } .pager { font-size: 13px; - .grid & { - margin: 15px 0 0; - position: relative; - text-align: center; - } .pages-total-found { margin-right: 25px; } @@ -832,6 +835,12 @@ td.col-type { } } +.grid .pager { + margin: 15px 0 0; + position: relative; + text-align: center; +} + // // Grid - Mass Action // -------------------------------------- @@ -868,9 +877,10 @@ td.col-type { border: @validation-border; background: @validation-background-color; } - .form-inline & { - &:extend(.massaction-form-inline-label-reset all); - } +} + +.form-inline .massaction { + &:extend(.massaction-form-inline-label-reset all); } // @@ -969,31 +979,6 @@ td.col-type { // // Sales // -------------------------------------- -[class^=' sales-order-'] .grid .col-name { - &:extend(.col-220-max all); -} - -.sales-order-view .grid { - .col-name { - &:extend(.col-150-max all); - } - .col-period { - &:extend(.col-70-max all); - } -} - -.sales-order-index .grid .col-name { - &:extend(.col-110-max all); -} - -.sales-order-create-index { - .col-phone { - &:extend(.col-70-max all); - } - .col-in_products { - &:extend(.col-70); - } -} .product-options .grouped-items-table { .col-name, @@ -1017,260 +1002,10 @@ td.col-type { // Sales -> Create Order //-------------------------------------- -.sales-order-create-index, -.sales-order-edit-index { - .grid, - .grid-actions { - &:extend(.side-paddings-0); - table .action-configure { - float: right; - &.disabled { - cursor: default; - opacity: .5; - &:hover { - text-decoration: none; - } - } - } - } - .data-table { - .border td { - padding-bottom: 15px; - } - .col-product { - &:extend(.ellipsis all); - &:extend(.col-150-max all); - } - } - .actions.update { - margin: 10px 0; - } -} - .order-account-information { &:extend(.data-table-td-max all); } -// -// Sales -> View order -//-------------------------------------- - -[class^=' sales-order-view'] { - .grid .col-customer_name { - &:extend(.col-110-max all); - } -} - -// -// Sales -> Create Shipment -//-------------------------------------- - -.adminhtml-order-shipment-new .grid .col-product { - max-width: 770px; - width: 770px; -} - -// -// Sales -> Return -//-------------------------------------- - -[class^=' adminhtml-rma-'] { - .fieldset-wrapper .data-table td { - &:extend(.ellipsis all); - &:extend(.col-670-max); - } - .grid { - .col-product_sku { - &:extend(.ellipsis all); - &:extend(.col-70-max all); - } - .col-name, - .col-product { - &:extend(.col-150-max all); - } - .col-product_name { - &:extend(.ellipsis all); - &:extend(.col-110-max all); - } - } - .col-actions { - a { - &:extend(.col-actions-links); - } - } - .rma-request-details { - &:extend(.data-table-td-max all); - } - #rma_items_grid_table .headings th { - &:extend(.nowrap all); - } -} - -.adminhtml-rma-edit { - .col-product, - .col-sku { - &:extend(.col-70-max all); - } -} - -// -// Products -// -------------------------------------- -.catalog-product-index { - .grid .col-name { - &:extend(.col-110-max all); - } -} - -.catalog-product-edit .ui-tabs-panel .grid { - .hor-scroll { - &:extend(.h-scroll); - } - .col-name, - .col-type, - .col-sku { - &:extend(.col-70-max all); - } - .col-price, - .col-position { - &:extend(.col-50 all); - } -} - -.catalog-product-index .grid .hor-scroll { - &:extend(.h-scroll); -} - -.catalog-product-review-index { - .grid { - .col-name, - .col-title { - &:extend(.col-110-max all); - } - } -} - -// -// Products -> Categories -// -------------------------------------- -.catalog-category-edit { - .grid { - .col-name { - &:extend(.col-220-max all); - } - } -} - -// -// Customer -// -------------------------------------- -.customer-index-index { - .grid { - .col-name { - max-width: 90px; - width: 90px; - } - .col-customer_since, - .col-billing_country_id { - &:extend(.col-70-max all); - } - .col-billing_region { - width: 70px; - } - } -} - -[class^=' customer-index-'] { - .fieldset-wrapper, - .accordion { - .grid .col-created_at { - &:extend(.col-70-max all); - } - } - .col-action a { - &:extend(.col-actions-links); - } -} - -.customer-index-edit { - .ui-tabs-panel .grid .col-name { - &:extend(.col-110-max all); - } -} - -// -// Customer -> Customer Segments -// -------------------------------------- -.col-grid_segment_name { - &:extend(.col-570-max all); - &:extend(.ellipsis all); -} - -// -// Marketing -> Catalog Event -// -------------------------------------- -.adminhtml-catalog-event-index .col-category { - &:extend(.ellipsis all); - &:extend(.col-220-max all); -} - -// -// Marketing -> Search Terms -// -------------------------------------- -[class^=' catalog-search'] { - .col-search_query, - .col-synonym_for, - .col-redirect { - &:extend(.ellipsis all); - &:extend(.col-150-max all); - } -} - -// -// Marketing -> URL Rewrites -// -------------------------------------- -.adminhtml-urlrewrite-index .col-request_path { - &:extend(.ellipsis all); - &:extend(.col-150-max all); -} - -// -// Marketing -> Reviews -// -------------------------------------- -.review-product-index { - .grid { - .hor-scroll { - &:extend(.h-scroll); - } - .col-name { - &:extend(.col-110-max all); - } - } -} - -// -// Content -> Pages -// -------------------------------------- -.adminhtml-cms-page-index { - .col-title, - .col-identifier { - &:extend(.ellipsis all); - &:extend(.col-110-max all); - } -} - -// -// Content -> Hierarchy -// -------------------------------------- -.adminhtml-cms-hierarchy-index { - .col-title, - .col-identifier { - &:extend(.ellipsis all); - max-width: 410px; - width: 410px; - } -} - // // Content -> Banners // -------------------------------------- @@ -1278,315 +1013,3 @@ td.col-type { &:extend(.col-370-max all); &:extend(.ellipsis all); } -.adminhtml-banner-edit { - .grid .col-name { - &:extend(.col-220-max all); - } -} - -// -// Content -> Frontend Apps -// -------------------------------------- -.adminhtml-widget-instance-index { - .col-title { - &:extend(.col-370-max all); - &:extend(.ellipsis all); - } -} -.adminhtml-widget-instance-edit { - .grid-chooser .control { - margin-top: -19px; - width: 80%; - .eq-ie9 & { - margin-top: -18px; - } - .grid-actions { - padding: 0 0 15px; - } - .grid { - padding: 0; - } - .addon { - input:last-child, - select:last-child{ - border-radius: 0; - } - } - } -} - -// -// Reports -> Low Stock -// -------------------------------------- -.reports-report-product-lowstock { - .grid { - .col-name { - &:extend(.col-670-max all); - } - .col-sku { - &:extend(.col-220-max all); - } - } -} - -.reports-report-shopcart-product, -.reports-report-review-customer { - .grid .col-name { - &:extend(.col-670-max all); - } -} -.reports-report-shopcart-abandoned { - .grid .col-name { - &:extend(.col-150-max all); - } -} - -// -// Reports -// -------------------------------------- -[class^=' reports-'] [class^='col-total'], -[class^=' reports-'] [class^='col-average'], -[class^=' reports-'] [class^='col-ref-'], -[class^=' reports-'] [class^='col-rate'], -[class^=' reports-'] [class^='col-tax-amount'] { - &:extend(.col-70 all); -} - -.reports-report-sales-invoiced, -.reports-report-sales-refunde { - .grid .col-period { - &:extend(.col-auto all); - } -} - -// -// Reports -> Search Terms -// -------------------------------------- -.reports-index-search .col-query_text { - &:extend(.col-570-max all); - &:extend(.ellipsis all); -} - -// -// Reports -> Ordered Products Report -// -------------------------------------- -.reports-report-product-sold .grid .col-name { - max-width: 720px; - width: 720px; -} - -// -// Reports -> Newsletter Problem Reports -// -------------------------------------- -.newsletter-problem-index .grid { - .col-name, - .col-subject, - .col-product { - &:extend(.col-220-max all); - } -} - - -// -// Stroes -> Tax rules -// -------------------------------------- -.tax-rule-index { - .grid .col-title { - &:extend(.col-150-max all); - } -} - -// -// Stores -> Returns Attributes -// -------------------------------------- -.adminhtml-rma-item-attribute-index { - .grid { - .col-label { - &:extend(.col-220-max all); - } - .col-attr-code { - &:extend(.ellipsis); - &:extend(.col-150-max all); - } - } -} -.adminhtml-rma-edit { - .hor-scroll { - &:extend(.h-scroll); - } -} - -// -// Stores -> All Stores -// -------------------------------------- -.adminhtml-system-store-index .grid td { - &:extend(.ellipsis all); - max-width: 310px; -} - -// -// Stores -> Currency -// -------------------------------------- -.adminhtml-system-currency-index { - .grid { - padding-top: 0; - } - .col-currency-edit-rate { - min-width: 40px; - } - .col__base-currency { - font-weight: bold; - } - .old-rate { - display: block; - margin-top: 3px; - text-align: center; - } - .hor-scroll { - overflow-x: auto; - min-width: 970px; - } -} - -// -// Stores -> Currency symbol -// -------------------------------------- -.adminhtml-system-currencysymbol-index { - .col-currency { - width: 35%; - } - .grid .input-text { - margin: 0 10px 0 0; - width: 50%; - } -} - -// -// Stores -> Customer attributes -// -------------------------------------- -[class^=' adminhtml-customer-'], -.adminhtml-rma-item-attribute-index { - .col-label { - &:extend(.col-370-max all); - } - .col-required, - .col-system, - .col-is_visible, - .col-sort_order { - &:extend(.col-70 all); - } -} - -// -// Stores -> Product Attribute -// -------------------------------------- -.catalog-product-attribute-index { - .col-attr-code, - .col-label { - &:extend(.col-110-max all); - &:extend(.ellipsis); - } - [class^=' col-is_'], - .col-required, - .col-system { - &:extend(.col-70 all); - } -} - -.catalog-product-set-index .col-set_name { - max-width: 930px; - width: 930px; -} - -// -// System -> Export -// -------------------------------------- -.adminhtml-export-index { - .grid-actions, - .grid { - &:extend(.side-paddings-0); - } - .col-label, - .col-code { - &:extend(.col-220-max all); - } - .col-code { - &:extend(.ellipsis all); - } - .grid { - td { - vertical-align: middle; - } - .input-text-range { - margin: 0 10px 0 5px; - width: 37%; - } - .input-text-range-date { - margin: 0 5px; - width: 32%; - } - } - .ui-datepicker-trigger { - display: inline-block; - margin: -3px 10px 0 0; - vertical-align: middle; - } -} - -// -// System -> Scheduled Imports/Exports -// -------------------------------------- -.adminhtml-scheduled-operation-index .grid .col-name { - &:extend(.col-220-max all); -} - -// -// System -> Report -// -------------------------------------- -.adminhtml-logging-index .grid .col-fullaction { - &:extend(.ellipsis all); - &:extend(.col-220-max all); -} - -// -// System -> Notifications -// -------------------------------------- -.adminhtml-notification-index .col-actions a { - &:extend(.col-actions-links); -} - -.adminhtml-process-list .col-action a, -.adminhtml-process-list .col-mode { - &:extend(.nowrap all); -} - -.adminhtml-notification-index, -.adminhtml-cache-index, -.adminhtml-process-list, -.indexer-indexer-list { - .grid .col-select { - width: 10px; - } -} - -// -// System -> Locked Users -// -------------------------------------- -.adminhtml-locks-index .grid .col-name { - &:extend(.col-570 all); -} - -// -// System -> Custom Variables -// -------------------------------------- -.adminhtml-system-variable-index { - .grid .col-code { - &:extend(.col-370-max all); - &:extend(.ellipsis all); - } -} - -.adminhtml-logging-index .grid .col-info { - &:extend(.col-110-max all); - &:extend(.ellipsis all); -} diff --git a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_module.less index 6c5024a57483cca0785fcd89af3c9299b91efb93..cfacc04304f4dbf50113e0b890295eab9737bbd9 100644 --- a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_module.less +++ b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_module.less @@ -46,12 +46,6 @@ .old.price { text-decoration: line-through; } -.msrp-price-wrapper { - text-decoration: none; - .price-wrapper { - text-decoration: line-through; - } -} .price-tier_price { .price-including-tax + .price-excluding-tax { @@ -217,6 +211,38 @@ } } } + .fieldset-product-options-inner { + .legend { + border: none; + .css(font-weight, @font-weight__bold); + .css(margin, 0 0 @indent__xs); + display: inline-block; + .font-size(14px); + float: none; + padding: 0; + } + &.required { + .legend { + &:after { + content: '*'; + .typography( + @_font-size: @form-field-label-asterisk__font-size, + @_color: @form-field-label-asterisk__color, + @_font-family: @form-field-label-asterisk__font-family, + @_font-weight: @form-field-label-asterisk__font-weight, + @_line-height: @form-field-label-asterisk__line-height, + @_font-style: @form-field-label-asterisk__font-style + ); + .css(margin, @form-field-label-asterisk__margin); + } + } + } + .datetime-picker { + + .time-picker { + .css(margin-left, @indent__xs); + } + } + } } .product-info-main, diff --git a/app/design/frontend/Magento/blank/Magento_CatalogSearch/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_CatalogSearch/web/css/source/_module.less index 66009f0069383e2a7f2352c3cc90a784ce45b42b..33023f1b68fe411bfef3f9f8593687d4ded40681 100644 --- a/app/design/frontend/Magento/blank/Magento_CatalogSearch/web/css/source/_module.less +++ b/app/design/frontend/Magento/blank/Magento_CatalogSearch/web/css/source/_module.less @@ -124,9 +124,6 @@ } &:last-child { position: relative; - input { - width: 90%; - } div.mage-error[generated] { position: absolute; top: 32px; 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 0588feef2464df93a56d54de0c0a50f1f844cd18..ec5c148b54d6959e9fcba973985442442d4c879d 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 @@ -49,6 +49,13 @@ } } +.map-old-price { + text-decoration: none; + .price-wrapper { + text-decoration: line-through; + } +} + } // diff --git a/app/design/frontend/Magento/blank/web/css/source/_extends.less b/app/design/frontend/Magento/blank/web/css/source/_extends.less index 3929da185262de71437e686ec752db967c76dd50..bc7e5a2fc3df617f2cd045288d3fe18f6d1ba2ae 100644 --- a/app/design/frontend/Magento/blank/web/css/source/_extends.less +++ b/app/design/frontend/Magento/blank/web/css/source/_extends.less @@ -4,8 +4,13 @@ // */ // -// List default styles reset -//-------------------------------------- +// Styles Extends +// _____________________________________________ + +// +// List default styles reset +// --------------------------------------------- + .abs-reset-list { .list-reset-styles(); > li { @@ -14,8 +19,9 @@ } // -// Link as a button -//-------------------------------------- +// Link as a button +// --------------------------------------------- + .abs-action-link-button { .button(); .link-as-button(); @@ -23,8 +29,9 @@ } // -// Product options list -//-------------------------------------- +// Product options list +// --------------------------------------------- + @abs-product-options-list: { dt { float: left; @@ -52,8 +59,9 @@ } // -// Button reset width, floats, margins -//-------------------------------------- +// Button reset width, floats, margins +// --------------------------------------------- + @abs-button-responsive: { .button-responsive(); }; @@ -75,8 +83,9 @@ } // -// Blocks in 2 columns -//-------------------------------------- +// Blocks in 2 columns +// --------------------------------------------- + @abs-blocks-2columns: { width: 48.8%; &:nth-child(odd) { @@ -101,8 +110,9 @@ } // -// Reset image alignment in container -//-------------------------------------- +// Reset image alignment in container +// --------------------------------------------- + .abs-reset-image-wrapper { height: auto; padding: 0!important; @@ -112,8 +122,9 @@ } // -// Adaptive images -//-------------------------------------- +// Adaptive images +// --------------------------------------------- + .abs-adaptive-images { display: block; height: auto; @@ -128,8 +139,9 @@ } // -// Title for login blocks -//-------------------------------------- +// Title for login blocks +// --------------------------------------------- + .abs-login-block-title { strong { font-weight: 500; @@ -141,8 +153,9 @@ } // -// Abstract block title -//-------------------------------------- +// Abstract block title +// --------------------------------------------- + .abs-block-title { > strong { .heading(h3); @@ -151,8 +164,9 @@ } // -// Account blocks -//-------------------------------------- +// Account blocks +// --------------------------------------------- + .abs-account-blocks { .block-title { &:extend(.abs-block-title all); @@ -182,8 +196,9 @@ } // -// Simple Dropdown -//-------------------------------------- +// Simple Dropdown +// --------------------------------------------- + .abs-dropdown-simple { .dropdown( @_dropdown-list-item-padding: 5px 5px 5px 23px, @@ -194,23 +209,26 @@ } // -// Input quantity -//-------------------------------------- +// Input quantity +// --------------------------------------------- + .abs-input-qty { width: 47px; text-align: center; } // -// Marging for blocks & widgets -//-------------------------------------- +// Marging for blocks & widgets +// --------------------------------------------- + .abs-margin-for-blocks-and-widgets { margin-bottom: @indent__xl; } // -// Remove button for blocks -//-------------------------------------- +// Remove button for blocks +// --------------------------------------------- + .abs-remove-button-for-blocks { .icon-font( @icon-remove, @@ -224,8 +242,9 @@ } // -// Product link -//-------------------------------------- +// Product link +// --------------------------------------------- + .abs-product-link { .link( @_link-color: @color-gray19, @@ -236,8 +255,9 @@ } // -// Reset left margin -//-------------------------------------- +// Reset left margin +// --------------------------------------------- + @abs-reset-left-margin: { margin-left: 0; }; @@ -259,8 +279,9 @@ } // -// Action with icon remove with text -//-------------------------------------- +// Action with icon remove with text +// --------------------------------------------- + .abs-action-remove { &:extend(.abs-action-button-as-link all); width: auto; @@ -271,8 +292,9 @@ } // -// Action with icon remove with text for desktop -//-------------------------------------- +// Action with icon remove with text for desktop +// --------------------------------------------- + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .abs-action-remove-desktop when not (@form-field-type-label-inline__width = false) and not (@form-field-type-label-inline__width = '') { top: 6px; @@ -281,8 +303,9 @@ } // -// Add Recipient -//-------------------------------------- +// Add Recipient +// --------------------------------------------- + .abs-add-fields { .fieldset { margin-bottom: 50px; @@ -329,8 +352,9 @@ } // -// Add Recipient for desktop -//-------------------------------------- +// Add Recipient for desktop +// --------------------------------------------- + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .abs-add-fields-desktop { .fieldset { @@ -353,8 +377,9 @@ } // -// Margin for forms -//-------------------------------------- +// Margin for forms +// --------------------------------------------- + @abs-margin-for-forms-desktop: { .css(margin-left, @form-field-type-label-inline__width); }; @@ -372,15 +397,17 @@ } // -// Visibility hidden / show visibility hidden -//-------------------------------------- +// Visibility hidden / show visibility hidden +// --------------------------------------------- + .abs-hidden { .visibility-hidden(); } // -// Visually hidden / show visually hidden -//-------------------------------------- +// Visually hidden / show visually hidden +// --------------------------------------------- + @abs-visually-hidden: { .visually-hidden(); }; @@ -414,8 +441,9 @@ } // -// Clearfix -//-------------------------------------- +// Clearfix +// --------------------------------------------- + @abs-add-clearfix: { .clearfix(); }; @@ -449,8 +477,9 @@ } // -// Box-sizing -//-------------------------------------- +// Box-sizing +// --------------------------------------------- + @abs-add-box-sizing: { box-sizing: border-box; }; @@ -472,8 +501,9 @@ } // -// Revert field type -//-------------------------------------- +// Revert field type +// --------------------------------------------- + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .abs-revert-field-type-desktop { .fieldset { @@ -489,8 +519,9 @@ } // -// Settings icons -//-------------------------------------- +// Settings icons +// --------------------------------------------- + .abs-navigation-icon { .icon-font( @_icon-font-content: @icon-down, @@ -507,8 +538,9 @@ } // -// Split button -//-------------------------------------- +// Split button +// --------------------------------------------- + .abs-split-button { .dropdown-split( @_options-selector : ~".items", @@ -518,8 +550,9 @@ } // -// Action addto -//-------------------------------------- +// Action addto +// --------------------------------------------- + .abs-action-addto-product { &:extend(.abs-action-link-button all); .button-s(); @@ -538,15 +571,17 @@ } // -// Large button -//-------------------------------------- +// Large button +// --------------------------------------------- + .abs-button-l { .button-l(); } // -// Button as a link -//-------------------------------------- +// Button as a link +// --------------------------------------------- + .abs-action-button-as-link { .button-as-link( @_margin: false @@ -561,29 +596,33 @@ } // -// Button revert secondary color -//-------------------------------------- +// Button revert secondary color +// --------------------------------------------- + .abs-revert-secondary-color { .button-revert-secondary-color(); } // -// Button revert secondary size -//-------------------------------------- +// Button revert secondary size +// --------------------------------------------- + .abs-revert-secondary-size { .button-revert-secondary-size(); } // -// Box-tocart block -//-------------------------------------- +// Box-tocart block +// --------------------------------------------- + .abs-box-tocart { margin: @indent__s 0; } // -// Excl/Incl tax -//-------------------------------------- +// Excl/Incl tax +// --------------------------------------------- + .abs-adjustment-incl-excl-tax { .price-including-tax, .price-excluding-tax, @@ -605,12 +644,13 @@ } // -// Cart tax total -//-------------------------------------- +// Cart tax total +// --------------------------------------------- + .abs-tax-total { cursor: pointer; - position: relative; padding-right: 12px; + position: relative; .icon-font( @icon-down, @_icon-font-size: 26px, @@ -639,8 +679,9 @@ } // -// Checkout shipping methods title -//-------------------------------------- +// Checkout shipping methods title +// --------------------------------------------- + .abs-methods-shipping-title { .font-size(14); margin: 0 0 15px; @@ -648,20 +689,23 @@ } // -// Checkout order review price -//-------------------------------------- +// Checkout order review price +// --------------------------------------------- + .abs-checkout-cart-price { } // -// Checkout order product name -//-------------------------------------- +// Checkout order product name +// --------------------------------------------- + .abs-checkout-product-name { } // -// Checkout order review -//-------------------------------------- +// Checkout order review +// --------------------------------------------- + .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) { .abs-checkout-order-review { tbody tr { @@ -699,8 +743,9 @@ } // -// Add colon -//-------------------------------------- +// Add colon +// --------------------------------------------- + .abs-colon { &:after { content: ": "; @@ -708,8 +753,9 @@ } // -// Icon - create add -//-------------------------------------- +// Icon - create add +// --------------------------------------------- + .abs-icon-add { .icon-font( @_icon-font-content: @icon-expand, @@ -733,8 +779,9 @@ } // -// Dropdown items - create new -//-------------------------------------- +// Dropdown items - create new +// --------------------------------------------- + .abs-dropdown-items-new { .items .item:last-child { &:hover { @@ -751,8 +798,9 @@ } // -// Abstract toggle title block -//-------------------------------------- +// Abstract toggle title block +// --------------------------------------------- + .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) { .abs-toggling-title-mobile { border-top: @border-width__base solid @border-color__base; @@ -783,8 +831,9 @@ } // -// Abstract no display -//-------------------------------------- +// Abstract no display +// --------------------------------------------- + @abs-no-display: { display: none; }; @@ -806,16 +855,18 @@ } // -// Status -//-------------------------------------- +// Status +// --------------------------------------------- + .abs-status { display: inline-block; margin-bottom: @indent__base; } // -// Pager toolbar for non-catalog pages mobile -//-------------------------------------- +// Pager toolbar for non-catalog pages mobile +// --------------------------------------------- + .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) { .abs-pager-toolbar-mobile { .toolbar-amount, @@ -828,8 +879,9 @@ } // -// Pager toolbar for non-catalog pages mobile -//-------------------------------------- +// Pager toolbar for non-catalog pages mobile +// --------------------------------------------- + .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) { .abs-pager-toolbar-mobile-s { .toolbar-amount, @@ -841,8 +893,9 @@ } // -// Pager toolbar for non-catalog pages desktop -//-------------------------------------- +// Pager toolbar for non-catalog pages desktop +// --------------------------------------------- + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .abs-pager-toolbar { margin-bottom: @indent__base; @@ -869,8 +922,9 @@ } // -// Items counter in blocks -//-------------------------------------- +// Items counter in blocks +// --------------------------------------------- + .abs-block-items-counter { .css(color, @primary__color__lighter); .font-size(12px); @@ -878,8 +932,9 @@ } // -// Shopping cart items -//-------------------------------------- +// Shopping cart items +// --------------------------------------------- + .abs-shopping-cart-items { .action { &.continue { @@ -944,3 +999,18 @@ } } } + +// +// Form Field Date +// --------------------------------------------- + +.abs-field-date { + .control { + &:extend(.abs-add-box-sizing all); + position: relative; + } + input { + margin-right: @indent__s; + width: calc(~"100% - (@{icon-calendar__font-size} + @{indent__s})"); + } +} diff --git a/app/design/frontend/Magento/blank/web/css/source/_forms.less b/app/design/frontend/Magento/blank/web/css/source/_forms.less index 563084653f5611d0b8877b492d984b77cac69e91..e05a13a7eac2d28ac35e124837434335cb116f0c 100644 --- a/app/design/frontend/Magento/blank/web/css/source/_forms.less +++ b/app/design/frontend/Magento/blank/web/css/source/_forms.less @@ -4,6 +4,7 @@ // */ @form-field__vertical-indent__desktop: 29px; +@form-calendar-icon__color: @primary__color; // // Common @@ -26,8 +27,8 @@ } &.choice { .label { - font-weight: normal; display: inline; + font-weight: normal; } } .label { @@ -59,11 +60,9 @@ fieldset.field { border: 0; padding: 0; } -.field.date { - .control input { - margin-right: 10px; - min-width: 80px; - width: 25%; +.field { + &.date { + &:extend(.abs-field-date all); } } @@ -84,6 +83,26 @@ select:focus ~ .tooltip .tooltip-content { display: block; } +.hasDatepicker { + + .ui-datepicker-trigger { + .button-reset(); + .icon-font( + @_icon-font-content: @icon-calendar, + @_icon-font-color: @primary__color__lighter, + @_icon-font-size: @icon-calendar__font-size, + @_icon-font-line-height: @icon-calendar__font-size, + @_icon-font-display: block, + @_icon-font-text-hide: true + ); + display: inline-block; + vertical-align: middle; + &:focus { + box-shadow: none; + outline: 0; + } + } +} + // // Sidebar forms //-------------------------------------- diff --git a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less index d069dbab4926b4da100db3bfca6f4558d0745aa8..6b986fee61ba5493f0f68b3a939f24654665b125 100644 --- a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less +++ b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less @@ -256,6 +256,39 @@ .css(margin-top, @indent__xs); } } + + } + .fieldset-product-options-inner { + .legend { + border: none; + .css(font-weight, @font-weight__semibold); + display: inline-block; + .font-size(14px); + float: none; + padding: 0; + margin: 0 0 8px; + } + &.required { + .legend { + &:after { + content: '*'; + .typography( + @_font-size: @form-field-label-asterisk__font-size, + @_color: @form-field-label-asterisk__color, + @_font-family: @form-field-label-asterisk__font-family, + @_font-weight: @form-field-label-asterisk__font-weight, + @_line-height: @form-field-label-asterisk__line-height, + @_font-style: @form-field-label-asterisk__font-style + ); + .css(margin, @form-field-label-asterisk__margin); + } + } + } + .datetime-picker { + + .time-picker { + .css(margin-left, @indent__xs); + } + } } } diff --git a/app/design/frontend/Magento/luma/Magento_CatalogSearch/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_CatalogSearch/web/css/source/_module.less index c51347a3b6e9b5ffae159d4604c82511a9d6fbe3..5272f6cb9d6c7108bab7407cb17abe50bce952d5 100644 --- a/app/design/frontend/Magento/luma/Magento_CatalogSearch/web/css/source/_module.less +++ b/app/design/frontend/Magento/luma/Magento_CatalogSearch/web/css/source/_module.less @@ -126,9 +126,6 @@ } &:last-child { position: relative; - input { - width: 90%; - } div.mage-error[generated] { position: absolute; top: 32px; @@ -140,6 +137,9 @@ padding-right: 45px; } } + &.date { + &:extend(.abs-field-date all); + } } } .group.price { 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 f64034240b33029c0876e6f5973f851861499688..b54c31c35877dd5cbea96eb12aa6b0b8f3836568 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 @@ -57,7 +57,10 @@ } .map-old-price { - text-decoration: line-through; + text-decoration: none; + .price-wrapper { + text-decoration: line-through; + } } .map-old-price, diff --git a/app/design/frontend/Magento/luma/web/css/source/_buttons.less b/app/design/frontend/Magento/luma/web/css/source/_buttons.less index 2791fa2728fe8ffa71982c49602ac6d243176ab6..489082e8757b2df5ef486cdaa71af079dd3a5f76 100644 --- a/app/design/frontend/Magento/luma/web/css/source/_buttons.less +++ b/app/design/frontend/Magento/luma/web/css/source/_buttons.less @@ -27,7 +27,7 @@ button { } body { - &:not(.keyfocus) { + &:not(._keyfocus) { button { &:focus { box-shadow: none; diff --git a/app/design/frontend/Magento/luma/web/css/source/_extends.less b/app/design/frontend/Magento/luma/web/css/source/_extends.less index 8af8975b8ec451735021bc79a34c21f65dc2aa97..863b6b0c06480e9091341f1bc66e2b4a9099524d 100644 --- a/app/design/frontend/Magento/luma/web/css/source/_extends.less +++ b/app/design/frontend/Magento/luma/web/css/source/_extends.less @@ -1325,31 +1325,9 @@ .control { position: relative; &:extend(.abs-add-box-sizing all); - .icon-font( - @_icon-font-content: @icon-calendar, - @_icon-font-color: @primary__color__lighter, - @_icon-font-size: 23px, - @_icon-font-line-height: 23px, - @_icon-font-display: block - ); - &:before { - position: absolute; - top: @indent__xs; - left: @indent__s; - margin-left: 85%; - z-index: 0; - } - } - img { - opacity: 0; - cursor: pointer; - position: relative; - z-index: 1; - width: 20px; - vertical-align: middle; } input { - width: 85%; + width: calc(~"100% - (@{icon-calendar__font-size} + @{indent__s})"); margin-right: @indent__s; } } diff --git a/app/design/frontend/Magento/luma/web/css/source/_forms.less b/app/design/frontend/Magento/luma/web/css/source/_forms.less index 25aba849744db13488ea2144b62cd45f18950b2d..6ae20a91277e4a382d9b7c066fe204fca2c1b82f 100644 --- a/app/design/frontend/Magento/luma/web/css/source/_forms.less +++ b/app/design/frontend/Magento/luma/web/css/source/_forms.less @@ -5,6 +5,7 @@ @legend-border-bottom: 1px solid @color-gray-light6; @form-field__vertical-indent__desktop: 29px; +@form-calendar-icon__color: @primary__color; // // Common @@ -108,6 +109,26 @@ select:focus ~ .tooltip .tooltip-content { display: block; } +.hasDatepicker { + + .ui-datepicker-trigger { + .button-reset(); + .icon-font( + @_icon-font-content: @icon-calendar, + @_icon-font-color: @primary__color__lighter, + @_icon-font-size: @icon-calendar__font-size, + @_icon-font-line-height: @icon-calendar__font-size, + @_icon-font-display: block, + @_icon-font-text-hide: true + ); + display: inline-block; + vertical-align: middle; + &:focus { + box-shadow: none; + outline: 0; + } + } +} + // // Sidebar forms //-------------------------------------- diff --git a/app/design/frontend/Magento/luma/web/css/source/_variables.less b/app/design/frontend/Magento/luma/web/css/source/_variables.less index 51c89324266cbec9ee561e0e9434db6c777e0fa0..c64aef6e8ca2adee01d531ab3ad5a8771e48fe00 100644 --- a/app/design/frontend/Magento/luma/web/css/source/_variables.less +++ b/app/design/frontend/Magento/luma/web/css/source/_variables.less @@ -32,6 +32,8 @@ @icon-download: '\e626'; @icon-private: '\e629'; +@icon-calendar__font-size: 23px; + // // Tables // --------------------------------------------- diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductAttributeRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductAttributeRepositoryTest.php index 7bb1fccd68818c9804f508c9c9f4a445527c9257..c57d73035b1a5f558741437393832e9d26f77348 100644 --- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductAttributeRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductAttributeRepositoryTest.php @@ -111,7 +111,7 @@ class ProductAttributeRepositoryTest extends \Magento\TestFramework\TestCase\Web $attributeData = [ 'attribute' => [ - 'attribute_code' => $attributeCode, + 'attribute_id' => $attribute['attribute_id'], 'frontend_labels' => [ ['store_id' => 0, 'label' => 'front_lbl_new'], ], @@ -123,7 +123,7 @@ class ProductAttributeRepositoryTest extends \Magento\TestFramework\TestCase\Web $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . '/' . $attribute['attribute_id'], + 'resourcePath' => self::RESOURCE_PATH . '/' . $attributeCode, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, ], 'soap' => [ @@ -134,7 +134,7 @@ class ProductAttributeRepositoryTest extends \Magento\TestFramework\TestCase\Web ]; if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) { - $attributeData['attribute']['attributeId'] = $attribute['attribute_id']; + $attributeData['attribute']['attributeCode'] = $attributeCode; } $result = $this->_webApiCall($serviceInfo, $attributeData); diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Topmenu.php b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Topmenu.php index 3125e6f6f2b6c9775a44d9a286a3dc9a8d8a789f..817fd6e022b9c6390606d9d9e1703f4b72513a22 100644 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Topmenu.php +++ b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Topmenu.php @@ -60,7 +60,6 @@ class Topmenu extends Block } ); } - sleep(1); // TODO: sleep should be removed after fix with category sliding $category[0]->click(); } diff --git a/dev/tests/integration/testsuite/Magento/Backend/Model/AuthTest.php b/dev/tests/integration/testsuite/Magento/Backend/Model/AuthTest.php index 762fcf94aa70576a4cc04f3b6f16b1015885ba69..3f0e20d8a744b52b81313fb8e2a38c57af8d1a0c 100644 --- a/dev/tests/integration/testsuite/Magento/Backend/Model/AuthTest.php +++ b/dev/tests/integration/testsuite/Magento/Backend/Model/AuthTest.php @@ -30,11 +30,22 @@ class AuthTest extends \PHPUnit_Framework_TestCase } /** + * @dataProvider getLoginDataProvider + * @param string $userName + * @param string $password * @expectedException \Magento\Framework\Exception\AuthenticationException */ - public function testLoginFailed() + public function testLoginFailed($userName, $password) { - $this->_model->login('not_exists', 'not_exists'); + $this->_model->login($userName, $password); + } + + public function getLoginDataProvider() + { + return [ + 'Invalid credentials' => ['not_exists', 'not_exists'], + 'Empty credentials' => ['', 'not_exists'] + ]; } public function testSetGetAuthStorage() @@ -77,17 +88,13 @@ class AuthTest extends \PHPUnit_Framework_TestCase */ public function testLogout() { - $this->markTestIncomplete('MAGETWO-17021'); $this->_model->login( \Magento\TestFramework\Bootstrap::ADMIN_NAME, \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD ); $this->assertNotEmpty($this->_model->getAuthStorage()->getData()); - $cookie = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Stdlib\Cookie'); - $cookie->set($this->_model->getAuthStorage()->getName(), 'session_id'); $this->_model->logout(); $this->assertEmpty($this->_model->getAuthStorage()->getData()); - $this->assertEmpty($cookie->get($this->_model->getAuthStorage()->getName())); } /** diff --git a/dev/tests/integration/testsuite/Magento/Backend/Model/Search/CustomerTest.php b/dev/tests/integration/testsuite/Magento/Backend/Model/Search/CustomerTest.php index fb4b79dfe54a16bcb4738af561ea64ad253c455a..e17b5accf97dd08dc234b90e73192bb51a573bd7 100644 --- a/dev/tests/integration/testsuite/Magento/Backend/Model/Search/CustomerTest.php +++ b/dev/tests/integration/testsuite/Magento/Backend/Model/Search/CustomerTest.php @@ -10,12 +10,12 @@ use Magento\TestFramework\Helper\Bootstrap; /** * @magentoAppArea adminhtml + * @magentoDataFixture Magento/Customer/_files/three_customers.php + * @magentoDataFixture Magento/Customer/_files/customer_address.php */ class CustomerTest extends \PHPUnit_Framework_TestCase { /** - * @magentoDataFixture Magento/Customer/_files/three_customers.php - * @magentoDataFixture Magento/Customer/_files/customer_address.php * @dataProvider loadDataProvider */ public function testLoad($query, $limit, $start, $expectedResult) diff --git a/dev/tests/integration/testsuite/Magento/Backend/Model/Search/OrderTest.php b/dev/tests/integration/testsuite/Magento/Backend/Model/Search/OrderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..759951c785d8590a1e9651a68f7a3ceeffae6371 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Backend/Model/Search/OrderTest.php @@ -0,0 +1,135 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Backend\Model\Search; + +use Magento\TestFramework\Helper\Bootstrap; + +/** + * @magentoAppArea adminhtml + * @magentoDataFixture Magento/Sales/_files/order.php + * @magentoDataFixture Magento/Sales/_files/order_shipping_address_different_to_billing.php + */ +class OrderTest extends \PHPUnit_Framework_TestCase +{ + /** + * @dataProvider loadDataProvider + */ + public function testLoad($query, $limit, $start, $expectedResult) + { + /** @var $order \Magento\Sales\Model\Order */ + $order = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Sales\Model\Order'); + $orderIdByIncrementId = []; + foreach (['100000001', '100000002', '100000003'] as $incrementId) { + $orderIdByIncrementId[$incrementId] = $order->loadByIncrementId($incrementId)->getId(); + } + + /** Preconditions */ + $objectManager = Bootstrap::getObjectManager(); + /** @var \Magento\Backend\Model\Search\Order $orderSearch */ + $orderSearch = $objectManager->create('Magento\Backend\Model\Search\Order'); + $orderSearch->setQuery($query); + $orderSearch->setLimit($limit); + $orderSearch->setStart($start); + $orderSearch->load(); + + /** SUT Execution */ + $searchResults = $orderSearch->getResults(); + + /** Ensure that search results are correct */ + $this->assertCount(count($expectedResult), $searchResults, 'Quantity of search result items is invalid.'); + foreach ($expectedResult as $itemIndex => $expectedItem) { + /** Validate URL to item */ + $orderIncrementId = substr($expectedItem['id'], strlen('order/1/#')); + $this->assertContains( + "order/view/order_id/{$orderIdByIncrementId[$orderIncrementId]}", + $searchResults[$itemIndex]['url'], + 'Item URL is invalid.' + ); + $expectedItem['id'] = 'order/1/' . $orderIdByIncrementId[$orderIncrementId]; + unset($searchResults[$itemIndex]['url']); + + /** Validate other item data */ + foreach ($expectedItem as $field => $value) { + $this->assertEquals( + $value, + (string)$searchResults[$itemIndex][$field], + "Data of item #$itemIndex is invalid." + ); + } + } + } + + public static function loadDataProvider() + { + return [ + 'All items, first page' => [ + '10000000', + 2, // Items on page + 1, // Page number + [ + [ + 'id' => 'order/1/#100000001', + 'type' => 'Order', + 'name' => 'Order #100000001', + 'description' => 'firstname lastname', + ], + [ + 'id' => 'order/1/#100000002', + 'type' => 'Order', + 'name' => 'Order #100000002', + 'description' => 'guest guest' + ] + ], + ], + 'All items, second page' => [ + '10000000', + 2, // Items on page + 2, // Page number + [ + [ + 'id' => 'order/1/#100000003', + 'type' => 'Order', + 'name' => 'Order #100000003', + 'description' => 'guest guest', + ] + ], + ], + 'Search by first name, first item only' => [ + 'First', + 10, // Items on page + 1, // Page number + [ + [ + 'id' => 'order/1/#100000001', + 'type' => 'Order', + 'name' => 'Order #100000001', + 'description' => 'firstname lastname', + ] + ], + ], + 'No results' => [ + 'NotExistingOrder', + 10, // Items on page + 1, // Page number + [], + ], + 'Search by last name, first item only' => [ + 'last', + 10, // Items on page + 1, // Page number + [ + [ + 'id' => 'order/1/#100000001', + 'type' => 'Order', + 'name' => 'Order #100000001', + 'description' => 'firstname lastname', + ] + ], + ], + ]; + } +} diff --git a/dev/tests/integration/testsuite/Magento/Config/Controller/Adminhtml/System/ConfigTest.php b/dev/tests/integration/testsuite/Magento/Config/Controller/Adminhtml/System/ConfigTest.php index a954c7c730a1ee571e4122bf880506df6f7f0845..17507214f58ce960622fe170a94e079f0eb1f863 100644 --- a/dev/tests/integration/testsuite/Magento/Config/Controller/Adminhtml/System/ConfigTest.php +++ b/dev/tests/integration/testsuite/Magento/Config/Controller/Adminhtml/System/ConfigTest.php @@ -18,7 +18,7 @@ class ConfigTest extends \Magento\Backend\Utility\Controller public function testEditAction() { $this->dispatch('backend/admin/system_config/edit'); - $this->assertContains('<ul id="system_config_tabs"', $this->getResponse()->getBody()); + $this->assertContains('<div id="system_config_tabs"', $this->getResponse()->getBody()); } /** diff --git a/dev/tests/integration/testsuite/Magento/Email/Block/Adminhtml/Template/Edit/FormTest.php b/dev/tests/integration/testsuite/Magento/Email/Block/Adminhtml/Template/Edit/FormTest.php new file mode 100644 index 0000000000000000000000000000000000000000..035efbb3bb89879982b67db8f958456ad61b84c2 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Email/Block/Adminhtml/Template/Edit/FormTest.php @@ -0,0 +1,91 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Email\Block\Adminhtml\Template\Edit; + +/** + * Test class for \Magento\Email\Block\Adminhtml\Template\Edit\Form + * @magentoAppArea adminhtml + * @magentoAppIsolation enabled + */ +class FormTest extends \PHPUnit_Framework_TestCase +{ + /** @var string[] */ + protected $expectedFields; + + /** @var Magento\Email\Model\Template */ + protected $template; + + /** @var Magento\Framework\TestFramework\Unit\Helper\ObjectManager */ + protected $objectManager; + + /** @var \Magento\Framework\Registry */ + protected $registry; + + /** @var \Magento\Email\Block\Adminhtml\Template\Edit\Form */ + protected $block; + + /** @var \ReflectionMethod */ + protected $prepareFormMethod; + + public function setUp() + { + $this->expectedFields = [ + 'base_fieldset', + 'template_code', + 'template_subject', + 'orig_template_variables', + 'variables', + 'template_variables', + 'insert_variable', + 'template_text', + 'template_styles' + ]; + + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + $this->template = $this->objectManager->get('Magento\Email\Model\Template') + ->setId(1) + ->setTemplateType(\Magento\Framework\App\TemplateTypesInterface::TYPE_HTML); + $this->registry = $this->objectManager->get('Magento\Framework\Registry'); + if ($this->registry->registry('current_email_template') == null) { + $this->registry->register('current_email_template', $this->template); + } + $this->block = $this->objectManager->create('Magento\Email\Block\Adminhtml\Template\Edit\Form'); + $this->prepareFormMethod = new \ReflectionMethod( + 'Magento\Email\Block\Adminhtml\Template\Edit\Form', + '_prepareForm' + ); + $this->prepareFormMethod->setAccessible(true); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Edit\Form::_prepareForm + */ + public function testPrepareFormWithTemplateId() + { + $this->expectedFields[] = 'used_currently_for'; + $this->runTest(); + } + + /** + * @covers \Magento\Email\Block\Adminhtml\Template\Edit\Form::_prepareForm + */ + public function testPrepareFormWithoutTemplateId() + { + $this->template->setId(null); + $this->expectedFields[] = 'used_default_for'; + $this->runTest(); + } + + protected function runTest() + { + $this->prepareFormMethod->invoke($this->block); + $form = $this->block->getForm(); + foreach ($this->expectedFields as $key) { + $this->assertNotNull($form->getElement($key)); + } + $this->assertGreaterThan(0, strpos($form->getElement('insert_variable')->getData('text'), 'Insert Variable')); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php b/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php index 72cbb8f071d6f7b0a8cdd2574bc3ccb6005eabe1..f7c9bcc53653adc6854ac860d56bab6bf17a6da3 100644 --- a/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php +++ b/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php @@ -201,4 +201,104 @@ class TemplateTest extends \PHPUnit_Framework_TestCase [['store' => $storeId]], ]; } + + public function testSetAndGetId() + { + $testId = 9999; + $this->_model->setId($testId); + $this->assertEquals($testId, $this->_model->getId()); + } + + public function testIsValidForSend() + { + $this->assertTrue($this->_model->isValidForSend()); + } + + /** + * @expectedException \UnexpectedValueException + * @expectedExceptionMessage Email template 'foo' is not defined. + */ + public function testGetTypeNonExistentType() + { + $this->_model->setId('foo'); + $this->_model->getType(); + } + + public function testGetTypeHtml() + { + $this->_model->setId('customer_create_account_email_template'); + $this->assertEquals(\Magento\Framework\App\TemplateTypesInterface::TYPE_HTML, $this->_model->getType()); + } + + public function testGetType() + { + $templateTypeId = 'test_template'; + $this->_model->setTemplateType($templateTypeId); + $this->assertEquals($templateTypeId, $this->_model->getType()); + } + + public function testGetPreparedTemplateText() + { + $this->_model->loadDefault('customer_create_account_email_template'); + $this->assertContains('<body style', $this->_model->getPreparedTemplateText()); + } + + public function testGetSendingException() + { + $this->assertNull($this->_model->getSendingException()); + } + + public function testGetVariablesOptionArray() + { + $testTemplateVariables = '{"var data.name":"Sender Name","var data.email":"Sender Email"}'; + $this->_model->setOrigTemplateVariables($testTemplateVariables); + $variablesOptionArray = $this->_model->getVariablesOptionArray(); + $this->assertEquals('{{var data.name}}', $variablesOptionArray[0]['value']); + $this->assertEquals('Sender Name', $variablesOptionArray[0]['label']->getArguments()[0]); + $this->assertEquals('{{var data.email}}', $variablesOptionArray[1]['value']); + $this->assertEquals('Sender Email', $variablesOptionArray[1]['label']->getArguments()[0]); + } + + public function testGetVariablesOptionArrayInGroup() + { + $testTemplateVariables = '{"var data.name":"Sender Name","var data.email":"Sender Email"}'; + $this->_model->setOrigTemplateVariables($testTemplateVariables); + $variablesOptionArray = $this->_model->getVariablesOptionArray(true); + $this->assertEquals('Template Variables', $variablesOptionArray['label']->getText()); + $this->assertEquals($this->_model->getVariablesOptionArray(), $variablesOptionArray['value']); + } + + /** + * @expectedException \Magento\Framework\Mail\Exception + * @expectedExceptionMessage The template Name must not be empty. + */ + public function testBeforeSaveEmptyTemplateCode() + { + $this->_model->beforeSave(); + } + + public function testBeforeSave() + { + $this->_model->setTemplateCode('test template code'); + $this->_model->beforeSave(); + } + + public function testProcessTemplate() + { + $this->_model->setId('customer_create_account_email_template'); + $this->assertContains('<body style', $this->_model->processTemplate()); + } + + public function testGetSubject() + { + $this->_model->setVars(['foo', 'bar', 'baz']); + $this->assertEquals('Subject', $this->_model->getSubject()); + } + + public function testSetOptions() + { + $options = ['area' => 'test area', 'store' => 1]; + $this->_model->setOptions($options); + $this->assertEquals($options, $this->_model->getDesignConfig()->getData()); + } } diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/Model/OrderItemRepositoryTest.php b/dev/tests/integration/testsuite/Magento/GiftMessage/Model/OrderItemRepositoryTest.php new file mode 100644 index 0000000000000000000000000000000000000000..18532c48952e48d2f1abd65f62514eeb45c7acbf --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/Model/OrderItemRepositoryTest.php @@ -0,0 +1,163 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Model; + +class OrderItemRepositoryTest extends \PHPUnit_Framework_TestCase +{ + /** @var \Magento\Framework\ObjectManagerInterface */ + protected $objectManager; + + /** @var \Magento\GiftMessage\Model\Message */ + protected $message; + + /** @var \Magento\GiftMessage\Model\OrderItemRepository */ + protected $giftMessageOrderItemRepository; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + + $this->message = $this->objectManager->create('Magento\GiftMessage\Model\Message'); + $this->message->setSender('Romeo'); + $this->message->setRecipient('Mercutio'); + $this->message->setMessage('I thought all for the best.'); + + $this->giftMessageOrderItemRepository = $this->objectManager->create( + 'Magento\GiftMessage\Model\OrderItemRepository' + ); + + } + + protected function tearDown() + { + unset($this->objectManager); + unset($this->message); + unset($this->giftMessageOrderItemRepository); + } + + /** + * @magentoDataFixture Magento/GiftMessage/_files/order_with_message.php + * @magentoConfigFixture default_store sales/gift_options/allow_items 1 + */ + public function testGet() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + $orderItem = $order->getItems(); + $orderItem = array_shift($orderItem); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $message = $this->giftMessageOrderItemRepository->get($order->getEntityId(), $orderItem->getItemId()); + $this->assertEquals('Romeo', $message->getSender()); + $this->assertEquals('Mercutio', $message->getRecipient()); + $this->assertEquals('I thought all for the best.', $message->getMessage()); + } + + /** + * @magentoDataFixture Magento/GiftMessage/_files/order_with_message.php + * @magentoConfigFixture default_store sales/gift_options/allow_items 1 + * @expectedException \Magento\Framework\Exception\NoSuchEntityException + * @expectedExceptionMessage There is no item with provided id in the order + */ + public function testGetNoProvidedItemId() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + $orderItem = $order->getItems(); + $orderItem = array_shift($orderItem); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $this->giftMessageOrderItemRepository->get($order->getEntityId(), $orderItem->getItemId() * 10); + } + + /** + * @magentoDataFixture Magento/Sales/_files/order.php + * @magentoConfigFixture default_store sales/gift_options/allow_items 1 + */ + public function testSave() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + $orderItem = $order->getItems(); + $orderItem = array_shift($orderItem); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $result = $this->giftMessageOrderItemRepository->save( + $order->getEntityId(), + $orderItem->getItemId(), + $this->message + ); + + $message = $this->giftMessageOrderItemRepository->get($order->getEntityId(), $orderItem->getItemId()); + + $this->assertTrue($result); + $this->assertEquals('Romeo', $message->getSender()); + $this->assertEquals('Mercutio', $message->getRecipient()); + $this->assertEquals('I thought all for the best.', $message->getMessage()); + } + + + /** + * @magentoDataFixture Magento/Sales/_files/order.php + * @magentoConfigFixture default_store sales/gift_options/allow_items 0 + * @expectedException \Magento\Framework\Exception\CouldNotSaveException + * @expectedExceptionMessage Gift Message is not available + */ + public function testSaveMessageIsNotAvailable() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + $orderItem = $order->getItems(); + $orderItem = array_shift($orderItem); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $this->giftMessageOrderItemRepository->save($order->getEntityId(), $orderItem->getItemId(), $this->message); + } + + /** + * @magentoDataFixture Magento/GiftMessage/_files/virtual_order.php + * @magentoConfigFixture default_store sales/gift_options/allow_items 1 + * @expectedException \Magento\Framework\Exception\State\InvalidTransitionException + * @expectedExceptionMessage Gift Messages is not applicable for virtual products + */ + public function testSaveMessageIsVirtual() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + $orderItem = $order->getItems(); + $orderItem = array_shift($orderItem); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $this->giftMessageOrderItemRepository->save($order->getEntityId(), $orderItem->getItemId(), $this->message); + } + + /** + * @magentoDataFixture Magento/GiftMessage/_files/empty_order.php + * @magentoConfigFixture default_store sales/gift_options/allow_items 1 + * @expectedException \Magento\Framework\Exception\NoSuchEntityException + * @expectedExceptionMessage There is no item with provided id in the order + */ + public function testSaveMessageNoProvidedItemId() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ + $orderItem = $order->getItems(); + $orderItem = array_shift($orderItem); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $this->giftMessageOrderItemRepository->save( + $order->getEntityId(), + $orderItem->getItemId() * 10, + $this->message + ); + } +} diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/Model/OrderRepositoryTest.php b/dev/tests/integration/testsuite/Magento/GiftMessage/Model/OrderRepositoryTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f47174a49cf265d42dd203ad3d758b605606d552 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/Model/OrderRepositoryTest.php @@ -0,0 +1,133 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Model; + +class OrderRepositoryTest extends \PHPUnit_Framework_TestCase +{ + /** @var \Magento\Framework\ObjectManagerInterface */ + protected $objectManager; + + /** @var \Magento\GiftMessage\Model\Message */ + protected $message; + + /** @var \Magento\GiftMessage\Model\OrderRepository */ + protected $giftMessageOrderRepository; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + + $this->message = $this->objectManager->create('Magento\GiftMessage\Model\Message'); + $this->message->setSender('Romeo'); + $this->message->setRecipient('Mercutio'); + $this->message->setMessage('I thought all for the best.'); + + $this->giftMessageOrderRepository = $this->objectManager->create('Magento\GiftMessage\Model\OrderRepository'); + } + + protected function tearDown() + { + unset($this->objectManager); + unset($this->message); + unset($this->giftMessageOrderRepository); + } + + /** + * @magentoDataFixture Magento/GiftMessage/_files/order_with_message.php + * @magentoConfigFixture default_store sales/gift_options/allow_order 1 + */ + public function testGet() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $message = $this->giftMessageOrderRepository->get($order->getEntityId()); + $this->assertEquals('Romeo', $message->getSender()); + $this->assertEquals('Mercutio', $message->getRecipient()); + $this->assertEquals('I thought all for the best.', $message->getMessage()); + } + + /** + * @magentoDataFixture Magento/Sales/_files/order.php + * @magentoConfigFixture default_store sales/gift_options/allow_order 1 + */ + public function testSave() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $result = $this->giftMessageOrderRepository->save($order->getEntityId(), $this->message); + + $message = $this->giftMessageOrderRepository->get($order->getEntityId()); + + $this->assertTrue($result); + $this->assertEquals('Romeo', $message->getSender()); + $this->assertEquals('Mercutio', $message->getRecipient()); + $this->assertEquals('I thought all for the best.', $message->getMessage()); + } + + /** + * @magentoDataFixture Magento/Sales/_files/order.php + * @magentoConfigFixture default_store sales/gift_options/allow_order 0 + * @expectedException \Magento\Framework\Exception\CouldNotSaveException + * @expectedExceptionMessage Gift Message is not available + */ + public function testSaveMessageIsNotAvailable() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $this->giftMessageOrderRepository->save($order->getEntityId(), $this->message); + } + + /** + * @magentoDataFixture Magento/GiftMessage/_files/virtual_order.php + * @magentoConfigFixture default_store sales/gift_options/allow_order 1 + * @expectedException \Magento\Framework\Exception\State\InvalidTransitionException + * @expectedExceptionMessage Gift Messages is not applicable for virtual products + */ + public function testSaveMessageIsVirtual() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $this->giftMessageOrderRepository->save($order->getEntityId(), $this->message); + } + + /** + * @magentoDataFixture Magento/GiftMessage/_files/empty_order.php + * @magentoConfigFixture default_store sales/gift_options/allow_order 1 + * @expectedException \Magento\Framework\Exception\InputException + * @expectedExceptionMessage Gift Messages is not applicable for empty order + */ + public function testSaveMessageIsEmpty() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $this->giftMessageOrderRepository->save($order->getEntityId(), $this->message); + } + + /** + * @magentoDataFixture Magento/GiftMessage/_files/empty_order.php + * @magentoConfigFixture default_store sales/gift_options/allow_order 1 + * @expectedException \Magento\Framework\Exception\NoSuchEntityException + * @expectedExceptionMessage There is no order with provided id + */ + public function testSaveMessageNoProvidedItemId() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + + /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */ + $this->giftMessageOrderRepository->save($order->getEntityId() * 10, $this->message); + } +} diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/empty_order.php b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/empty_order.php new file mode 100644 index 0000000000000000000000000000000000000000..40a28f6d051f7f6b53e491ceaa44a195d15d56f4 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/empty_order.php @@ -0,0 +1,12 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +require __DIR__ . '/../../../Magento/Sales/_files/order.php'; +/** @var \Magento\Sales\Model\Order $order */ + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +$order = $objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); +$order->setItems([])->setTotalItemCount(0)->save(); diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/order_with_message.php b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/order_with_message.php new file mode 100644 index 0000000000000000000000000000000000000000..b99eddea282846771d77bfc51cf101789e191b52 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/order_with_message.php @@ -0,0 +1,26 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +require __DIR__ . '/../../../Magento/Sales/_files/order.php'; + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +/** @var \Magento\GiftMessage\Model\Message $message */ +$message = $objectManager->create('Magento\GiftMessage\Model\Message'); +$message->setSender('Romeo'); +$message->setRecipient('Mercutio'); +$message->setMessage('I thought all for the best.'); +$message->save(); + +/** @var \Magento\Sales\Model\Order $order */ +$order = $objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); + +/** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */ +$orderItem = $order->getItems(); +$orderItem = array_shift($orderItem); +$orderItem->setGiftMessageId($message->getId()); + +$order->setItems([$orderItem])->setGiftMessageId($message->getId()); +$order->save(); diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/virtual_order.php b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/virtual_order.php new file mode 100644 index 0000000000000000000000000000000000000000..1e33aba1663cb9c01beb1cbf0d53c0cd61e3ca8b --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/virtual_order.php @@ -0,0 +1,12 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +require __DIR__ . '/../../../Magento/Sales/_files/order.php'; +/** @var \Magento\Sales\Model\Order $order */ + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +$order = $objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId('100000001'); +$order->setIsVirtual(1)->save(); diff --git a/dev/tests/integration/testsuite/Magento/Sales/Model/AdminOrder/CreateTest.php b/dev/tests/integration/testsuite/Magento/Sales/Model/AdminOrder/CreateTest.php index d53554db1622aaf000606fd11378630584e89d7a..ab65efa40a0ec16a5e87507b90e0cde8139b8377 100644 --- a/dev/tests/integration/testsuite/Magento/Sales/Model/AdminOrder/CreateTest.php +++ b/dev/tests/integration/testsuite/Magento/Sales/Model/AdminOrder/CreateTest.php @@ -83,7 +83,7 @@ class CreateTest extends \PHPUnit_Framework_TestCase /** @var $order \Magento\Sales\Model\Order */ $order = $objectManager->create('Magento\Sales\Model\Order'); - $order->loadByIncrementId('100000001'); + $order->loadByIncrementId('100000002'); $this->assertNull($order->getShippingAddress()->getSameAsBilling()); diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/order_shipping_address_different_to_billing.php b/dev/tests/integration/testsuite/Magento/Sales/_files/order_shipping_address_different_to_billing.php index d46172f603d9538db67d078db203080b47664b6a..9a4f95e5fbf0199ea442e40f1c18152d08cf7d82 100644 --- a/dev/tests/integration/testsuite/Magento/Sales/_files/order_shipping_address_different_to_billing.php +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/order_shipping_address_different_to_billing.php @@ -30,13 +30,21 @@ $shippingAddress->setId(null)->setPostcode('2')->setAddressType('shipping'); $order = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Sales\Model\Order'); $order->loadByIncrementId('100000001'); $clonedOrder = clone $order; -$order->setIncrementId('100000002'); -$order->save(); /** @var $payment \Magento\Sales\Model\Order\Payment */ $payment = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Sales\Model\Order\Payment'); $payment->setMethod('checkmo'); +$clonedOrder->setIncrementId('100000002') + ->setId(null) + ->setBillingAddress($billingAddress) + ->setShippingAddress($shippingAddress) + ->setPayment($payment); +$clonedOrder->save(); -$order = $clonedOrder; -$order->setId(null)->setBillingAddress($billingAddress)->setShippingAddress($shippingAddress)->setPayment($payment); -$order->save(); +$secondClonedOrder = clone $order; +$secondClonedOrder->setIncrementId('100000003') + ->setId(null) + ->setBillingAddress($billingAddress->setId(null)) + ->setShippingAddress($shippingAddress->setId(null)) + ->setPayment($payment->setId(null)); +$secondClonedOrder->save(); diff --git a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/UserTest.php b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/UserTest.php index 0fa5bfb6712bbf3d47504100f45b355cc980f4da..f7de99380e8423f158736487530959823e2fb917 100644 --- a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/UserTest.php +++ b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/UserTest.php @@ -95,6 +95,32 @@ class UserTest extends \Magento\Backend\Utility\Controller $this->assertRedirect($this->stringContains('backend/admin/user/index/')); } + /** + * @magentoDbIsolation enabled + * @magentoDataFixture Magento/User/_files/user_with_role.php + */ + public function testSaveActionDuplicateUser() + { + $this->getRequest()->setPostValue( + [ + 'username' => 'adminUser', + 'email' => 'adminUser@example.com', + 'firstname' => 'John', + 'lastname' => 'Doe', + 'password' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD, + 'password_confirmation' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD, + \Magento\User\Block\User\Edit\Tab\Main::CURRENT_USER_PASSWORD_FIELD => Bootstrap::ADMIN_PASSWORD, + ] + ); + $this->dispatch('backend/admin/user/save/active_tab/main_section'); + $this->assertSessionMessages( + $this->equalTo(['A user with the same user name or email already exists.']), + \Magento\Framework\Message\MessageInterface::TYPE_ERROR + ); + $this->assertRedirect($this->stringContains('backend/admin/user/edit/')); + $this->assertRedirect($this->matchesRegularExpression('/^((?!active_tab).)*$/')); + } + /** * @magentoDbIsolation enabled * @dataProvider resetPasswordDataProvider diff --git a/dev/tests/js/JsTestDriver/testsuite/mage/tabs/tabs-test.js b/dev/tests/js/JsTestDriver/testsuite/mage/tabs/tabs-test.js index d1d7e8fa130ccb7498cc9e977c1766c96f5ee270..b2b92381e0bb7a67668662c1fa1ba6312e19fa01 100644 --- a/dev/tests/js/JsTestDriver/testsuite/mage/tabs/tabs-test.js +++ b/dev/tests/js/JsTestDriver/testsuite/mage/tabs/tabs-test.js @@ -128,13 +128,13 @@ TabsTest.prototype.testOnContentChange = function() { tabs = jQuery('#tabs').tabs(); tabs.data("tabs")._onContentChange(eventMock); - assertTrue(jQuery('#tab1').hasClass('changed')); + assertTrue(jQuery('#tab1').hasClass('_changed')); }; TabsTest.prototype.testOnInvalid = function() { /*:DOC += <div id="tabs"><ul> <li> - <a href="www.site.com" id="tab1">Tab 1<span class="error"> </span></a> + <a href="www.site.com" id="tab1">Tab 1<span class="_error"> </span></a> <div id="tab1_content"></div> </li> </ul></div> @@ -145,13 +145,13 @@ TabsTest.prototype.testOnInvalid = function() { } }, tabs = jQuery('#tabs').tabs(), - errorIcon = jQuery('#tab1').find('.error'); + errorIcon = jQuery('#tab1').find('._error'); errorIcon.hide(); assertTrue(errorIcon.is(':hidden')); tabs.data("tabs")._onInvalid(eventMock); - assertTrue(jQuery('#tab1').hasClass('error')); + assertTrue(jQuery('#tab1').hasClass('_error')); assertTrue(errorIcon.is(':visible')); }; @@ -174,10 +174,10 @@ TabsTest.prototype.testOnFocus = function() { }, tabs = jQuery('#tabs').tabs(); - assertNotEquals(tabs.tabs('option', 'active'), eventMock.data.index); + assertNotEquals(tabs.tabs('option', '_active'), eventMock.data.index); tabs.data("tabs")._onFocus(eventMock); - assertEquals(tabs.tabs('option', 'active'), eventMock.data.index); + assertEquals(tabs.tabs('option', '_active'), eventMock.data.index); }; TabsTest.prototype.testOnBeforeSubmit = function() { 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 21ff60a356b59dbd10c2c7bcc2d9c5cc21c57bd4..7baeb9bac60b7ecbb782de7407a87d7033367831 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 @@ -338,6 +338,11 @@ return [ ['_getItemPosition', 'Magento\Catalog\Block\Navigation'], ['_renderCategoryMenuItemHtml', 'Magento\Catalog\Block\Navigation'], ['getCurrentCategoryPath', 'Magento\Catalog\Block\Navigation'], + [ + 'getIsMessagesAvailable', + 'Magento\GiftMessage\Helper\Message', + 'Magento\GiftMessage\Helper\Message::isMessagesAllowed' + ], ['drawOpenCategoryItem', 'Magento\Catalog\Block\Navigation'], ['renderCategoriesMenuHtml', 'Magento\Catalog\Block\Navigation'], ['dropKey', 'Magento\Framework\DB\Adapter\Pdo\Mysql'], diff --git a/dev/tests/unit/phpunit.xml.dist b/dev/tests/unit/phpunit.xml.dist index da22efa001e62023edca737d21fce161a764a665..5c785e252e48aa8c82aa8bcfe817c761b38ecc23 100644 --- a/dev/tests/unit/phpunit.xml.dist +++ b/dev/tests/unit/phpunit.xml.dist @@ -44,5 +44,8 @@ <!--coverage_clover_placeholder <log type="coverage-clover" target="{{coverage_dir}}/test-reports/phpunit.coverage.xml"/> coverage_clover_placeholder--> + <!--coverage_crap4j_placeholder + <log type="coverage-crap4j" target="{{coverage_dir}}/test-reports/phpunit.crap4j.xml"/> + coverage_crap4j_placeholder--> </logging> </phpunit> diff --git a/dev/tools/Magento/Tools/Di/compiler.php b/dev/tools/Magento/Tools/Di/compiler.php index fca4673dd90fdf85f5feb74bfd3257d99a83e78b..ced28772e7c6108f8f1a033617cf4af379687195 100644 --- a/dev/tools/Magento/Tools/Di/compiler.php +++ b/dev/tools/Magento/Tools/Di/compiler.php @@ -247,11 +247,6 @@ try { . ' in the "var" directory. For instance, if you run the Magento application using Apache,' . ' the owner of the files in the "var" directory should be the Apache user (example command:' . ' "chown -R www-data:www-data <MAGENTO_ROOT>/var" where MAGENTO_ROOT is the Magento root directory).' . "\n"; - /** TODO: Temporary solution before having necessary changes on bamboo to overcome issue described above */ - $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($rootDir . '/var')); - foreach ($iterator as $item) { - chmod($item, 0777); - } } catch (Zend_Console_Getopt_Exception $e) { echo $e->getUsageMessage(); diff --git a/dev/tools/grunt/configs/clean.js b/dev/tools/grunt/configs/clean.js index 7ac0a11703c34aaf5b2d4d350dfd290b35dd5e5c..df31a4796eca8def768d1693561874ee0fae8cfe 100644 --- a/dev/tools/grunt/configs/clean.js +++ b/dev/tools/grunt/configs/clean.js @@ -19,9 +19,9 @@ _.each(themes, function(theme, name) { "dot": true, "src": [ "<%= path.tmp %>/cache/**/*", - "<%= combo.autopath(\""+name+"\", \"pub\") %>**/*", - "<%= combo.autopath(\""+name+"\", \"tmpLess\") %>**/*", - "<%= combo.autopath(\""+name+"\", \"tmpSource\") %>**/*" + "<%= combo.autopath(\""+name+"\", path.pub ) %>**/*", + "<%= combo.autopath(\""+name+"\", path.tmpLess) %>**/*", + "<%= combo.autopath(\""+name+"\", path.tmpSource) %>**/*" ] } ] @@ -87,6 +87,7 @@ var cleanOptions = { "src": [ "<%= path.tmp %>/cache/**/*", "<%= path.tmp %>/generation/**/*", + "<%= path.tmp %>/view_preprocessed/html/**/*", "<%= path.tmp %>/page_cache/**/*" ] } diff --git a/dev/tools/grunt/configs/combo.js b/dev/tools/grunt/configs/combo.js index 185d8ef931311af1e071786b9cf6521a42ebe51e..1ead93cb6265474399e612d02bad98cfbdaaee5b 100644 --- a/dev/tools/grunt/configs/combo.js +++ b/dev/tools/grunt/configs/combo.js @@ -26,8 +26,8 @@ module.exports = { return command; }, - autopath: function (themeName) { - return path.pub + + autopath: function (themeName, folder) { + return folder + theme[themeName].area + '/' + theme[themeName].name + '/' + theme[themeName].locale + '/'; diff --git a/dev/tools/grunt/configs/less.js b/dev/tools/grunt/configs/less.js index 6f3e6186c214c15fc3d8405fb9c76cad9fbb6b06..fe0c284c410838840376c63971ed0e30971a89d3 100644 --- a/dev/tools/grunt/configs/less.js +++ b/dev/tools/grunt/configs/less.js @@ -28,11 +28,6 @@ var lessOptions = { backend: { files: combo.lessFiles('backend') }, - override: { - files: { - '<%= combo.autopath("backend","pub") %>css/styles-migration.css': '<%= combo.autopath("backend","pub") %>css/styles-migration.less' - } - }, blank: { files: combo.lessFiles('blank') }, diff --git a/dev/tools/grunt/configs/replace.js b/dev/tools/grunt/configs/replace.js deleted file mode 100644 index 704683f691c36ec8f5189b26feef77009bd0e57e..0000000000000000000000000000000000000000 --- a/dev/tools/grunt/configs/replace.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -'use strict'; - -/** - * Replace task for backend migration - */ -module.exports = { - escapeCalc: { - src: ['<%= combo.autopath("backend","pub") %>/css/styles.css'], // source files array (supports minimatch) - dest: '<%= combo.autopath("backend","pub") %>/css/override.less', // destination directory or file - replacements: [{ - from: /:(.*calc.*);/g, // regex replacement ('Fooo' to 'Mooo') - to: ': ~"$1";' - }, { - from: /\/\*# sourc.*/g, // regex replacement ('Fooo' to 'Mooo') - to: '' - }] - } -}; diff --git a/dev/tools/grunt/configs/themes.js b/dev/tools/grunt/configs/themes.js index dd43ca186524d7377334b1d341cc6c5bdc93db35..3f7a1d140afd018b52bb3247d3d5c0d43a6f4050 100644 --- a/dev/tools/grunt/configs/themes.js +++ b/dev/tools/grunt/configs/themes.js @@ -45,8 +45,7 @@ module.exports = { locale: 'en_US', files: [ 'css/styles-old', - 'css/styles', - 'css/styles-migration' + 'css/styles' ], dsl: 'less' } diff --git a/dev/tools/grunt/configs/watch.js b/dev/tools/grunt/configs/watch.js index ffe0fcc097e5216278f9c12f81455b7d63001ce9..fd7eefdbc30db86dbba7219e996423db4d1ba856 100644 --- a/dev/tools/grunt/configs/watch.js +++ b/dev/tools/grunt/configs/watch.js @@ -14,7 +14,7 @@ var themeOptions = {}; _.each(themes, function(theme, name) { themeOptions[name] = { "files": [ - "<%= combo.autopath(\""+name+"\",\"pub\") %>/**/*.less" + "<%= combo.autopath(\""+name+"\", path.pub) %>/**/*.less" ], "tasks": "less:" + name }; @@ -30,15 +30,6 @@ var watchOptions = { "options": { livereload: true } - }, - "backendMigration": { - "files": [ - "<%= combo.autopath(\"backend\",\"pub\") %>/css/styles.css" - ], - "tasks": [ - "replace:escapeCalc", - "less:override" - ] } }; diff --git a/lib/web/css/source/lib/_resets.less b/lib/web/css/source/lib/_resets.less index 30259fea3e72ce09b8c2eb8e27aa4727dae5c0e5..ca7398be9b9857089c0adabf4a84d11156095623 100644 --- a/lib/web/css/source/lib/_resets.less +++ b/lib/web/css/source/lib/_resets.less @@ -97,7 +97,7 @@ } } - .keyfocus *, + ._keyfocus *, input:not([disabled]), textarea:not([disabled]), select:not([disabled]) { @@ -111,6 +111,7 @@ // Normalize // --------------------------------------------- +// ToDo UI: delete with old admin styles .normalize() { /*! normalize.css v3.0.0 | MIT License | git.io/normalize */ html { diff --git a/lib/web/css/source/lib/variables/_icons.less b/lib/web/css/source/lib/variables/_icons.less index 5b6cd989881c157bbe033fcd70e4cddda47ecfa4..443228833b6d87e93c4030cac230ad50f2c55ad6 100644 --- a/lib/web/css/source/lib/variables/_icons.less +++ b/lib/web/css/source/lib/variables/_icons.less @@ -33,6 +33,8 @@ @icon-font__vertical-align: @icon__vertical-align; @icon-font__display: inline-block; +@icon-calendar__font-size: 40px; + // // Variables for icons-blank-theme // --------------------------------------------- diff --git a/lib/web/mage/adminhtml/wysiwyg/widget.js b/lib/web/mage/adminhtml/wysiwyg/widget.js index 1a4b96a8b6b1af4959c44947f882fe0c55c33a11..354e7e4381d1d4f89540566d8cb81b0eef3825d9 100644 --- a/lib/web/mage/adminhtml/wysiwyg/widget.js +++ b/lib/web/mage/adminhtml/wysiwyg/widget.js @@ -73,6 +73,8 @@ define([ 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'); @@ -393,6 +395,8 @@ define([ 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'); diff --git a/lib/web/mage/backend/tabs.js b/lib/web/mage/backend/tabs.js index a6965aa35e3539047605c1f9af55b76517bf0948..68187d0aed04d5f6a8047a687e89ef2e78889ee4 100644 --- a/lib/web/mage/backend/tabs.js +++ b/lib/web/mage/backend/tabs.js @@ -20,7 +20,9 @@ $.widget('mage.tabs', $.ui.tabs, { options: { spinner: false, - groups: null + groups: null, + tabPanelClass: '', + excludedPanel: '' }, /** @@ -179,6 +181,9 @@ "aria-labelledby": anchorId }); panel.attr("aria-labelledby", anchorId); + if (that.options.excludedPanel.indexOf(anchorId+'_content') < 0) { + panel.addClass(that.options.tabPanelClass); + }; }); this.panels @@ -278,7 +283,33 @@ * @param {Object} e - event object */ _onContentChange: function(e) { - this.anchors.eq(e.data.index).addClass('changed'); + var cssChanged = '_changed'; + + this.anchors.eq(e.data.index).addClass(cssChanged); + this._updateNavTitleMessages(e,cssChanged); + }, + + /** + * Clone messages (tooltips) from anchor to parent element + * @protected + * @param {Object} e - event object + * @param {string} messageType - changed or error + */ + _updateNavTitleMessages: function(e, messageType) { + var curAnchor = this.anchors.eq(e.data.index), + curItem = curAnchor.parents('[data-role="container"]').find('[data-role="title"]'), + curItemMessages = curItem.find('[data-role="title-messages"]'), + curItemMessage, + activeClass = "_active"; + + if ((curItemMessages).is(":empty")) { + curAnchor + .find('[data-role="item-messages"]') + .clone() + .appendTo(curItemMessages); + } + + curItemMessage = curItemMessages.find('.' + messageType).addClass(activeClass); }, /** @@ -287,7 +318,10 @@ * @protected */ _onInvalid: function(e) { - this.anchors.eq(e.data.index).addClass('error').find('.error').show(); + var cssError = '_error'; + + this.anchors.eq(e.data.index).addClass(cssError).find('.' + cssError).show(); + this._updateNavTitleMessages(e, cssError); }, /** @@ -296,7 +330,7 @@ * @protected */ _onFocus: function(e) { - this.option("active", e.data.index); + this.option("_active", e.data.index); }, /** diff --git a/lib/web/mage/calendar.js b/lib/web/mage/calendar.js index e445e62e05929be9f648a9e3f53092bf3917c4ac..faa11353c33a47872131e64013ce3ed759aa9899 100644 --- a/lib/web/mage/calendar.js +++ b/lib/web/mage/calendar.js @@ -86,9 +86,14 @@ * @param {Element} */ _initPicker: function(element) { - element[this._picker()](this.options) - .next('.ui-datepicker-trigger') - .addClass('v-middle'); + var picker = element[this._picker()](this.options), + pickerButtonText = picker.next('.ui-datepicker-trigger') + .find('img') + .attr('title'); + picker.next('.ui-datepicker-trigger') + .addClass('v-middle') + .text('') // Remove jQuery UI datepicker generated image + .append('<span>' + pickerButtonText + '</span>'); this._setCurrentDate(element); }, diff --git a/lib/web/mage/loader.js b/lib/web/mage/loader.js index b9443094f07201bda215e498f1706ba348a31629..a4bfc58b7859edd2cff3c200bd37a67733fc32c7 100644 --- a/lib/web/mage/loader.js +++ b/lib/web/mage/loader.js @@ -203,7 +203,7 @@ define([ // ARIA support if (ariaSelected.length) { ariaSelected.first().focus(); - $(this.options.defaultContainer).addClass('keyfocus'); + $(this.options.defaultContainer).addClass('_keyfocus'); } if (settings && settings.showLoader) { diff --git a/lib/web/mage/smart-keyboard-handler.js b/lib/web/mage/smart-keyboard-handler.js index 2a62f855a3276d3c5b5ad54b0b145f67a5930870..55730e8106f4510be72e4d707ce02407a1ee4fda 100644 --- a/lib/web/mage/smart-keyboard-handler.js +++ b/lib/web/mage/smart-keyboard-handler.js @@ -10,7 +10,7 @@ define([ function KeyboardHandler() { var body = $('body'), focusState = false, - tabFocusClass = 'keyfocus', + tabFocusClass = '_keyfocus', productsGrid = '[data-container="product-grid"]', catalogProductsGrid = $(productsGrid), CODE_TAB = 9; diff --git a/lib/web/mage/translate-inline.js b/lib/web/mage/translate-inline.js index aba0eec057cf38fd7391fbb0be33ecd29155c8da..ee7f68acd45c6acd31434bce9720c92bb578a7d0 100644 --- a/lib/web/mage/translate-inline.js +++ b/lib/web/mage/translate-inline.js @@ -31,25 +31,38 @@ autoOpen : false, translateArea: null, modal: true, - dialogClass: "dialog", - width: 650, + dialogClass: 'popup-window', + width: '75%', title: $.mage.__('Translate'), height: 470, - zIndex: 2100, + position: { + my: 'left top', + at: 'center top', + of: 'body' + }, buttons: [{ text: $.mage.__('Submit'), - 'class': 'form-button button', + 'class': 'action-primary', click: function(e) { $(this).translateInline('submit'); } }, { text: $.mage.__('Close'), - 'class': 'form-button button', + 'class': 'action-close', click: function() { $(this).translateInline('close'); } - }] + }], + open: function () { + $(this).closest('.ui-dialog').addClass('ui-dialog-active'); + + 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'); + } }, /** * Translate Inline creation diff --git a/setup/pub/styles/setup.css b/setup/pub/styles/setup.css index 41b113a55c90f4be925712eee65124bb3200d537..ebe7d360aa51a5727093b1b86326a529a7fc3c07 100644 --- a/setup/pub/styles/setup.css +++ b/setup/pub/styles/setup.css @@ -3,4 +3,4 @@ * See COPYING.txt for license details. */ -html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}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]{box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box}:focus{box-shadow:none;outline:0}.keyfocus :focus{box-shadow:0 0 0 1px #008bdb}embed,img,object,video{max-width:100%}.abs-clearer:after,.form-row:after,.header:after,.nav:after,.row:after{content:"";display:table;clear:both}.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:'Open Sans';src:url(../../pub/fonts/opensans/light/opensans-300.eot);src:url(../../pub/fonts/opensans/light/opensans-300.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/opensans/light/opensans-300.woff2) format('woff2'),url(../../pub/fonts/opensans/light/opensans-300.woff) format('woff'),url(../../pub/fonts/opensans/light/opensans-300.ttf) format('truetype'),url('../../pub/fonts/opensans/light/opensans-300.svg#Open Sans') format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Open Sans';src:url(../../pub/fonts/opensans/regular/opensans-400.eot);src:url(../../pub/fonts/opensans/regular/opensans-400.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/opensans/regular/opensans-400.woff2) format('woff2'),url(../../pub/fonts/opensans/regular/opensans-400.woff) format('woff'),url(../../pub/fonts/opensans/regular/opensans-400.ttf) format('truetype'),url('../../pub/fonts/opensans/regular/opensans-400.svg#Open Sans') format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url(../../pub/fonts/opensans/semibold/opensans-600.eot);src:url(../../pub/fonts/opensans/semibold/opensans-600.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/opensans/semibold/opensans-600.woff2) format('woff2'),url(../../pub/fonts/opensans/semibold/opensans-600.woff) format('woff'),url(../../pub/fonts/opensans/semibold/opensans-600.ttf) format('truetype'),url('../../pub/fonts/opensans/semibold/opensans-600.svg#Open Sans') format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Open Sans';src:url(../../pub/fonts/opensans/bold/opensans-700.eot);src:url(../../pub/fonts/opensans/bold/opensans-700.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/opensans/bold/opensans-700.woff2) format('woff2'),url(../../pub/fonts/opensans/bold/opensans-700.woff) format('woff'),url(../../pub/fonts/opensans/bold/opensans-700.ttf) format('truetype'),url('../../pub/fonts/opensans/bold/opensans-700.svg#Open Sans') format('svg');font-weight:700;font-style:normal}html{font-size:62.5%}body{color:#303030;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:400;line-height:1.4}h1,h2,h3,h4,h5,h6{font-weight:400;margin-top:0}p{margin:0 0 1em}a{color:#008bdb;text-decoration:none}a:hover{color:#0fa7ff;text-decoration:underline}@font-face{font-family:Icons;src:url(../../pub/fonts/icons/icons.eot);src:url(../../pub/fonts/icons/icons.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/icons/icons.woff2) format('woff2'),url(../../pub/fonts/icons/icons.woff) format('woff'),url(../../pub/fonts/icons/icons.ttf) format('truetype'),url(../../pub/fonts/icons/icons.svg#Icons) format('svg');font-weight:400;font-style:normal}[class*=icon-]{display:inline-block;line-height:1}[class*=icon-]:after{font-family:Icons}.icon-success-thick:after{content:'\e600'}.icon-success:after{content:'\e601'}.icon-collapse:after{content:'\e602'}.icon-failed-thick:after{content:'\e603'}.icon-failed:after{content:'\e604'}.icon-expand:after{content:'\e605'}.icon-warning:after{content:'\e606'}.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:.8em;left:0;position:absolute;right:0;top:.15em}.icon-success-round{background-color:#79a22e}.icon-success-round:after{content:'\e600'}.icon-failed-round{background-color:#e22626}.icon-failed-round:after{content:'\e603'}dl,ol,ul{margin-top:0}.list{margin-bottom:1em;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{padding-left:3.5rem}.list-item-failed:before,.list-item-success:before{font-family:Icons;font-size:1.6em;left:-.1em;position:absolute;top:-.2em}.list-item-success:before{color:#79a22e;content:'\e601'}.list-item-failed:before{color:#e22626;content:'\e604'}.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 .5em;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-link{background-color:transparent;border:none;color:#008bdb;font-family:1.6rem;font-size:1.5rem}.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:hover{background-color:#f65405;background-repeat:repeat-x;background-image:-webkit-linear-gradient(left,color-stop(#e04f00 0),color-stop(#f65405 100%));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:-webkit-linear-gradient(left,color-stop(#f65405 0),color-stop(#e04f00 100%));background-image:linear-gradient(to right,#f65405 0,#e04f00 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f65405', endColorstr='#e04f00', GradientType=1)}.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;filter:none}.btn-secondary{background-color:#514943;color:#fff}.btn-secondary:hover{background-color:#5f564f;color:#fff}.btn-secondary:active{background-color:#574e48}.ie9 .btn-secondary.disabled,.ie9 .btn-secondary[disabled]{background-color:#514943}.ie9 .btn-secondary.disabled:active,.ie9 .btn-secondary.disabled:hover,.ie9 .btn-secondary[disabled]:active,.ie9 .btn-secondary[disabled]:hover{background-color:#514943;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: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:hover:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:active: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: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: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: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}input:not([disabled]):focus,textarea:not([disabled]):focus{box-shadow:none}.form-el-input{border:1px solid #adadad;border-radius:2px;color:#303030;padding:.35em .55em .5em}.form-el-input:hover{border-color:#949494}.form-el-input:focus{border-color:#008bdb}.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{transition:opacity .2s linear;cursor:pointer}.form-legend-expand:hover{opacity:.85}.form-legend-expand.expanded:after{content:'\e602'}.form-legend-expand:after{margin-left:.5em;font-weight:400;font-size:1.15em;font-family:Icons;content:'\e605';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{border-color:#adadad;border-radius:2px;height:1.4rem;line-height:1;width:1.4rem}.form-el-checkbox:checked+.form-label::before{content:'\e600';font-family:Icons}.form-el-radio+.form-label:before{background-color:#fff;border:1px solid #adadad;border-radius:100%;height:1.6rem;width:1.6rem}.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;border-radius:2px;color:#303030;cursor:pointer;display:block;overflow:hidden;position:relative}.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;border-radius:2px;color:#514943;display:none;font-size:1.19rem;margin-top:.2rem;padding:.4235em .6655em .605em}.check-result-message{margin-left:.5em;min-height:3.68rem;-webkit-align-items:center;-ms-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex}.check-result-text{margin-left:.5em}.pseudo-table{display:table}.pseudo-td{display:table-cell}.messages{margin:0 0 2rem}.message{background:#fffbbb;border:none;border-radius:0;color:#333;font-size:14px;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}.message{margin-bottom:3rem}.container{display:block;margin:0 auto 4rem;max-width:100rem;padding:0 2rem}.row{margin-left:0;margin-right:0}.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{min-height:1px;padding-left:0;padding-right:0;position:relative}.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}.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-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:-webkit-linear-gradient(top,#d1d1d1 0,#d4d4d4 100%);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:.8rem;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{bottom:0;content:'';left:0;position:absolute;right:0;top:0;z-index:1}.nav-bar>li.active~li:after{display:none}.nav-bar>li.active~li a:after{background-color:transparent;border-color:transparent;color:#a6a6a6}.nav-bar>li.active a{color:#000}.nav-bar>li.active a:hover{cursor:default}.nav-bar>li.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:.7rem;left:50%;line-height:.6;margin-left:-.8rem;position:absolute;right:auto;text-align:center;top:.4rem;width:.7rem}.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.1rem;left:50%;line-height:1;margin-left:-1.2rem;position:absolute;top:0;width:2.1rem}.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;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;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.spinner{display:inline-block;font-size:4rem;height:1em;margin-right:1.5rem;position:relative;width:1em}@-moz-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@-webkit-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@-ms-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}.spinner>span:nth-child(1){-webkit-animation-delay:.27s;-moz-animation-delay:.27s;-ms-animation-delay:.27s;animation-delay:.27s;-webkit-transform:rotate(-315deg);-moz-transform:rotate(-315deg);-ms-transform:rotate(-315deg);transform:rotate(-315deg)}.spinner>span:nth-child(2){-webkit-animation-delay:.36s;-moz-animation-delay:.36s;-ms-animation-delay:.36s;animation-delay:.36s;-webkit-transform:rotate(-270deg);-moz-transform:rotate(-270deg);-ms-transform:rotate(-270deg);transform:rotate(-270deg)}.spinner>span:nth-child(3){-webkit-animation-delay:.45s;-moz-animation-delay:.45s;-ms-animation-delay:.45s;animation-delay:.45s;-webkit-transform:rotate(-225deg);-moz-transform:rotate(-225deg);-ms-transform:rotate(-225deg);transform:rotate(-225deg)}.spinner>span:nth-child(4){-webkit-animation-delay:.54s;-moz-animation-delay:.54s;-ms-animation-delay:.54s;animation-delay:.54s;-webkit-transform:rotate(-180deg);-moz-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.spinner>span:nth-child(5){-webkit-animation-delay:.63s;-moz-animation-delay:.63s;-ms-animation-delay:.63s;animation-delay:.63s;-webkit-transform:rotate(-135deg);-moz-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.spinner>span:nth-child(6){-webkit-animation-delay:.72s;-moz-animation-delay:.72s;-ms-animation-delay:.72s;animation-delay:.72s;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.spinner>span:nth-child(7){-webkit-animation-delay:.81s;-moz-animation-delay:.81s;-ms-animation-delay:.81s;animation-delay:.81s;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.spinner>span:nth-child(8){-webkit-animation-delay:.9;-moz-animation-delay:.9;-ms-animation-delay:.9;animation-delay:.9;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.spinner>span{-webkit-animation-direction:linear;-moz-animation-direction:linear;-ms-animation-direction:linear;animation-direction:linear;-webkit-animation-duration:.72s;-moz-animation-duration:.72s;-ms-animation-duration:.72s;animation-duration:.72s;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:fade;-moz-animation-name:fade;-ms-animation-name:fade;animation-name:fade;-webkit-transform:scale(0.4);-moz-transform:scale(0.4);-ms-transform:scale(0.4);transform:scale(0.4);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(../../pub/images/ajax-loader.gif) center no-repeat}.ie9 .spinner>span{display:none}.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;margin:2.5rem 0 3.5rem 5rem}.page-title{font-size:2rem;margin-bottom:1.3em}.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{margin-bottom:20px}.page-license .license-text{margin-bottom:2rem}.page-license .page-license-footer{text-align:right}.rediness-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}.rediness-check-side{float:right;padding-left:2.4rem;width:22rem}.rediness-check-side .side-title{margin-bottom:0}.readiness-check-icon{float:left;margin-left:2rem;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}.content-install{margin-bottom:2rem}.console{border:1px solid #ccc;font-family:'Courier New',Courier,monospace;font-weight:300;margin:1rem 0 2rem;max-height:20rem;overflow-y:auto;padding:1.5rem 2rem 2rem}.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}@media all and (max-width:1047px){.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}}@media all and (min-width:768px){html{margin-left:calc(100vw - 100%);margin-right:0;overflow:auto}.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}}@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 +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}:after,:before{box-sizing:content-box}.abs-clearer:after,.form-row:after,.header:after,.nav:after,.row:after{content:"";display:table;clear:both}.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:'Open Sans';src:url(../../pub/fonts/opensans/light/opensans-300.eot);src:url(../../pub/fonts/opensans/light/opensans-300.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/opensans/light/opensans-300.woff2) format('woff2'),url(../../pub/fonts/opensans/light/opensans-300.woff) format('woff'),url(../../pub/fonts/opensans/light/opensans-300.ttf) format('truetype'),url('../../pub/fonts/opensans/light/opensans-300.svg#Open Sans') format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Open Sans';src:url(../../pub/fonts/opensans/regular/opensans-400.eot);src:url(../../pub/fonts/opensans/regular/opensans-400.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/opensans/regular/opensans-400.woff2) format('woff2'),url(../../pub/fonts/opensans/regular/opensans-400.woff) format('woff'),url(../../pub/fonts/opensans/regular/opensans-400.ttf) format('truetype'),url('../../pub/fonts/opensans/regular/opensans-400.svg#Open Sans') format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url(../../pub/fonts/opensans/semibold/opensans-600.eot);src:url(../../pub/fonts/opensans/semibold/opensans-600.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/opensans/semibold/opensans-600.woff2) format('woff2'),url(../../pub/fonts/opensans/semibold/opensans-600.woff) format('woff'),url(../../pub/fonts/opensans/semibold/opensans-600.ttf) format('truetype'),url('../../pub/fonts/opensans/semibold/opensans-600.svg#Open Sans') format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Open Sans';src:url(../../pub/fonts/opensans/bold/opensans-700.eot);src:url(../../pub/fonts/opensans/bold/opensans-700.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/opensans/bold/opensans-700.woff2) format('woff2'),url(../../pub/fonts/opensans/bold/opensans-700.woff) format('woff'),url(../../pub/fonts/opensans/bold/opensans-700.ttf) format('truetype'),url('../../pub/fonts/opensans/bold/opensans-700.svg#Open Sans') format('svg');font-weight:700;font-style:normal}html{font-size:62.5%}body{color:#303030;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:400;line-height:1.4}h1,h2,h3,h4,h5,h6{font-weight:400;margin-top:0}p{margin:0 0 1em}a{color:#008bdb;text-decoration:none}a:hover{color:#0fa7ff;text-decoration:underline}@font-face{font-family:Icons;src:url(../../pub/fonts/icons/icons.eot);src:url(../../pub/fonts/icons/icons.eot?#iefix) format('embedded-opentype'),url(../../pub/fonts/icons/icons.woff2) format('woff2'),url(../../pub/fonts/icons/icons.woff) format('woff'),url(../../pub/fonts/icons/icons.ttf) format('truetype'),url(../../pub/fonts/icons/icons.svg#Icons) format('svg');font-weight:400;font-style:normal}[class*=icon-]{display:inline-block;line-height:1}[class*=icon-]:after{font-family:Icons}.icon-success-thick:after{content:'\e600'}.icon-success:after{content:'\e601'}.icon-collapse:after{content:'\e602'}.icon-failed-thick:after{content:'\e603'}.icon-failed:after{content:'\e604'}.icon-expand:after{content:'\e605'}.icon-warning:after{content:'\e606'}.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:.8em;left:0;position:absolute;right:0;top:.15em}.icon-success-round{background-color:#79a22e}.icon-success-round:after{content:'\e600'}.icon-failed-round{background-color:#e22626}.icon-failed-round:after{content:'\e603'}dl,ol,ul{margin-top:0}.list{margin-bottom:1em;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{padding-left:3.5rem}.list-item-failed:before,.list-item-success:before{font-family:Icons;font-size:1.6em;left:-.1em;position:absolute;top:-.2em}.list-item-success:before{color:#79a22e;content:'\e601'}.list-item-failed:before{color:#e22626;content:'\e604'}.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 .5em;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-link{background-color:transparent;border:none;color:#008bdb;font-family:1.6rem;font-size:1.5rem}.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: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)}.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{background-color:#574e48}.ie9 .btn-secondary.disabled,.ie9 .btn-secondary[disabled]{background-color:#514943}.ie9 .btn-secondary.disabled:active,.ie9 .btn-secondary.disabled:hover,.ie9 .btn-secondary[disabled]:active,.ie9 .btn-secondary[disabled]:hover{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: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:hover:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:active: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: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: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: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}input:not([disabled]):focus,textarea:not([disabled]):focus{box-shadow:none}.form-el-input{border:1px solid #adadad;border-radius:2px;color:#303030;padding:.35em .55em .5em}.form-el-input:hover{border-color:#949494}.form-el-input:focus{border-color:#008bdb}.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{transition:opacity .2s linear;cursor:pointer}.form-legend-expand:hover{opacity:.85}.form-legend-expand.expanded:after{content:'\e602'}.form-legend-expand:after{margin-left:.5em;font-weight:400;font-size:1.15em;font-family:Icons;content:'\e605';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{border-color:#adadad;border-radius:2px;height:1.4rem;line-height:1;width:1.4rem}.form-el-checkbox:checked+.form-label::before{content:'\e600';font-family:Icons}.form-el-radio+.form-label:before{background-color:#fff;border:1px solid #adadad;border-radius:100%;height:1.6rem;width:1.6rem}.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;border-radius:2px;color:#303030;cursor:pointer;display:block;overflow:hidden;position:relative}.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;border-radius:2px;color:#514943;display:none;font-size:1.19rem;margin-top:.2rem;padding:.4235em .6655em .605em}.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}.pseudo-table{display:table}.pseudo-td{display:table-cell}.messages{margin:0 0 2rem}.message{background:#fffbbb;border:none;border-radius:0;color:#333;font-size:14px;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}.message{margin-bottom:3rem}.container{display:block;margin:0 auto 4rem;max-width:100rem;padding:0 2rem}.row{margin-left:0;margin-right:0}.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{min-height:1px;padding-left:0;padding-right:0;position:relative}.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}.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-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:.8rem;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{bottom:0;content:'';left:0;position:absolute;right:0;top:0;z-index:1}.nav-bar>li.active~li:after{display:none}.nav-bar>li.active~li a:after{background-color:transparent;border-color:transparent;color:#a6a6a6}.nav-bar>li.active a{color:#000}.nav-bar>li.active a:hover{cursor:default}.nav-bar>li.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:.7rem;left:50%;line-height:.6;margin-left:-.8rem;position:absolute;right:auto;text-align:center;top:.4rem;width:.7rem}.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.1rem;left:50%;line-height:1;margin-left:-1.2rem;position:absolute;top:0;width:2.1rem}.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;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}.spinner{display:inline-block;font-size:4rem;height:1em;margin-right:1.5rem;position:relative;width:1em}@-webkit-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@-ms-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}.spinner>span:nth-child(1){-webkit-animation-delay:.27s;-ms-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;-ms-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;-ms-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;-ms-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;-ms-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;-ms-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;-ms-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;-ms-animation-delay:.9;animation-delay:.9;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.spinner>span{-webkit-animation-direction:linear;-ms-animation-direction:linear;animation-direction:linear;-webkit-animation-duration:.72s;-ms-animation-duration:.72s;animation-duration:.72s;-webkit-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:fade;-ms-animation-name:fade;animation-name:fade;-webkit-transform:scale(0.4);-ms-transform:scale(0.4);transform:scale(0.4);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(../../pub/images/ajax-loader.gif) center no-repeat}.ie9 .spinner>span{display:none}.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;margin:2.5rem 0 3.5rem 5rem}.page-title{font-size:2rem;margin-bottom:1.3em}.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{margin-bottom:20px}.page-license .license-text{margin-bottom:2rem}.page-license .page-license-footer{text-align:right}.rediness-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}.rediness-check-side{float:right;padding-left:2.4rem;width:22rem}.rediness-check-side .side-title{margin-bottom:0}.readiness-check-icon{float:left;margin-left:2rem;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}.content-install{margin-bottom:2rem}.console{border:1px solid #ccc;font-family:'Courier New',Courier,monospace;font-weight:300;margin:1rem 0 2rem;max-height:20rem;overflow-y:auto;padding:1.5rem 2rem 2rem}.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}@media all and (max-width:1047px){.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}}@media all and (min-width:768px){.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}}@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/styles/lib/_reset.less b/setup/view/styles/lib/_reset.less index e03b4d03d845a1e08fe390d16c8a78ac638ca83e..b392591ab95eb6661246639b2fa7e156c2f00633 100644 --- a/setup/view/styles/lib/_reset.less +++ b/setup/view/styles/lib/_reset.less @@ -3,33 +3,12 @@ // * See COPYING.txt for license details. // */ -.normalize(); +// Old reset support +// ToDo UI: Should be refactored * { - box-sizing: border-box; - &:focus { - box-shadow: none; - outline: 0; - } -} - -.keyfocus * { - &:focus { - box-shadow: @focus__box-shadow; - } -} - -img, -video, -embed, -object { - max-width: 100%; -} - -.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { - html { - margin-left: ~'calc(100vw - 100%)'; - margin-right: 0; - overflow: auto; + &:before, + &:after { + box-sizing: content-box; } } diff --git a/setup/view/styles/setup.less b/setup/view/styles/setup.less index db6d9a38cf13ba565c956cd25a79d4ad7bcb3662..7c2c2f5c355cd8070a7b953c53ecfc55a0a5ec85 100644 --- a/setup/view/styles/setup.less +++ b/setup/view/styles/setup.less @@ -15,9 +15,10 @@ // Local lib // _____________________________________________ +@import '../../../app/design/adminhtml/Magento/backend/web/css/source/_reset.less'; +@import 'lib/_reset.less'; @import 'lib/_variables.less'; @import 'lib/_utilities.less'; -@import 'lib/_reset.less'; @import 'lib/_extends.less'; @import 'lib/_classes.less'; @import 'lib/_typography.less'; @@ -27,7 +28,7 @@ @import 'lib/_forms.less'; @import 'lib/_pseudo-tables.less'; -@import '../../../app/design/adminhtml/Magento/backend/web/css/source/_messages.less'; +@import '../../../app/design/adminhtml/Magento/backend/web/css/source/components/_messages.less'; @import 'lib/_messages.less'; @import 'lib/_structures.less';