From a9c91f51dd1f315e3add89f31decd524bc942a40 Mon Sep 17 00:00:00 2001 From: James Pickard Date: Tue, 3 Mar 2015 12:09:58 -0500 Subject: [PATCH] 3.2.4 --- README.md | 2 +- core/protected/components/Checkout.php | 5 +- core/protected/components/Controller.php | 10 +- core/protected/config/wsver.php | 6 +- core/protected/controllers/CartController.php | 40 +- .../controllers/CommonsslController.php | 20 +- .../controllers/MyaccountController.php | 16 - core/protected/controllers/SiteController.php | 4 +- core/protected/controllers/SroController.php | 4 +- .../extensions/umber/assets/wsmodal.js | 53 +- .../assetsToCompile/customized/_base.scss | 224 ++++++++ .../customized/brooklyn2014.scss | 4 + .../umber/assetsToCompile/docs.scss | 379 ++++++++++++++ .../umber/assetsToCompile/lib/_clearfix-hack | 26 + .../umber/assetsToCompile/lib/_normalize.scss | 408 +++++++++++++++ .../assetsToCompile/mixins/_animations.scss | 35 ++ .../umber/assetsToCompile/mixins/_arrows.scss | 78 +++ .../assetsToCompile/mixins/_borders.scss | 6 + .../assetsToCompile/mixins/_flexbox.scss | 47 ++ .../mixins/_html5-input-types.scss | 87 ++++ .../assetsToCompile/mixins/_keyframes.scss | 15 + .../assetsToCompile/mixins/_placeholders.scss | 6 + .../assetsToCompile/mixins/_transitions.scss | 13 + .../modal/_address_blocks.scss | 172 +++++++ .../assetsToCompile/modal/_animations.scss | 40 ++ .../assetsToCompile/modal/_basic_modal.scss | 422 +++++++++++++++ .../modal/_browsers_unistyle.scss | 16 + .../umber/assetsToCompile/modal/_cart.scss | 481 ++++++++++++++++++ .../umber/assetsToCompile/modal/_cartadd.scss | 440 ++++++++++++++++ .../assetsToCompile/modal/_checkout.scss | 218 ++++++++ .../modal/_checkout_begin.scss | 70 +++ .../modal/_checkout_confirm.scss | 408 +++++++++++++++ .../modal/_checkout_forms.scss | 174 +++++++ .../modal/_checkout_payment.scss | 405 +++++++++++++++ .../modal/_checkout_shipping.scss | 108 ++++ .../modal/_checkout_sidebar.scss | 136 +++++ .../modal/_checkout_thankyou.scss | 205 ++++++++ .../umber/assetsToCompile/modal/_config.scss | 157 ++++++ .../assetsToCompile/modal/_estimator.scss | 308 +++++++++++ .../umber/assetsToCompile/modal/_icons.scss | 29 ++ .../umber/assetsToCompile/modal/_lines.scss | 143 ++++++ .../modal/_modal_overlay_shared.scss | 439 ++++++++++++++++ .../umber/assetsToCompile/modal/_overlay.scss | 325 ++++++++++++ .../modal/_override_legacy.scss | 196 +++++++ .../assetsToCompile/modal/_overview.scss | 177 +++++++ .../umber/assetsToCompile/modal/_print.scss | 31 ++ .../umber/assetsToCompile/modal/_promo.scss | 109 ++++ .../umber/assetsToCompile/modal/_spinner.scss | 104 ++++ .../umber/assetsToCompile/modal/_tooltip | 34 ++ .../assetsToCompile/modal/_wishlist.scss | 228 +++++++++ .../assetsToCompile/modal/_wishlist_view.scss | 256 ++++++++++ .../umber/assetsToCompile/modal/modal.scss | 108 ++++ .../umber/assetsToCompile/theme/_config.scss | 76 +++ .../umber/assetsToCompile/theme/_footer.scss | 153 ++++++ .../umber/assetsToCompile/theme/_header.scss | 89 ++++ .../assetsToCompile/theme/_products.scss | 121 +++++ .../umber/assetsToCompile/theme/_search.scss | 13 + .../umber/assetsToCompile/theme/basic.scss | 59 +++ core/protected/extensions/umber/wsmodal.php | 2 +- .../wsadvcheckout/assets/checkout.js | 23 +- .../assets/confirmationShippingEstimator.js | 4 +- .../wscartmodal/views/addtocartmodal.php | 2 +- .../wscartmodal/views/editcartmodal.php | 2 +- .../wscartmodal/wseditcartmodal.php | 4 +- .../authorizedotnetaim/authorizedotnetaim.php | 2 +- .../wspayment/paypalpro/paypalpro.php | 2 +- .../WsShippingEstimator.php | 2 + .../assets/js/WsShippingEstimator.js | 4 +- .../assets/SinglePageCheckout.js | 5 +- .../views/instantiate.php | 1 + core/protected/models/Cart.php | 29 +- core/protected/models/CartShipping.php | 2 +- core/protected/models/Configuration.php | 4 +- .../admin/assets/img/favicon-32x32.png | Bin 0 -> 871 bytes .../modules/admin/assets/img/ls-logo1002x.png | Bin 0 -> 2639 bytes .../admin/assets/img/webstore-logo2x.png | Bin 0 -> 10270 bytes .../admin/components/AdminBaseController.php | 4 +- .../modules/admin/views/layouts/license.php | 15 +- .../modules/admin/views/layouts/login.php | 2 +- .../modules/admin/views/layouts/main.php | 4 +- .../views-cities/layouts/mail-layout.php | 4 +- .../views-cities2/layouts/mail-layout.php | 6 +- .../views-cities3/checkout/confirmation.php | 2 +- .../views-cities3/checkout/index.php | 2 +- .../views-cities3/checkout/paymentaddress.php | 2 +- .../checkout/paymentsimpleaddress.php | 2 +- .../checkout/shippingaddress.php | 2 +- .../checkout/shippingoptions.php | 11 +- .../views-cities3/checkout/thankyou.php | 4 +- .../layouts/checkout-confirmation.php | 2 +- .../views-cities3/layouts/checkout.php | 2 +- .../views-cities3/layouts/column1.php | 2 +- .../views-cities3/layouts/column2.php | 2 +- .../views-cities3/layouts/mail-layout.php | 4 +- core/protected/views-cities3/site/_header.php | 8 +- .../views-cities3/site/_sidecart.php | 9 +- core/protected/views-cities3/site/login.php | 2 +- .../views-cities3/wishlist/search.php | 6 +- systemcheck.php | 4 +- 99 files changed, 7982 insertions(+), 145 deletions(-) create mode 100755 core/protected/extensions/umber/assetsToCompile/customized/_base.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/customized/brooklyn2014.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/docs.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/lib/_clearfix-hack create mode 100755 core/protected/extensions/umber/assetsToCompile/lib/_normalize.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/mixins/_animations.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/mixins/_arrows.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/mixins/_borders.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/mixins/_flexbox.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/mixins/_html5-input-types.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/mixins/_keyframes.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/mixins/_placeholders.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/mixins/_transitions.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_address_blocks.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_animations.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_basic_modal.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_browsers_unistyle.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_cart.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_cartadd.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_checkout.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_checkout_begin.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_checkout_confirm.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_checkout_forms.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_checkout_payment.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_checkout_shipping.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_checkout_sidebar.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_checkout_thankyou.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_config.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_estimator.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_icons.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_lines.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_modal_overlay_shared.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_overlay.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_override_legacy.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_overview.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_print.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_promo.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_spinner.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_tooltip create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/_wishlist.scss create mode 100644 core/protected/extensions/umber/assetsToCompile/modal/_wishlist_view.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/modal/modal.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/theme/_config.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/theme/_footer.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/theme/_header.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/theme/_products.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/theme/_search.scss create mode 100755 core/protected/extensions/umber/assetsToCompile/theme/basic.scss create mode 100644 core/protected/modules/admin/assets/img/favicon-32x32.png create mode 100644 core/protected/modules/admin/assets/img/ls-logo1002x.png create mode 100644 core/protected/modules/admin/assets/img/webstore-logo2x.png diff --git a/README.md b/README.md index a8832757..6119b92a 100644 --- a/README.md +++ b/README.md @@ -7,5 +7,5 @@ Please note that this is a public repo designed to aid developers on what has ch This repo only receives one commit per version which is a combined (squashed) commit of changes from the prior version. -Developers are welcome to post Issues here, but please be advised this forum is not considered part of our active support (although we do monitor it and try to update as time allows). Immediate technical support should always go through http://my.lightspeedretail.com. Issues posted here should be very specific to the code, not general support. +Developers are welcome to post Issues here, but please be advised this forum is not considered part of our active support (although we do monitor it and try to update as time allows). Immediate technical support should always go through http://my.lightspeedpos.com. Issues posted here should be very specific to the code, not general support. diff --git a/core/protected/components/Checkout.php b/core/protected/components/Checkout.php index 2d4f7ba8..615f5798 100644 --- a/core/protected/components/Checkout.php +++ b/core/protected/components/Checkout.php @@ -258,7 +258,10 @@ public static function getCheckoutJSOptions() { return CJSON::encode(array( 'applyButtonLabel' => Yii::t('checkout', 'Apply'), - 'removeButtonLabel' => Yii::t('checkout', 'Remove') + 'removeButtonLabel' => Yii::t('checkout', 'Remove'), + 'applyPromoCodeEndpoint' => Yii::app()->createUrl('cart/applypromocodemodal'), + 'removePromoCodeEndpoint' => Yii::app()->createUrl('cart/removepromocodemodal'), + 'clearCartEndpoint' => Yii::app()->createUrl('cart/clearcart') )); } diff --git a/core/protected/components/Controller.php b/core/protected/components/Controller.php index a051df86..fc84f472 100644 --- a/core/protected/components/Controller.php +++ b/core/protected/components/Controller.php @@ -109,7 +109,7 @@ public static function initParams() //We should never see this, this means our cloud cache file is bad $strHostfile = realpath(dirname(__FILE__)).'/../../../config/cloud/'.$_SERVER['HTTP_HOST'].".php"; @unlink($strHostfile); - Yii::app()->request->redirect('/'); + Yii::app()->request->redirect(Yii::app()->createUrl('site/index')); } @@ -133,7 +133,7 @@ public function init() if(!downloadTheme(DEFAULT_THEME)) die("missing ".DEFAULT_THEME); else - $this->redirect("/"); + $this->redirect(Yii::app()->createUrl("site/index")); } if(!Yii::app()->theme) { @@ -147,7 +147,7 @@ public function init() 'error', 'application.' . __CLASS__ . "." . __FUNCTION__ ); - $this->redirect("/"); + $this->redirect(Yii::app()->createUrl('site/index')); } else die("you have no theme set"); @@ -456,14 +456,14 @@ protected function getFacebookLogin() { //we've lost our authentication, user may have revoked Yii::app()->facebook->destroySession(); - $this->redirect(array("/site")); + $this->redirect(Yii::app()->createUrl("site/index")); } $identity=new FBIdentity($results['email'],$userid); //we user userid in the password field $identity->authenticate(); if($identity->errorCode===UserIdentity::ERROR_NONE) { Yii::app()->user->login($identity,0); - $this->redirect(array("/site")); + $this->redirect(Yii::app()->createUrl("site/index")); } } } diff --git a/core/protected/config/wsver.php b/core/protected/config/wsver.php index 9141a432..4aa58533 100644 --- a/core/protected/config/wsver.php +++ b/core/protected/config/wsver.php @@ -1,5 +1,5 @@ redirect(array('/cart')); + $this->redirect(Yii::app()->createUrl('cart')); } /** @@ -195,7 +195,7 @@ public function actionReceipt() $strLink = Yii::app()->getRequest()->getQuery('getuid'); if (empty($strLink)) { - Yii::app()->controller->redirect(_xls_site_url()); + Yii::app()->controller->redirect(Yii::app()->createUrl('site/index')); } //Use our class variable which is accessible from the view @@ -211,10 +211,8 @@ public function actionReceipt() if (Yii::app()->theme->info->advancedCheckout === true) { - // For the thankyou page, we don't want to go through createUrl - // since generally speaking /checkout routes are passed through - // commonssl. We don't want to do that here. See WS-3285. - $this->redirect('/checkout/thankyou/' . $strLink); + $url = Yii::app()->createUrl('checkout/thankyou', array('linkid' => $strLink)); + $this->redirect($url); } // If we have a document that supersedes our cart, then let's copy some @@ -260,7 +258,7 @@ public function actionShare() $strLink = Yii::app()->getRequest()->getQuery('code'); if (empty($strLink)) { - Yii::app()->controller->redirect(_xls_site_url()); + Yii::app()->controller->redirect(Yii::app()->createUrl('site/index')); } //Use our class variable which is accessible from the view @@ -277,11 +275,11 @@ public function actionShare() Yii::app()->user->setFlash('success', Yii::t('cart', 'The shared cart items have been added to your cart.')); //And go to cart view - Yii::app()->controller->redirect(array('/cart')); + Yii::app()->controller->redirect(Yii::app()->createUrl('cart')); } else { Yii::app()->user->setFlash('error', Yii::t('cart', 'Cart not found or has already been checked out.')); //Go to home page - Yii::app()->controller->redirect(_xls_site_url()); + Yii::app()->controller->redirect(Yii::app()->createUrl('site/index')); } } @@ -293,13 +291,13 @@ public function actionQuote() $strLink = Yii::app()->getRequest()->getQuery('code'); if (empty($strLink)) { - Yii::app()->controller->redirect(_xls_site_url()); + Yii::app()->controller->redirect(Yii::app()->createUrl('site/index')); } if (Yii::app()->shoppingcart->totalItemCount > 0) { Yii::app()->user->setFlash('error', Yii::t('cart', 'You have items in your cart already. A quote cannot be merged with an existing shopping cart. Please complete your checkout or clear your cart and try again.')); - Yii::app()->controller->redirect(_xls_site_url()); + Yii::app()->controller->redirect(Yii::app()->createUrl('site/index')); return; } @@ -334,11 +332,11 @@ public function actionQuote() } //And go to cart view - Yii::app()->controller->redirect(array('/cart')); + Yii::app()->controller->redirect(Yii::app()->createUrl('cart')); } else { Yii::app()->user->setFlash('error', Yii::t('cart', 'Quote not found.')); //Go to home page - Yii::app()->controller->redirect(_xls_site_url()); + Yii::app()->controller->redirect(Yii::app()->createUrl('site/index')); } } @@ -381,7 +379,8 @@ public function actionRestore($errorMessage = null) if (empty($strLink)) { - Yii::app()->controller->redirect(_xls_site_url()); + $url = Yii::app()->createAbsoluteUrl('site/index'); + Yii::app()->controller->redirect($url); } //Use our class variable which is accessible from the view @@ -446,11 +445,11 @@ public function actionRestore($errorMessage = null) } //And go back to checkout - Yii::app()->controller->redirect(array('cart/checkout')); + Yii::app()->controller->redirect(Yii::app()->createUrl('cart/checkout')); } //In all other cases, just go home - Yii::app()->controller->redirect(array('/site')); + Yii::app()->controller->redirect(Yii::app()->createUrl('site/index')); } else { self::redirectToReceipt($strLink); } @@ -1108,9 +1107,10 @@ public function actionCheckout() { //somehow we're logged in without a valid Customer object Yii::app()->user->logout(); - $this->redirect(array("/site")); - + $url = Yii::app()->createUrl('site/index'); + $this->redirect($url); } + $model->contactFirstName = $objCustomer->first_name; $model->contactLastName = $objCustomer->last_name; $model->contactPhone = $objCustomer->mainphone; @@ -2063,6 +2063,10 @@ public function actionGetShippingRates() Shipping::saveCartScenariosToSession($arrCartScenario); MultiCheckoutForm::saveToSession($checkoutForm); + // Save to the database. + $objShipping = CartShipping::getOrCreateCartShipping(); + $objShipping->updateShipping(); + return $this->renderJSON( array( 'result' => 'success', diff --git a/core/protected/controllers/CommonsslController.php b/core/protected/controllers/CommonsslController.php index abc7baf0..b1468a31 100644 --- a/core/protected/controllers/CommonsslController.php +++ b/core/protected/controllers/CommonsslController.php @@ -43,6 +43,7 @@ public function actionLogin() $identity = new SharedIdentity(null, null); $identity->sharedId = $arrItems[0]; + if ($identity->authenticate() && $identity->errorCode === UserIdentity::ERROR_NONE) { Yii::log("Login authentication passed ", 'info', 'application.'.__CLASS__.".".__FUNCTION__); @@ -51,12 +52,8 @@ public function actionLogin() Yii::app()->user->setState('cartid', $arrItems[1]); $this->redirect($this->createUrl("/site")); } - else - { - die("error transferring"); - } - $this->redirect("http://www.copper.site"); + die("error transferring"); } @@ -92,7 +89,7 @@ public function actionCartCheckout() /** * Checkout actions land here instead, before progressing * Still under normal URL at this point - * Pass along cartID, UserID + * Pass along cartID, UserID, linkID */ public function actionCheckout() @@ -103,6 +100,7 @@ public function actionCheckout() $action = Yii::app()->getRequest()->getQuery('action'); $orderID = Yii::app()->getRequest()->getQuery('orderId'); $errorNote = Yii::app()->getRequest()->getQuery('errorNote'); + $linkid = Yii::app()->getRequest()->getQuery('linkid'); if (empty($userID)) { @@ -114,7 +112,7 @@ public function actionCheckout() $action = 'index'; } - $strIdentity = $userID . ',' . $cartID . ',' . $controller . ',' . $action; + $strIdentity = $userID . ',' . $cartID . ',' . $controller . ',' . $action . ',' . $linkid; if (isset($orderID) && isset($errorNote)) { $strIdentity .= ',' . $orderID . ',' . $errorNote; @@ -158,15 +156,15 @@ public function actionSharedSSLReceive() $cartID = $arrItems[1]; $controller = $arrItems[2]; $action = $arrItems[3]; - if (isset($arrItems[5])) + if (isset($arrItems[6])) { - $arrParams['orderId'] = $arrItems[4]; - $arrParams['errorNote'] = $arrItems[5]; + $arrParams['orderId'] = $arrItems[5]; + $arrParams['errorNote'] = $arrItems[6]; } elseif (isset($arrItems[4])) { - $arrParams['getuid'] = $arrItems[4]; + $arrParams['linkid'] = $arrItems[4]; } //If our session was previously logged in on this side of SSL, we overwrite, otherwise log out diff --git a/core/protected/controllers/MyaccountController.php b/core/protected/controllers/MyaccountController.php index e591b7e3..8118fbda 100644 --- a/core/protected/controllers/MyaccountController.php +++ b/core/protected/controllers/MyaccountController.php @@ -20,22 +20,6 @@ class MyaccountController extends Controller public $giftRegistries; public $repairs; - public function beforeAction($action) - { -// if (_xls_get_conf('ENABLE_SSL')==1) -// { -// if(Yii::app()->isCommonSSL) -// $this->verifyCommonSSL(); -// -// if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') { -// $this->redirect(Yii::app()->createAbsoluteUrl('myaccount/'.$action->Id,array(),'https')); -// Yii::app()->end(); -// } -// } - - return parent::beforeAction($action); - } - public function actionIndex() { diff --git a/core/protected/controllers/SiteController.php b/core/protected/controllers/SiteController.php index 12e54242..6e61c750 100644 --- a/core/protected/controllers/SiteController.php +++ b/core/protected/controllers/SiteController.php @@ -359,7 +359,7 @@ public function actionSendemail() */ public function actionContact() { - $this->redirect("/custompage/contact"); + $this->redirect(Yii::app()->createUrl("custompage/contact")); } /** @@ -382,6 +382,6 @@ public function actionRobots() public function actionSystemcheck() { - $this->redirect("/systemcheck.php"); + $this->redirect(Yii::app()->createUrl("/systemcheck.php")); } } diff --git a/core/protected/controllers/SroController.php b/core/protected/controllers/SroController.php index 94f981b5..45905a2c 100644 --- a/core/protected/controllers/SroController.php +++ b/core/protected/controllers/SroController.php @@ -44,7 +44,7 @@ public function actionView() $strLink = Yii::app()->getRequest()->getQuery('code'); if (empty($strLink)) - Yii::app()->controller->redirect(_xls_site_url()); + Yii::app()->controller->redirect(Yii::app()->createUrl('site/index')); //Use our class variable which is accessible from the view $model = Sro::model()->findByAttributes(array('linkid'=>$strLink)); @@ -57,4 +57,4 @@ public function actionView() } -} \ No newline at end of file +} diff --git a/core/protected/extensions/umber/assets/wsmodal.js b/core/protected/extensions/umber/assets/wsmodal.js index fc2b7e1a..b6e85537 100644 --- a/core/protected/extensions/umber/assets/wsmodal.js +++ b/core/protected/extensions/umber/assets/wsmodal.js @@ -1,5 +1,6 @@ 'use strict'; /* globals $:false, History:false */ +/* exported showEditCartModal */ function sleep(millis, callback) { setTimeout(function() { callback(); }, @@ -56,20 +57,49 @@ function hideModal() { $('#viewport, .btn-navbar, #menubar, #topbar, #footer').removeClass('mobile-hide'); } - -function showEditCartModal(isPoppingState) { +/** + * Show the edit cart modal. + * @param {string} [editCartUrl] The URL to add to the browser history. If no + * URL is provided, then no URL is added to the history. + */ +function showEditCartModalAndPushState(editCartUrl) { // Remove the body's scrollbar when opening a modal $('body').css('overflow', 'hidden'); $('.webstore-modal-cart:first').addClass('show'); setTimeout(function() { $('.webstore-modal-cart').find('input[autofocus]').focus(); }, 500); - if (typeof History !== 'undefined' && typeof isPoppingState === 'undefined' || isPoppingState === false) { - History.pushState({key:'editcart'}, null,'/editcart'); + if (typeof History !== 'undefined' && typeof editCartUrl === 'string') { + History.pushState({key:'editcart'}, null, editCartUrl); } + $('#viewport, .btn-navbar, #menubar, #topbar, #footer').addClass('mobile-hide'); } +/** + * Show the edit cart modal. + * @param {boolean} maintainPushState Set this to true to leave the browser + * history state unmodified. Defaults to false. + * @deprecated This is left in for compatibility with Brooklyn2014 3.2.2 + * themes. Use showEditCartModalAndPushState instead. This was deprecated in + * Web Store 3.2.4 because it uses a hard-coded URL instead of going through + * Yii::app()->createUrl. + */ +function showEditCartModal(maintainPushState) { + // This warning is on purpose: we want to store owners to update their + // theme copies. + /* globals console:false */ + console.warn('showEditCartModal is deprecated. Use showEditCartModalAndPushState instead.'); + var editCartUrl = '/editcart'; + + if (maintainPushState === true) { + showEditCartModalAndPushState(); + } else { + showEditCartModalAndPushState(editCartUrl); + } +} + + function showModal() { // Remove the body's scrollbar when opening a modal $('body').css('overflow', 'hidden'); @@ -132,8 +162,9 @@ $(document).on('click', ".webstore-modal-close, .continue-shopping", function() $(document).on('click', ".webstore-change-item", function() { hideModal(); + var editCartUrl = $(this).data('editcarturl'); setTimeout(function(){ - showEditCartModal(); + showEditCartModalAndPushState(editCartUrl); }, 1125); }); @@ -141,11 +172,19 @@ $(document).on('click', ".webstore-change-item", function() { $(function() { if (typeof History !== 'undefined' && typeof History.pushState !== 'undefined') { - History.Adapter.bind(window, 'statechange', function() { + History.Adapter.bind(window, 'statechange', function(e) { var State = History.getState(); + // When a user clicks "forward" to the edit cart page, we want to + // show the edit cart modal but we do not need to add to the push + // state since forward already does that. + // + // Note that showEditCartModal is actually called twice when the + // user clicks on the "Cart" link. The first time with + // doPushSate=true, and the second time in this callback when the + // push state changes. if(State.data.key === 'editcart'){ - showEditCartModal(true); + showEditCartModalAndPushState(); } else { hideModal(); diff --git a/core/protected/extensions/umber/assetsToCompile/customized/_base.scss b/core/protected/extensions/umber/assetsToCompile/customized/_base.scss new file mode 100755 index 00000000..43b88324 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/customized/_base.scss @@ -0,0 +1,224 @@ +$accent-background-color: #3287cc !default; +$accent-color: white !default; + +$overlay-background-color: #eee !default; +$overlay-color: #555 !default; + +$heading-font-weight: bold !default; +$heading-font-family: 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif !default; + +$confirmation-color: green !default; + +// Font faces +$body-font-family: 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif !default; + + +body.overlay, .editcartmodal.webstore-modal.show { + background-color: $overlay-background-color; +} + + +.webstore-overlay { + font-family: $body-font-family; + + h1 { + font-weight: $heading-font-weight; + font-family: $heading-font-family; + } + + section footer p { + $overlay-color-adjusted: $overlay-color; + @if(lightness($overlay-background-color) > 50) { + $overlay-color-adjusted: lighten($overlay-color, 25%); + } @else { + $overlay-color-adjusted: darken($overlay-color, 25%); + } + + color: $overlay-color-adjusted; + strong { color: $overlay-color-adjusted; } + a { color: $overlay-color-adjusted; } + } + + a { + color: $accent-background-color; + &:hover { border-bottom-color: $accent-background-color; } + + &.hasborder { + border-bottom-color: lighten($accent-background-color, 25%); + &:hover { border-bottom-color: $accent-background-color; } + } + } + + @if(lightness($overlay-background-color) < 20) { + .section-inner { border-color: #fff; } + } + + header.overlay { + #addcart .exit, h1 a { color: $overlay-color; } + #addcart .exit:hover { border-bottom-color: $overlay-color; } + } + + button, .button { + background-color: $calltoaction-color; + color: $accent-color; + + &:hover { background-color: darken($accent-background-color,10%); } + + &.inset:hover { + border-color: $accent-background-color; + background: $accent-background-color; + color: $accent-color; + } + + &.continue, &.share { + &:hover { + background: none; + border-color: $accent-background-color; + color: $accent-background-color; + &:before { color: $accent-background-color; } + } + } + } + + .choices { + button, .button { + &:hover { + background: $accent-background-color; + border-color: $accent-background-color; + color: $accent-color; + } + } + } + + .field-container select.modal-accent-color { color: $accent-background-color; } + + .thankyou a.print:hover, .thankyou a.print:active { + color: $accent-background-color; + border-color: $accent-background-color; + } + + .address-blocks { + p .controls { + a:hover { + border-color: $accent-background-color; + } + } + button:hover { + background-color: $accent-background-color; + border-color: $accent-background-color; + color: lighten($accent-background-color, 100%); + } + } + + .wishlists { + button:hover { + background-color: $accent-background-color; + border-color: $accent-background-color; + color: lighten($accent-background-color, 100%); + } + .wishlist-block { + span.title { + color: $accent-background-color; + } + p:hover { + background-color: $accent-background-color; + border-color: $accent-background-color; + span.title { + color: lighten($accent-background-color, 100%); + } + } + } + } + + .order-history { + table.lines td.date { + color: $accent-background-color; + } + } +} + + + +.wishlist-lines { + .save, .add-to-cart { + background: $accent-background-color; + border-color: $accent-background-color; + + &:hover { + background: darken($accent-background-color,10%); + border-color: darken($accent-background-color,10%) + } + } + a.edit:hover { + border-color: $accent-background-color; + color: $accent-background-color; + } +} + +.wishlist-share a.service { + color: $accent-background-color; + &:hover { color: darken($accent-background-color,10%); } +} + +.wishlist-buttons { + button { + background: none; + color: #888; + + &:hover { + border-color: $accent-background-color; + color: $accent-background-color; + background: none; + } + } +} + +//MO - Prevent text selection +button, .button, .no-selection { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.webstore-modal-overlay, +//MO added second line to include add to cart. +.webstore-modal-overlay .cart-summary footer{ + button, .button, input[type="button"] { + background-color: $accent-background-color; + color: $accent-color; + + &:hover { background-color: darken($accent-background-color,10%); } + + &.inset:hover { + border-color: $accent-background-color; + background: $accent-background-color; + color: $accent-color; + } + + &.continue, &.share, &.webstore-change-item { + &:hover { + background: none; + border-color: $accent-background-color; + color: $accent-background-color; + &:before { color: $accent-background-color; } + } + } + + //added by MO to target the exit button in the add to cart. + #addcart .continue-shopping.exit { + background-color: #ccc; + color: #888; + &:hover { + background-color: #999; + color: #fff; + } + } + } +} + + + +.webstore-modal-overlay .shipping-estimate-line th > a:first-child{ + font-weight: bold; +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/customized/brooklyn2014.scss b/core/protected/extensions/umber/assetsToCompile/customized/brooklyn2014.scss new file mode 100644 index 00000000..28a67e8c --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/customized/brooklyn2014.scss @@ -0,0 +1,4 @@ +$accent-background-color: #3287CC; +$calltoaction-color: #3287CC; + +@import "base"; diff --git a/core/protected/extensions/umber/assetsToCompile/docs.scss b/core/protected/extensions/umber/assetsToCompile/docs.scss new file mode 100755 index 00000000..65c22f8f --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/docs.scss @@ -0,0 +1,379 @@ +@import 'lib/normalize'; + +@charset "utf-8"; + +$break-mobile: 0px; // This is used in limited situations, generally styles layer-up, not down. +$break-small: 560px; +$break-medium: 720px; +$break-large: 1025px; + +$break-short: 500px; + +@import 'mixins/html5-input-types'; + +@mixin media($media) { + @if $media == 'mobile' { + @media (max-width: $break-mobile) { @content; } + } + @else if $media == 'small' { + @media (min-width: $break-small) { @content; } + } + @else if $media == 'medium' { + @media (min-width: $break-medium) { @content; } + } + @else if $media == 'large' { + @media (min-width: $break-large) { @content; } + } + @else if $media == 'short' { + @media (max-height: $break-short) { @content; } + } + @else { + @content; + } +} + +* { + @include box-sizing(border-box); +} + +// Colors +$font-color: #000; +$highlight: #ffc; + +$grey-medium: #666; + +$blue: #3d89d1; +$green: #95BE64; + +// Navigation + + +$header-bg-color: $blue; + +// Link colors +$link-color: $blue; +$link-hover-color: darken($blue,10%); +$link-active-color: darken($blue,20%); +//$link-focus-color: false; +//$link-visited-color: false; + +a { + color: $link-color; + &:active { color: $link-active-color; } + a:hover { color: $link-hover-color; } +} + +// Font Sets +$font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Tahoma, Verdana, Arial, sans-serif; +$font-family-enhanced: 'Open Sans', 'Helvetica Neue', Helvetica, Verdana, Arial, sans-serif; +$font-family-helvetica: 'Helvetica Neue', Helvetica, Verdana, Arial, sans-serif; + +body { + font-family: $font-family; + color: #444; + //MO boostrap override + font-size:16px; +} + +#{headings()} { + font-family: $font-family-enhanced; + font-weight: 600; + margin: 0 0 .25em; + + small { + color: $grey-medium; + font-weight: normal; + } + + a { + text-decoration: none; + border-bottom: 2px solid lighten($blue, 40%); + padding: 0; + color: $blue; + + &:hover { + border-bottom: 2px solid $blue; + } + } +} + +h1 { + font-family: $font-family-helvetica; + font-size: 6em; + font-weight: 100; + margin: 1em 0 .25em; + color: #999; +} +h2 { + font-size: 1.5em; + font-weight: 600; + margin: 1.5em 0 .25em; + color: #666; +} +h3 { + font-size: 1.25em; +} +h4 { + font-size: 1.125em; +} + +ol, ul { + +} +li { + font: .9em/1.6 $font-family; + +} + +p { + font: .9em/1.6 $font-family; + margin: 0 0 1em; + + &.large, &.medium { + font-family: $font-family-enhanced; + line-height: 1.5; + font-size: 1.1em; + } + + &.large { + font-size: 1.5em; + margin-bottom: .5em; + } +} + + +ol.products { + width: 100%; + margin: 0; + padding: 0; + border: 1px solid #ccc; + @include clearfix(); + + li { + width: 50%; + display: inline-block; + float: left; + padding: 1.25rem 1rem 1rem; + + } + + :first-child > li { border-right: 1px solid #ccc; } + :last-child > li { + margin-left: -1px; + border-left: 1px solid #ccc; + } + + a { + color: #888; + + &:hover li { background-color: #f8f8f8; } + } + + h2 { + color: $blue; + margin: 0 0 .125em; + font-weight: 400; + font-size: 2.5rem; + line-height: 1; + } + p { + margin: 0; + + } +} + + + +body { + margin-top: 68px; + + & > header { + h1 { + border-top: none; + margin: 0; + font: bold 1.25rem $font-family-enhanced; + + padding: 1em 5%; + color: #888; + font-weight: 600; + background-color: rgba(255,255,255,.9); + border-bottom: 1px solid #eee; + position: fixed; + top: 0; + left: 0; + width: 100%; + } + } +} + +#page { + margin: 5em 5%; +} + +img { + &.diagram { + border: 1px solid #ccc; + padding: 20px; + margin-bottom: 1em + } +} + +ol.images, ol.colors { + padding: 0; + list-style: none; + + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + + -webkit-flex-flow: row wrap; + flex-flow: row wrap; + + li { + margin: 0 1em 1em 0; + } +} + +ol.colors { + & > li { + width: 11em; + overflow: hidden; + + padding: 10px 10px 0 10px; + border: 1px solid #ccc; + + .swatch { + display: block; + width: 100%; + height: 150px; + margin: 0 0 .25em; + padding: 100px 0 0 0; + text-align: center; + font: 2em $font-family-enhanced; + text-transform: uppercase; + } + + h3 { + font-weight: 600; + font-size: 1.25em; + } + } + + p { + font-size: .7em; + } + + ul { + list-style: none; + padding: 0; + + li { + float: left; + width: 5em; + + } + } +} + + +.note, .pro, .future, .deprecated, .todo { + &:before { + text-transform: uppercase; + font-weight: 300; + font-size: .95em; + padding: 2px 4px; + margin: 0 5px 0 -2px; + } +} + +.deprecated { + color: #999; + background-color: #eee; + padding: 5px; + margin-top: -5px; + + &:before { + content: "Deprecated"; + font-weight: 300; + color: #999; + border: 1px dotted #999; + } +} +.future { + color: #777; + + &:before { + content: "Future"; + font-weight: 300; + background-color: #999; + color: #fff; + } +} +.pro { + color: #777; + + &:before { + content: "Pro"; + background-color: #84B745; + color: #fff; + } +} +.todo { + &:before { + font-weight: 600; + content: 'To Do'; + background-color: #ffc; + border: 1px dotted #ccc; + color: #666; + } +} + +.note { + // background-color: #ffc; + color: #777; + + &:before { + content: "Note"; + background-color: #ffc; + color: #999; + border: 1px dotted #ccc; + } +} + + +dl { + overflow: hidden; + border-bottom: 1px solid #eee; + + dd, dt { + border-top: 1px solid #eee; + + margin: 0; + padding: 10px 0; + font: normal .8em $font-family; + } + + dt { + font: 1.25em $font-family-enhanced; + width: 150px; + float: left; + margin: 0; + font-weight: bold; + } + + dd { + margin-left: 150px; + min-height: 5em; + + *:last-child { + margin-bottom: 0; + } + + p { + margin: 0 0 .5em; + } + } + +} diff --git a/core/protected/extensions/umber/assetsToCompile/lib/_clearfix-hack b/core/protected/extensions/umber/assetsToCompile/lib/_clearfix-hack new file mode 100644 index 00000000..47b5b22b --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/lib/_clearfix-hack @@ -0,0 +1,26 @@ +/** + * For modern browsers + * 1. The space content is one way to avoid an Opera bug when the + * contenteditable attribute is included anywhere else in the document. + * Otherwise it causes space to appear at the top and bottom of elements + * that are clearfixed. + * 2. The use of `table` rather than `block` is only necessary if using + * `:before` to contain the top-margins of child elements. + */ +.cf:before, +.cf:after { + content: " "; /* 1 */ + display: table; /* 2 */ +} + +.cf:after { + clear: both; +} + +/** + * For IE 6/7 only + * Include this rule to trigger hasLayout and contain floats. + */ +.cf { + *zoom: 1; +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/lib/_normalize.scss b/core/protected/extensions/umber/assetsToCompile/lib/_normalize.scss new file mode 100755 index 00000000..e93e9aca --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/lib/_normalize.scss @@ -0,0 +1,408 @@ +.webstore-modal{ + /*! normalize.css v2.1.3 | MIT License | git.io/normalize */ + + /* ========================================================================== + HTML5 display definitions + ========================================================================== */ + + /** + * Correct `block` display not defined in IE 8/9. + */ + + article, + aside, + details, + figcaption, + figure, + footer, + header, + hgroup, + main, + nav, + section, + summary { + display: block; + } + + /** + * Correct `inline-block` display not defined in IE 8/9. + */ + + audio, + canvas, + video { + display: inline-block; + } + + /** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + + audio:not([controls]) { + display: none; + height: 0; + } + + /** + * Address `[hidden]` styling not present in IE 8/9. + * Hide the `template` element in IE, Safari, and Firefox < 22. + */ + + [hidden], + template { + display: none; + } + + /* ========================================================================== + Base + ========================================================================== */ + + /** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + + html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ + } + + /** + * Remove default margin. + */ + + body { + margin: 0; + } + + /* ========================================================================== + Links + ========================================================================== */ + + /** + * Remove the gray background color from active links in IE 10. + */ + + a { + background: transparent; + } + + /** + * Address `outline` inconsistency between Chrome and other browsers. + */ + + a:focus { + outline: thin dotted; + } + + /** + * Improve readability when focused and also mouse hovered in all browsers. + */ + + a:active, + a:hover { + outline: 0; + } + + /* ========================================================================== + Typography + ========================================================================== */ + + /** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + + h1 { + font-size: 2em; + margin: 0.67em 0; + } + + /** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + + abbr[title] { + border-bottom: 1px dotted; + } + + /** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + + b, + strong { + font-weight: bold; + } + + /** + * Address styling not present in Safari 5 and Chrome. + */ + + dfn { + font-style: italic; + } + + /** + * Address differences between Firefox and other browsers. + */ + + hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; + } + + /** + * Address styling not present in IE 8/9. + */ + + mark { + background: #ff0; + color: #000; + } + + /** + * Correct font family set oddly in Safari 5 and Chrome. + */ + + code, + kbd, + pre, + samp { + font-family: monospace, serif; + font-size: 1em; + } + + /** + * Improve readability of pre-formatted text in all browsers. + */ + + pre { + white-space: pre-wrap; + } + + /** + * Set consistent quote types. + */ + + q { + quotes: "\201C" "\201D" "\2018" "\2019"; + } + + /** + * Address inconsistent and variable font size in all browsers. + */ + + small { + font-size: 80%; + } + + /** + * 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. + */ + + img { + border: 0; + } + + /** + * Correct overflow displayed oddly in IE 9. + */ + + svg:not(:root) { + overflow: hidden; + } + + /* ========================================================================== + Figures + ========================================================================== */ + + /** + * Address margin not present in IE 8/9 and Safari 5. + */ + + figure { + margin: 0; + } + + /* ========================================================================== + Forms + ========================================================================== */ + + /** + * Define consistent border, margin, and padding. + */ + + fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; + } + + /** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + + legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ + } + + /** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + + button, + input, + //select, + textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ + } + + /** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + + button, + input { + line-height: normal; + } + + /** + * 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 Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + + button, + select { + text-transform: none; + } + + /** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + + button, + html input[type="button"], /* 1 */ + input[type="reset"], + input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ + } + + /** + * Re-set default cursor for disabled elements. + */ + + button[disabled], + html input[disabled] { + cursor: default; + } + + /** + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + + input[type="checkbox"], + input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + } + + /** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + + input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; + } + + /** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + + input[type="search"]::-webkit-search-cancel-button, + input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; + } + + /** + * Remove inner padding and border in Firefox 4+. + */ + + button::-moz-focus-inner, + input::-moz-focus-inner { + border: 0; + padding: 0; + } + + /** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + + textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ + } + + /* ========================================================================== + Tables + ========================================================================== */ + + /** + * Remove most spacing between table cells. + */ + + table { + border-collapse: collapse; + border-spacing: 0; + } +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/mixins/_animations.scss b/core/protected/extensions/umber/assetsToCompile/mixins/_animations.scss new file mode 100644 index 00000000..8d863a0e --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/mixins/_animations.scss @@ -0,0 +1,35 @@ +//MO +//This mixin file can be removed when we update compass to latest version +//which would require first to update sass scss currently 3.2.12 to version like 3.4.2 or later. + +@mixin animation-duration($val) { + -webkit-animation-duration:$val; + -moz-animation-duration:$val; + -ms-animation-duration:$val; + -o-animation-duration:$val; + animation-duration:$val; +} + +@mixin animation-fill-mode($val) { + -webkit-animation-fill-mode:$val; + -moz-animation-fill-mode:$val; + -ms-animation-fill-mode:$val; + -o-animation-fill-mode:$val; + animation-fill-mode:$val; +} + +@mixin animation-iteration-count($val) { + -webkit-animation-iteration-count:$val; + -moz-animation-iteration-count:$val; + -ms-animation-iteration-count:$val; + -o-animation-iteration-count:$val; + animation-iteration-count:$val; +} + +@mixin animation-name($val) { + -webkit-animation-name:$val; + -moz-animation-name:$val; + -ms-animation-name:$val; + -o-animation-name:$val; + animation-name:$val; +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/mixins/_arrows.scss b/core/protected/extensions/umber/assetsToCompile/mixins/_arrows.scss new file mode 100644 index 00000000..1b36cb57 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/mixins/_arrows.scss @@ -0,0 +1,78 @@ + +// CSS Arrows +@mixin arrow($box-edge : bottom, + $edge-side : center, + $arrow-size : 10px, + $edge-side-offset : 0, + $fill-color : black, + $border-color : none, + $border-style : border) { + + // initiate internal variables + $box-edge-inverse: bottom; + $edge-side-pos: $edge-side; + $edge-side-pos-value: 0; + + // establish inverse variables + @if $box-edge == top { $box-edge-inverse: bottom; } + @else if $box-edge == right { $box-edge-inverse: left; } + @else if $box-edge == bottom { $box-edge-inverse: top; } + @else if $box-edge == left { $box-edge-inverse: right; } + + // calculate remaining internal variables + @if ($box-edge == 'top' or + $box-edge == 'bottom') { + @if $edge-side == center { + $edge-side-pos: left; + $edge-side-pos-value: 50%; + $edge-side-offset: (-$arrow-size); + } + } + @if ($box-edge == 'left' or + $box-edge == 'right') { + @if $edge-side == center { + $edge-side-pos: top; + $edge-side-pos-value: 50%; + $edge-side-offset: (-$arrow-size); + } + } + + &:after, &:before { + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border: solid rgba(#fff, 0); + } + + &:after { + border-color: rgba(#fff, 0); + border-width: $arrow-size - 1; + #{$box-edge}: (-$arrow-size) - $arrow-size + 2; + border-#{$box-edge-inverse}-color: $fill-color; + #{$edge-side-pos}: $edge-side-pos-value; + margin-#{$edge-side-pos}: $edge-side-offset + 1; + } + + @if $border-style == flag { + @include border-radius(2px); + &:before { + border-color: rgba(#fff, 0); + border-width: $arrow-size - 1; + #{$box-edge}: (-$arrow-size) - $arrow-size + 2; + border-#{$box-edge-inverse}-color: $border-color; + #{$edge-side-pos}: $edge-side-pos-value; + margin-#{$edge-side-pos}: $edge-side-offset + 2; + } + } @else { + &:before { + border-color: rgba(#fff, 0); + border-width: $arrow-size; + #{$box-edge}: (-$arrow-size) - $arrow-size; + border-#{$box-edge-inverse}-color: $border-color; + #{$edge-side-pos}: $edge-side-pos-value; + margin-#{$edge-side-pos}: $edge-side-offset; + } + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/mixins/_borders.scss b/core/protected/extensions/umber/assetsToCompile/mixins/_borders.scss new file mode 100644 index 00000000..7c4b659f --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/mixins/_borders.scss @@ -0,0 +1,6 @@ +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/mixins/_flexbox.scss b/core/protected/extensions/umber/assetsToCompile/mixins/_flexbox.scss new file mode 100644 index 00000000..2d874566 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/mixins/_flexbox.scss @@ -0,0 +1,47 @@ +@mixin flexbox() { + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; +} + +@mixin flex($values) { + -webkit-box-flex: $values; + -moz-box-flex: $values; + -webkit-flex: $values; + -ms-flex: $values; + flex: $values; +} + +@mixin order($val) { + -webkit-box-ordinal-group: $val; + -moz-box-ordinal-group: $val; + -ms-flex-order: $val; + -webkit-order: $val; + order: $val; +} + +@mixin direction($val) { + -webkit-flex-direction: $val; + flex-direction: $val; +} + +@mixin flow($val) { + -webkit-flex-flow: $val; + flex-flow: $val; +} + +@mixin wrap($val) { + -webkit-flex-wrap: $val; + flex-wrap: $val; +} + +@mixin justify-content($val) { + -webkit-justify-content: $val; + justify-content: $val; +} + +@mixin align-self($val) { + -webkit-align-self: $val; + align-self: $val; +} diff --git a/core/protected/extensions/umber/assetsToCompile/mixins/_html5-input-types.scss b/core/protected/extensions/umber/assetsToCompile/mixins/_html5-input-types.scss new file mode 100755 index 00000000..d4bb9f4c --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/mixins/_html5-input-types.scss @@ -0,0 +1,87 @@ +//************************************************************************// +// Generate a variable ($all-text-inputs) with a list of all html5 +// input types that have a text-based input, excluding textarea. +// http://diveintohtml5.org/forms.html +//************************************************************************// +$inputs-list: 'input[type="email"]', + 'input[type="number"]', + 'input[type="password"]', + 'input[type="search"]', + 'input[type="tel"]', + 'input[type="text"]', + 'input[type="url"]', + + // Webkit & Gecko may change the display of these in the future + 'input[type="color"]', + 'input[type="date"]', + 'input[type="datetime"]', + 'input[type="datetime-local"]', + 'input[type="month"]', + 'input[type="time"]', + 'input[type="week"]'; + +$unquoted-inputs-list: (); + +@each $input-type in $inputs-list { + $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma); +} + +$all-text-inputs: $unquoted-inputs-list; + +// You must use interpolation on the variable: +// #{$all-text-inputs} +//************************************************************************// +// #{$all-text-inputs}, textarea { +// border: 1px solid red; +// } + +// :hover and :focus pseudo elements +// Added by Ricardo Zea +// http://ricardozea.net +// @ricardozea +// Tracking: http://stackoverflow.com/questions/13180807/sass-create-mixin-for-input-fields + +$inputs-list-hf:'input[type="email"]:hover', + 'input[type="number"]:hover', + 'input[type="password"]:hover', + 'input[type="search"]:hover', + 'input[type="tel"]:hover', + 'input[type="text"]:hover', + 'input[type="url"]:hover', + 'input[type="color"]:hover', + 'input[type="date"]:hover', + 'input[type="datetime"]:hover', + 'input[type="datetime-local"]:hover', + 'input[type="month"]:hover', + 'input[type="time"]:hover', + 'input[type="week"]:hover', + + 'input[type="email"]:focus', + 'input[type="number"]:focus', + 'input[type="password"]:focus', + 'input[type="search"]:focus', + 'input[type="tel"]:focus', + 'input[type="text"]:focus', + 'input[type="url"]:focus', + 'input[type="color"]:focus', + 'input[type="date"]:focus', + 'input[type="datetime"]:focus', + 'input[type="datetime-local"]:focus', + 'input[type="month"]:focus', + 'input[type="time"]:focus', + 'input[type="week"]:focus'; + +$unquoted-inputs-list-hf: (); + +@each $input-type-hf in $inputs-list-hf { + $unquoted-inputs-list-hf: append($unquoted-inputs-list-hf, unquote($input-type-hf), comma); +} + +$all-text-inputs-hf: $unquoted-inputs-list-hf; + +// You must use interpolation on the variable: +// #{$all-text-inputs-hf} +//************************************************************************// +// #{$all-text-inputs-hf}, textarea { +// border: 1px solid red; +// } \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/mixins/_keyframes.scss b/core/protected/extensions/umber/assetsToCompile/mixins/_keyframes.scss new file mode 100755 index 00000000..76f23d3f --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/mixins/_keyframes.scss @@ -0,0 +1,15 @@ +// keyframes mixin +@mixin keyframes($name) { + @-webkit-keyframes #{$name} { + @content; + } + @-moz-keyframes #{$name} { + @content; + } + @-ms-keyframes #{$name} { + @content; + } + @keyframes #{$name} { + @content; + } +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/mixins/_placeholders.scss b/core/protected/extensions/umber/assetsToCompile/mixins/_placeholders.scss new file mode 100644 index 00000000..777069f4 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/mixins/_placeholders.scss @@ -0,0 +1,6 @@ +@mixin placeholder-styles() { + &::-webkit-input-placeholder { @content; } + &:-moz-placeholder { @content; } + &::-moz-placeholder { @content; } + &::-ms-input-placeholder { @content; } +} diff --git a/core/protected/extensions/umber/assetsToCompile/mixins/_transitions.scss b/core/protected/extensions/umber/assetsToCompile/mixins/_transitions.scss new file mode 100644 index 00000000..6f3b39f5 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/mixins/_transitions.scss @@ -0,0 +1,13 @@ +@mixin transition-property($val) { + -webkit-transition-property: $val; + -moz-transition-property: $val; + -o-transition-property: $val; + transition-property: $val; +} + +@mixin transition-duration($val) { + -webkit-transition-duration: $val; + -moz-transition-duration: $val; + -o-transition-duration: $val; + transition-duration: $val; +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_address_blocks.scss b/core/protected/extensions/umber/assetsToCompile/modal/_address_blocks.scss new file mode 100644 index 00000000..7523479b --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_address_blocks.scss @@ -0,0 +1,172 @@ +.webstore-modal-overlay { + .wishlists, .address-blocks { + .add { + //MO added the button class to support links with button like look-n-feel + button, .button { + border: 1px solid #ccc; + background: none; + color: #999; + width: 100%; + padding: 20px 0; + + @include transition(color .3s, border .3s, background .3s); + + &:before { + content: '+'; + margin-right: 5px; + } + + &:hover { + background: $blue; + border-color: $blue; + color: #fff; + } + } + } + } + + .address-blocks, .wishlists { + @include flexbox(); + @include justify-content(space-between); + @include wrap(wrap); + + width: 100%; + + margin: 0; + padding: 0; + list-style: none; + + li { + width: 100%; + position: relative; + margin: 0 0 1rem; + + @include media(small) { + width: 47%; + } + } + + } + .billing-block { + p{ + font-size: .75rem; + } + + } + .address-block{ + p { + position: relative; + + margin: 0; + padding: 10px 2px 10px 25px; + + border: 1px solid #ddd; + + font-size: .75rem; + color: #777; + line-height: 1.5; + + &:before { + font-size: .75rem; + content: "TO"; + font-weight: bold; + color: #666; + border: 1px solid #ccc; + background-color: #eee; + position: absolute; + top: 10px; + padding: 3px 6px 2px; + left: -15px; + } + + .controls { + display: block; + margin-top: 5px; + + a { + &.delete { color: #c00; + &:hover { + border-bottom: 1px solid #c00; + } + } + &:hover { + border-bottom: 1px solid $blue; + } + } + } + + .shipper { + display: block; + margin-top: 5px; + + .price { + font-size: .75em; + color: #888; + } + } + + &.default { + &:after { + font-size: .75rem; + color: #888; + border: 1px solid #ccc; + background-color: #eee; + position: absolute; + top: 10px; + padding: 3px 6px 2px; + right: -10px; + text-transform: uppercase; + + } + } + &.default { + &:after { + content: 'Default Shipping'; + } + } + } + + button.small { + width: 100%; + margin-bottom: .5rem; + + &.default { + background-color: darken($blue,10%); + &:before { + content: '\2713'; + margin-right: 5px; + } + } + + &.secondary { + background-color: #eee; + color: #666; + width: 48%; + margin-bottom: 0; + + &:last-child { + margin-left: 4%; + } + } + } + + &.address-block-alter { + position: relative; + margin-bottom: 15px; //MO + + p { + width: 60%; + } + button { + width: auto; + position: absolute; + top: 32%; + left: 60%; + margin-left: 15px; + } + } + } + .address-block-pickable { + p { border-bottom: none; } + } +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_animations.scss b/core/protected/extensions/umber/assetsToCompile/modal/_animations.scss new file mode 100755 index 00000000..ccdf330f --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_animations.scss @@ -0,0 +1,40 @@ +.animated { + @include animation-duration(0.5s); + @include animation-fill-mode(both); +} + +.animated.infinite { + @include animation-iteration-count(infinite); +} + +@-webkit-keyframes shake { + 0%, 100% { + @include transform(translateX(0)); + } + + 20%, 60% { + @include transform(translateX(-5px)); + } + + 40%, 80% { + @include transform(translateX(5px)); + } +} + +@keyframes shake { + 0%, 100% { + @include transform(translateX(0)); + } + + 20%, 60% { + @include transform(translateX(-5px)); + } + + 40%, 80% { + @include transform(translateX(5px)); + } +} + +.shake { + @include animation-name(shake); +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_basic_modal.scss b/core/protected/extensions/umber/assetsToCompile/modal/_basic_modal.scss new file mode 100755 index 00000000..4d75bcbe --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_basic_modal.scss @@ -0,0 +1,422 @@ +#webstore-container { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 100%; + height: 100%; +} + +.webstore-modal { + //MO + input{ + font-size: 100%; + margin-bottom: 0; + line-height: normal; + background-color: #fff; + border: $input-border; + &:focus{ + background-color: transparent; + line-height: normal; + } + } + + input[type="text"]{ + border: none; + line-height: normal; + &:focus{ + line-height: normal; + } + } + + visibility: hidden; + cursor: pointer; + position: fixed; + z-index: 2; + + // Sets overlay background color + background-color: rgba(#000,0); + top: 0; + bottom: 0; + left: 0; + right: 0; + font-family: $webstore-modal-font; + text-align: center; + + @include perspective(1300px); + @include transition-property(background-color); + @include transition-duration(.5s); + + @include media(medium) { + &:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; + margin-right: -0.25em; /* Adjusts for spacing */ + } + } + + &.show { + visibility: visible; + background-color: rgba(#000,.5); + overflow-y: scroll; + + & section { + visibility: visible; + @include transform(translateY(0%) rotateX(0deg)); + opacity: 1; + } + } + + section { + z-index: 2000; + visibility: hidden; + max-width: $modal-width; + + @include transform(translateY(100%) rotateX(90deg)); + @include transform-style(preserve-3d); + @include transform-origin(0 100%); + @include transition(all 0.3s ease-out); + + position: relative; + min-height: 100%; + padding-bottom: 59px; + + text-align: left; + display: inline-block; + vertical-align: middle; + + // Sets modal shadow + box-shadow: 1px 1px 5px rgba(0,0,0,.2); + width: 100%; + + @include media(small) { + min-height: 0; + padding-bottom: 0; + } + &:hover { cursor: default; } + } + + article, aside, main, form { background-color: #fff; } + form, header { padding: $modal-padding $modal-padding*2; } + header { padding: $modal-padding/2 $modal-padding; } + form { padding: 0; } + .breakaway { margin-top: 20px; } + + button, input[type="button"], .button { + font: 1.25rem "Open Sans", "Helvetica Neue", Helvetica, sans-serif; + + &.webstore-modal-close { + @include media(small) { + display: none; + } + + position: absolute; + bottom: 0; + left: 0; + right: 0; + + display: block; + + background-color: #eee; + color: #999; + font: .875rem 'Open Sans', 'Helvetica Neue', sans-serif; + text-transform: uppercase; + + &:hover { + background-color: #eee; + color: #666; + } + &:focus { outline: none; } + } + } + + .twocolumn { + @extend %clearfix; + margin: 0; + + .column { @extend %clearfix; } + + @include media(small) { + .column { + float: left; + width: 50%; + padding: 0; + } + } + .content { + padding: 10px 20px 0; + } + } + + + form { + ol { + margin: 0; + list-style: none; + padding: 0; + } + li { + overflow: hidden; + position: relative; + + &.split-3 { + label { + width: 32%; + display: inline-block; + vertical-align: top; + font-size: .7rem; + &:last-child { + width: 33%; + } + } + } + + &.options-split { + overflow: hidden; + width: 100%; + + > *:first-child { + float: left; + } + > *:last-child { + float: right; + } + } + } + } + + h1 { + + font-weight: 600; + //MO conflicting with Edit cart Is this needed anywhere else? + font: 1rem $webstore-modal-header-font-family; + font-weight: $webstore-modal-header-font-weight; + margin: .25rem 0; + + .cancel { + position: absolute; + right: 20px; + top: 16px; + font-size: .75rem; + color: #777; + text-transform: none; + border-bottom: 1px solid #ccc; + } + small { + float: right; + color: #aaa; + + } + } + + h2 { + font-size: 1.5rem; + margin: .5em 0 1em; + color: #555; + } + h4 { + text-transform: uppercase; + margin: 0 0 .75em; + font-weight: 400; + color: #888; + font-size: 1rem; + } + + header { + background-color: #eee; + border-bottom: 1px solid #ccc; + } + + .invisible { visibility: hidden; } + + footer.submit { + padding: 0; + background-color: #eee; + color: #999; + overflow: hidden; + + input[type="submit"] { + @include transition-property(background-color); + @include transition-duration(.3s); + + font: 1.25rem $webstore-modal-header-font-family; + font-weight: $webstore-modal-header-font-weight; + + padding: $modal-padding; + background: $calltoaction-color; + width: 100%; + border: none; + color: #fff; + float: left; + + &:hover { + background-color: darken($calltoaction-color,10%); + } + } + } + + .hint, .info { + p { + margin: 0; + padding: 12px $modal-padding 11px; + color: #666; + font-size:.875rem; + } + } + + .hint p { margin-right: 80px; } + + input[type="text"], input[type="email"], input[type="password"], input[type="tel"] { + &.split-2 { + width: 50%; + float: left; + border-right: $input-border; + &:last-child { + border-right: none; + } + } + &.split-3 { + width: 33%; + float: left; + border-right: $input-border; + &:last-child { + border-right: none; + width: 34%; + } + } + + &:focus { + box-shadow: inset 1px 1px 3px #ccc; + background-color: #f8f8f8; + outline: none; + } + } + label { + &.transient { + display: none; + color: #666; + position: absolute; + top: 3px; + left: $modal-padding; + font-size: .5rem; + text-transform: uppercase; + font-weight: bold; + } + &.text { + @include transition-property(background-color, color); + @include transition-duration(.3s); + display: block; + padding: $modal-padding; + font-size: .85rem; + color: #888; + cursor: pointer; + @include transition-property(color); + @include transition-duration(.3s); + background-color: #fff; + } + &.checkbox { + @include transition-property(background-color, color); + @include transition-duration(.3s); + + display: block; + padding: $modal-padding; + font-size: .85rem; + color: #888; + cursor: pointer; + @include transition-property(color); + @include transition-duration(.3s); + background-color: #fff; + + &:hover { + color: #555; + } + + input { + font-size: 2em; + //MO + margin-right: 2px; + } + } + } + + .minor { + @include transition-property(background-color, color, border-color); + @include transition-duration(.3s); + text-decoration: none; + width: auto; + @include border-radius(0); + background: none; + color: #aaa; + padding: 7px 6px; + text-align: right; + font-size: .75rem; + line-height: 1; + position: absolute; + right: 18px; + top: 18px; + + strong { + font-weight: normal; + color: $calltoaction-color; + text-decoration: underline; + } + + &:hover { + color: #888; + strong { color: darken($calltoaction-color,10%); } + } + } + + label { + margin: 0 0 2px; + display: block; + color: #666; + } + + input { + padding: 8px; + background-color:transparent; + @include border-radius(0); + } +} + +.webstore-modal-narrow { + @include media(small) { + &:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; + margin-right: -0.25em; /* Adjusts for spacing */ + } + } + section { + max-width: $modal-width-narrow; + } +} + +//webstore Montreal override +.webstore-modal.show { + visibility: visible; + text-align: center; + -webkit-font-smoothing: initial; + font-smoothing: initial; + display: inline-block; + +} +//MO +.estimator-zip-error{ + float:left; + color: #a44039; + margin: 0; + font-size: 0.75rem; + padding: 3px 0 6px; + text-align: left; + p{ + margin: 0; + } +} + diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_browsers_unistyle.scss b/core/protected/extensions/umber/assetsToCompile/modal/_browsers_unistyle.scss new file mode 100644 index 00000000..b4e28ceb --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_browsers_unistyle.scss @@ -0,0 +1,16 @@ +::-webkit-input-placeholder { color: #aaa !important; } +:-moz-placeholder { /* Firefox 18- */ color: #aaa !important; } +::-moz-placeholder { /* Firefox 19+ */ color: #aaa !important ; } +:-ms-input-placeholder { color: #aaa !important; } + +.quantity input, input.cc-exp , input.creditcard-number ,.editcartmodal input.promo-code-value, #MultiCheckoutForm_orderNotes{ + &:focus{ + /* -webkit-focus-ring-color = '#5B9DD9' */ + outline: #5B9DD9 auto 5px!important; + } +} + +//remove "clear field" X buttons IE +::-ms-clear { + display: none; +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_cart.scss b/core/protected/extensions/umber/assetsToCompile/modal/_cart.scss new file mode 100755 index 00000000..df98e859 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_cart.scss @@ -0,0 +1,481 @@ +.webstore-overlay-cart { + + display:block; + overflow-y:scroll; + + .webstore-estimator-form,.shipping-postal-entry { + background: none; + display:none; + } + .shipping-postal-entry { + margin-top: 16px; + } + + .shipping-city-state-link{ + font-size:11px; + } + .lines-container, .totals, .submit { + + @media(width:640px) { + margin: 0; + } + } + + @media(min-width:640px) { + // Push delete buttons into margin + .lines { margin-right: -15px; } + } + + header { + position: relative; + + a.button.edit, a.button.edit:focus { + @media(min-width:640px) { display: none; } + top: 9px; + right: 8px; + font-weight: bold; + border-color: #ccc; + text-decoration: none; + background: none; + font-size: .8375rem; + color: #aaa; + + &:hover { + border-color: $calltoaction-color; + color: $calltoaction-color; + background: none; + } + } + } + .cart-footer { + clear: both; + @extend %clearfix; + + .pricechange { + display: none; + font-size: 0.75rem; + float: right; + width: 18rem; + color: #666; + background-color: #ffc; + padding: 12px; + margin-right: 15px; + border-bottom: 1px solid #ccc; + + @media(max-width: 640px) + { + width: 100%; + float: none; + } + } + } + + table { + border-collapse: collapse; + + td, th { + text-align: left; + vertical-align: middle; + padding: 0; + } + + &.lines { + a { color: #555; } + + tr td:first-child, tr th:first-child { + padding-left: 8px; + @media(min-width:640px) { + padding-left: 0; + } + } + tr:last-child { + td { + border-bottom: 1px solid #ccc; + &:last-child { border-bottom-color: #fff; } + } + } + + td { border-bottom: 1px solid #eee; } + } + + a { + font-weight: bold; + border-bottom: 1px solid #bbb; + } + + td.image { + width: 0; + @media(min-width:640px) { width: 62px; } + img { + display: none; + vertical-align: middle; + width: 56px; + margin-right: -62px; + padding: 6px 6px 6px 0; + + @media(min-width:640px) { display: block; } + } + } + + td.description { + height: 62px; + padding-right:5px; + + strong, img { float: left; } + strong { + line-height: 1.4; + + @media(min-width:640px) { + font-size: 1.125rem; + } + } + img { + display: none; + vertical-align: middle; + width: 56px; + padding: 6px 6px 6px 0; + + @media(min-width:640px) { display: block; } + } + } + + .price { + text-align: right; + + strike { + font-size: .75rem; + color: #ccc; + text-align: -1000em; + overflow: hidden; + display: block; + line-height: 1; + height: 12px; + margin-top: -12px; + + &:after { + color: #888; + content: attr(data-text); + } + } + } + + .quantity { + text-align: center; + width: 3rem; + @media(min-width:640px) { width: 7rem; } + } + + .subtotal { + width: 5rem; + padding-right: 12px; + padding-left: 5px; + } + + @include media(mobile) { + &.edit { + td.quantity, th.quantity { display: none; } + td.remove, th.remove { + display: table-cell; + width: 40px; + + a { + color: #fff; + border-color: $red; + background-color: $red; + + &:hover { + border-color: darken($red,10%); + background-color: darken($red,10%); + } + } + } + th.remove { border-bottom: 1px solid #ccc; } + //MO removing this is breaking the cart when edited on mobile and then screen is resized + //tr:last-child td:last-child { border-bottom: 1px solid #ccc; } + } + } + + .price, .remove { + display: none; + } + @media(min-width:640px) { + .price, .remove { display: table-cell; } + .price { width: 6rem; } + } + } + + tr { + opacity: 1; + @include transition-property(opacity); + @include transition-duration(.5s); + + + &.delete { + opacity: 0; + } + } + + table.lines thead { + th,a { + border-bottom: 1px solid #ccc; + text-transform: uppercase; + color: #999; + font-size: .875rem; + padding-bottom: 3px; + font-weight: bold; + } + } + + .subtotal, #PromoCodeStr { text-align: right; } + + table.lines { + th.remove, td.remove { + width: 30px; + border-bottom-color: #fff; + + a { + text-decoration: none; + display: block; + border: 2px solid #eee; + color: #ccc; + background-color: #fff; + @include border-radius(20px); + height: 28px; + width: 28px; + line-height: 22px; + padding-left: 5px; + font-size: 25px; + font-weight: bold; + margin: 0; + + @include transition-property(border-color, background-color,color); + @include transition-duration(.3s); + + &:hover { + color: #fff; + border-color: $red; + background-color: $red; + } + } + } + + } + + input[type="number"] { + width: 3rem; + //webstore montreal override + height:2rem; + text-align: center; + padding: 2px 4px; + + &::-webkit-inner-spin-button, &::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; + } + //MO remove spinner in mozilla number inputs + -moz-appearance:textfield; + + } + + .submit button{ + &.continue { + border-bottom: 1px solid #ddd; + } + } + .cart-footer button, .cart-footer .button { + @include media(small) { + width: auto; + } + + &.checkout, &.continue { float: right; } + &.checkout { + margin: 0 0 0 1em; + @media(min-width:640px) { + width: 18rem; + } + } + + &.continue { + display:none; + color: #999; + background: none; + @include media(small) { + display: block; + } + + @media(min-width:640px) { + margin: 20px; + padding: 0 0 2px; + } + + @include transition-property(border, background-color,color); + @include transition-duration(.3s); + + &:hover { + color: $calltoaction-color; + border-color: lighten($calltoaction-color, 20%); + } + } + } + + .submit { + padding: 0; + clear: both; + overflow: hidden; + + @media(min-width:640px) { margin: 0 15px 0 0; } + } + + .webstore-estimator { + &.recalculate { + td { + visibility: hidden; + color: #f8f8f8; + + &:after { visibility: visible; } + } + td.csspinner:after { + top: 27px; + left: 45px; + } + } + + form { + margin-top: 6px; + display: block; + } + input, button { + float: left; + + &:focus { + outline: none; + box-shadow: inset 1px 1px 2px rgba(0,0,0,.1); + border: 1px solid #bbb; + } + } + input { + border: $input-border; + padding: 9px 8px; + &:focus{ + padding: 9px 8px; + } + } + + select.webstore-estimator-country-form { + margin: 8px 0 0; + } + + button { + padding-left: 8px; + padding-right: 8px; + } + + a.webstore-estimator-country { + float: right; + color: #999; + text-decoration: none; + border-bottom: 1px dotted #ccc; + font-size: .75rem; + display: inline-block; + padding: 2px 0 0; + font-weight: normal; + } + } + + .webstore-promo-line { + small { text-transform: uppercase; } + } + + .totals { + min-height: 135px; + background-color: #f8f8f8; + width: auto; + margin: 0 15px 0 0; + width: 100%; + + @media(min-width:640px) { + float: right; + width: 18rem; + } + + tr:first-child { + th, td { + padding-top: 8px; + } + } + + small a { + color: #999; + border-bottom: 1px dotted #ccc; + text-decoration: none; + } + + td, th { + color: #888; + padding: 4px 8px; + + @media(min-width:640px){ + padding: 4px 12px; + } + } + th { + text-align: left; + } + td { + @include transition(color 1s) + } + + .active a { + text-decoration: none; + color: #888; + } + + .total { + font-weight: bold; + + td, th { + padding: 4px 8px 16px; + color: #444; + font-size: 1.25rem; + + @media(min-width:640px) { + padding-right: 12px; + padding-left: 12px; + } + } + } + } +} + + +//MO +.hide-me { + display: none; visibility: hidden; +} + +.editcartmodal{ + .promo input{ + min-width: 16rem; + } +} + +@media (max-width: 640px){ + .webstore-overlay-cart table.edit{ + th.remove, tr:last-child td:last-child { + border-bottom: 1px solid #ccc; + } + td.remove a { + color: #fff; + border-color: #a44039; + background-color: #a44039; + } + } +} +//MO override against bootstrap background +.editcartmodal { + @include media(medium) { + &:before { + height:0; + } + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_cartadd.scss b/core/protected/extensions/umber/assetsToCompile/modal/_cartadd.scss new file mode 100755 index 00000000..af26ddad --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_cartadd.scss @@ -0,0 +1,440 @@ +$cart-confirmation-image-width: 140px; +.webstore-modal-cart-confirm { + img { + width: $cart-confirmation-image-width; + } + + //D--.webstore-estimator-form P--shipping-postal-entry + .webstore-estimator-form,.shipping-postal-entry { + background: none; + display:none; + + } + table a, table a:hover { + font-weight: bold; + } + table a{ + border-bottom: 1px solid #bbb; + } + + .totals { + small a { + color: #999; + border-bottom: 1px dotted #ccc; + text-decoration: none; + + // + font-size:0.9167em; + } + + td{ + color: #888; + } + th{ + text-align: left; + } + + .active a { + text-decoration: none; + color: #888; + } + } +} + +aside.related-products { + overflow: hidden; + padding: 20px; + + @include media(small) { + border-top: 1px solid #ccc; + padding: 20px 30px; + } + + a { text-decoration: none; } + + h4 { + margin-bottom: .5em; + } + + ul { + margin: 0; + padding: 0; + overflow: hidden; + list-style: none; + + a:last-child li { + margin-right: 0; + margin-bottom: 0; + } + } + li { + @include clearfix(); + border: 1px solid #ddd; + padding: 10px; + margin-bottom: 10px; + position: relative; + + @include media(medium) { + float: left; + width: 210px; + margin-right: 15px; + } + + + } + + img { + width: 80px; + margin: 0 12px 0 0; + float: left; + } + + h3, p { + font-size: 1rem; + @include media(medium) { font-size: .8rem; } + margin: 0; + } + h3 { + color: #666; + max-height: 4.5em; + overflow: hidden; + } + p.price { + color: #888; + position: absolute; + bottom: 8px; + left: 102px; + } +} + +.cart-summary { + background-color: #eee; + border-left: 1px solid #ccc; + + table { + color: #888; + margin: 0 0 .5rem; + } + td { + line-height: 2; + } + tfoot td { + font-weight: bold; + color: #444; + } + + .webstore-promo-form { + position: relative; + //MO + line-height:normal; + + input { + border: none; + background-color: #eee; + border-top: $input-border; + font-size: .9375rem; + padding: 12px 20px 13px; + width: 100%; + //MO + min-height: 46px; + margin-bottom: 0; + &:focus{ + //MO + border:0; + width:100%; + padding:12px 20px 13px; + } + } + button { + @include transition-property(opacity); + @include transition-duration(.5s); + + opacity: 0; + position: absolute; + top: auto; + right:20px; + background: none; + //MO + bottom: 9.5px; + height:27px; + } + + &:hover button { + opacity: 1; + } + } + + .webstore-promo-line { + small { + text-transform: uppercase; + float: none; + font-weight: bold; + padding: 6px 0; + } + } + + small { + font-size: .75rem; + float: right; + font-weight: normal; + color: #999; + + a { + color: #999; + border-bottom: 1px dotted #ccc; + + //MO + text-decoration: none; + } + } + + footer { + button, .button, .button:focus{ + width: 100%; + + @include media(medium) { + width: 50%; + } + + float: left; + height: 60px; + font-size: 1rem; + + &.exit { + background-color: #ccc; + color: #888; + + &:hover { + background-color: #999; + color: #fff; + } + } + + &.continue-shopping{ + display: none; + @include media(small) { + display: block; + } + } + + } + } + + button.checkout, .button.checkout, + .button.checkout:focus{ + float: right; + } + + .pricechange { + display: none; + font-size: 0.75rem; + color: #666; + background-color: #ffc; + padding: 12px; + border-bottom: 1px solid #ccc; + } +} +.item-confirm { + header { + background: none; + border-bottom: none; + + padding: 15px 30px; + + @include media(medium) { + padding: 24px 30px; + } + + h1 { + text-transform: none; + color: #589141; + font-size: 1.3rem; + + &::before { + font-family: 'Lucida Grande'; + content: '\2713'; + padding-right: 8px; + } + } + } + + &.column .content { + padding: 0px 30px 15px; + //MO added clearfix to fix change button coming out of its parent div. + @include clearfix(); + } + + .webstore-change-item { + padding: 4px 6px; + font-size: .75rem; + text-decoration: none; + margin: .75em 0 0 0; + display: inline-block; + color: #aaa; + border: 2px solid #ccc; + font-weight: bold; + text-transform: uppercase; + @include transition-property(border-color,background-color,color); + @include transition-duration(.5s); + + &:hover { + border-color: $calltoaction-color; + color: $calltoaction-color; + } + } + + img { //MO + float: left; + margin-bottom: 20px; + position: absolute; + } + + .product-data {//MO + padding-left: 100px; + margin-left: 20px; + } + + h3 { + margin-top: 0; + font-size: 1.125rem; + margin-bottom: .25em; + } + + p { + margin-bottom: .125rem; + margin-top: 0; + color: #888; + } +} + +//webstore montreal ovewrites +@media (min-width: 720px) { + /* line 173, /app/source/stylesheets/webstore/_cartadd.scss */ + .item-confirm header { + padding: 5px 30px; } } + +.webstore-modal-cart-confirm h1{ + color: #777; + font-weight: 600; + text-transform: uppercase; + font: 1rem "Open Sans", "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; + margin: .25rem 0; +} + +/* override fonts */ +.webstore-modal .item-confirm .content h3, +.webstore-modal .item-confirm header h1, +.webstore-modal .cart-summary header h1, +.webstore-modal .cart-summary footer .button, +.webstore-modal .cart-summary footer button, +.webstore-modal aside.related-products h4, +.webstore-modal aside.related-products h3 { font-family: 'Open Sans','Helvetica Neue',Helvetica,sans-serif; } + +/* left side tweaks */ +.webstore-modal .item-confirm header h1 { margin: 12px 0; } +.webstore-modal .item-confirm .content { text-transform: none; } +.webstore-modal .item-confirm .content p { font-size: 15px; } +.webstore-modal .item-confirm .content h3 { font-weight: bold; line-height: 24px; margin-bottom: 10px; word-wrap: break-word; overflow-x: auto; overflow-y: -moz-hidden-unscrollable;} +.webstore-modal .item-confirm .content .sku { text-transform: uppercase; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } +.webstore-modal .item-confirm button.webstore-change-item { background-color: #ffffff; width: auto; } //MO +.webstore-modal .item-confirm button.webstore-change-item:hover { background-color: #ffffff; } +.webstore-modal .item-confirm img { max-width: 100px; max-height: 140px; width: auto; margin-bottom: 55px; } +.webstore-modal .item-confirm.column .content { padding: 0 20px 15px 25px; } + + +/* right side tweaks */ +.webstore-modal .cart-summary header { font-family: 'Open Sans','Helvetica Neue',Helvetica,sans-serif; } +.webstore-modal .cart-summary .webstore-promo-form button.inset { max-height: 30px; min-width: 50px; } +.webstore-modal input[type="text"] { min-height: 41px; margin-bottom: 0; } +.webstore-modal form { background-color: #EEE; margin-bottom: 0; } +.webstore-modal button, .cart-summary footer .button { margin-bottom: 0; } +.webstore-modal .cart-summary table td, +.webstore-modal .cart-summary footer .button, +.webstore-modal .cart-summary footer button { text-transform: none; } +.webstore-modal .cart-summary footer a{ + color: #FFF; + text-shadow: none; +} +.webstore-modal .cart-summary footer .button:hover { + background: $link-hover-color; + border: none; +} +.webstore-modal h1 small { + line-height: normal; +} + + +/* related products */ +.webstore-modal aside.related-products h3 { line-height: 18px; text-transform: none; font-weight: bold; } +.webstore-modal aside.related-products img { max-height: 80px; width: auto; } +.webstore-modal aside.related-products p.price { position: static; } + +@media (max-width: 640px) { + .webstore-modal .promo input[type="text"]:focus { max-width: 100%; } +} + +@media (max-width: 740px) { + .webstore-modal .item-confirm img { margin-bottom: 154px; } +} + +@media (max-width: 719px) { + .webstore-modal .item-confirm header { padding: 5px 30px; } + .webstore-modal aside.related-products h3 { line-height: 24px; } +} + +@media (max-width: 670px) and (min-width: 560px) { + .webstore-modal .item-confirm header h1 { font-size: 1rem; } +} + +@media (max-width: 559px) { + .webstore-modal .item-confirm.column .content { padding: 0 0 15px 10px; } + .webstore-modal .item-confirm img { margin-bottom: 76px; } + .webstore-modal .product-data .webstore-change-item { margin-bottom: 18px; } +} + +@media (max-width: 360px) { + .webstore-modal .item-confirm header h1 { font-size: 1rem; } +} + +form.webstore-promo-form.promo{ + width:100%; +} + +//Note that webstore-shipping-options was updated to shipping-options. The +//* webstore prefix was dropped. TODO Update CSS upstream. +// +// Default to the initial screen. +.shipping-estimate-line, +.tax-estimate-line, +.shipping-country-link, +.shipping-country-picker, +.shipping-options { + display: none; +} + +.webstore-shipping-choices li.webstore-shipping-choices-notice { + border-top: none; + border-bottom: 1px solid #ddd; + background-color: #ffc; +} + +.webstore-shipping-choices li.webstore-shipping-choices-notice.grey{ + background-color: #eee; +} + + +.webstore-modal-overlay button .continue-shopping.exit, .webstore-modal-overlay .cart-summary footer button.exit{ + background-color: #ccc; + color: #888; + &:hover{ + background-color: #999; + color: #fff; + } + +} + + +.estimate-shipping-and-taxes-link:hover{ + border-bottom-color: $calltoaction-color; +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_checkout.scss b/core/protected/extensions/umber/assetsToCompile/modal/_checkout.scss new file mode 100755 index 00000000..6d3e1552 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_checkout.scss @@ -0,0 +1,218 @@ +.webstore-checkout { + + //MO + input[type] { margin-bottom: 0;} + *, *:before, *:after { + -moz-box-sizing: border-box; -webkit-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box;} + + ol { + list-style: none; + margin: 0; + padding: 0; + } + + p { + font-size: .8375rem; + color: #777; + line-height: 1.5; + } + + label.checkbox { + text-align: center; + width: 100%; + display: block; + font-size: .875rem; + + input { + font-size: 1rem; + margin: 0 .25rem 0 0; + width: auto; + display: inline-block; + } + + //MO alignment of store pickup checkbox + input.instore-toggle { + margin: 0.2rem 0.5rem 0 0; + } + } + + footer.submit { + @extend %clearfix; + margin-bottom: 15px; + } + //MO + input[type="submit"]:focus{ + &#Payment{ + height:64px; + line-height: normal; + font-size: 1.125rem; + padding: 20px 0; + } + } + + input[type="submit"], button, .button { + width: 100%; + font-size: 1.125rem; + padding: 20px 0; + border: none; + &#login-button, &#login-button:focus, + &#guest-button, &#guest-button:focus{ + height: 64px; + font-size: 1.125rem; + } + @include transition-property(border,background); + @include transition-duration(.5s); + + &.small { + width: auto; + font-size: .8375rem; + padding: 9px; //MO + } + } + + .notice { + padding: 15px 30px; + margin: 0 -30px 1em; + + background-color: #ffc; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + + p { margin: 0; } + strong { color: #333; } + } + + + .choices { + overflow: hidden; + + button, .button { + width: 100%; + font-size: .9375rem; + float: left; + background: #eee; + border: 1px solid #ccc; + color: #777; + margin-top: 6px; + padding: 12px 0; + //override light.css + height: 46px; + + @include media(verysmall) { + width: 50%; + &:last-child { + border-left: none; + } + } + + &:hover { + font-weight: bold; + border-color: $calltoaction-color; + background: $calltoaction-color; + color: #fff; + } + } + } +} + +//TODO:MO have path similar to design? +@import 'address_blocks'; +@import 'checkout_sidebar'; +@import 'checkout_forms'; +@import 'checkout_begin'; +@import 'checkout_shipping'; +@import 'checkout_payment'; +@import 'checkout_confirm'; +@import 'checkout_thankyou'; + + +select[name="city_state"] { max-width: 12em; } + + +.webstore-checkout footer.submit-small { + height: 65px; + + input[type="submit"], .button { + font-size: .9375rem; + padding: 15px 0; + } + + //MO + p { margin: 1rem 0; } +} + +p.tip { + margin: .25em 0 1.25em; + font-size: .8375rem; + color: #aaa; +} + +.or-block { + border-top: 1px solid #ccc; + margin-top: 1rem; + height: .5rem; + + &:before { + text-align: center; + content: 'OR'; + color: #888; + display: block; + background-color: #fff; + margin: -.5rem auto 0; + font-size: .875rem; + width: 2.5rem; + height: 1rem; + line-height: 1; + } +} + +.modal-conditional-block { + overflow: hidden; + height: 0; + opacity: 0; + @include transition(opacity .6s); + + &.active { + height: auto; + opacity: 1; + overflow: visible; + } + +} + + +.note { + background-color: #ffc; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + padding: 15px 30px; + margin: 0 -30px .5em; + + h5 { + text-transform: uppercase; + margin: 0 0 .25em; + } + p { + margin: 0; + } +} + +.button-paragraph { + margin-left: 1em; + + button { + display: inline-block; + float: none; + margin: 0 .5em; + } +} + +#checkout section > header { + @include media(medium) { + padding: 0; + a.exit{ + margin-right: 0!important; + } + } +} + diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_checkout_begin.scss b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_begin.scss new file mode 100644 index 00000000..46b5891d --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_begin.scss @@ -0,0 +1,70 @@ +@include media(medium) { + #start { + & > footer p { + margin-right: -60px; + margin-left: -60px; + } + } +} + + +#start { + //MO to avoid text overlapping + //and too narrow inputs on login page. + .section-inner{ + padding: 15px 10px 20px; + @include media(verysmall){ + padding: 15px 20px 20px; + } + } + + footer.submit { + text-align: center; + height: 91px; + + p { + color: #999; + font-size: .9375rem; + margin: 0 0; + } + a.alternate { + text-align: center; + background: #fff; + color: #999; + margin: 12px auto 0; + display: inline-block; + border-bottom: 1px dotted #ccc; + } + + opacity: 1; + + & > div { + @include transition(opacity .5s); + + } + + .invisible { + overflow: hidden; + height: 0; + visibility: none; + opacity: 0; + } + + } + + li.password-block { + margin-top: -1px; + input { border-bottom: none; } + + .reset { + .inset { right: 0; } + p { margin-right: 5em; } + } + } + + //MO + .form-error{ + border-bottom: none; + margin-bottom: 0; + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_checkout_confirm.scss b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_confirm.scss new file mode 100644 index 00000000..f5396a7c --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_confirm.scss @@ -0,0 +1,408 @@ +#confirm { + .section-inner{ width:100%; } //MO fix for IE10 order summary. + + .section-content { + width: inherit; //MO fix for IE10 order summary. + border-right: none; + } + + h4 { + text-transform: uppercase; + color: #666; + margin: 1em 0 .5em; + font-size: .875rem; + } + + .final-confirmation { + border-bottom: 1px solid #ddd; + padding-bottom: 30px; + + label { + margin-top: .5em; + text-align: left; + padding-left: 25px; + input { + margin-top: 3px; + margin-left: -25px; + float: left; + } + + &:hover { cursor: pointer; } + } + + .terms { + line-height: 1.4; + font-size: .75rem; + margin: 0; + margin-left: 25px; + } + + .button.paypal { + font-size: 0.875rem; + width: 11rem; + background-color: #f8f8f8; + overflow: hidden; + border: 1px solid #ccc; + color: #666; + &:hover { + background-color: darken(#f8f8f8, 10%); + } + span { + background: url("images/altpayments/logo-paypal.png") no-repeat scroll center center; + background-size: 100% auto; + position: relative; + display: inline-block; + height: 25px; + margin-left: 5px; + top: -2px; + vertical-align: middle; + width: 75px; + } + + } + @include media(small) { + .button.paypal { + width: 37%; + margin-right: 11%; + float: right; + font-size: 1.25rem; + span { + margin-left: 10px; + width: 101px; + } + } + } + } + + .comments { + margin: 1.25rem 0 1.25rem 25px; + + a, textarea { font-size: .875rem; } + + a:before { + @extend %icon-prereqs; + @extend %icon-chat-bubble; + + float: left; + margin-top: 4px; + margin-right: 5px; + border-bottom: none; + } + + textarea { + display: none; + width: 16rem; + padding: 10px; + border: $input-border; + } + } + + + %twocolumn { + @extend %clearfix; + + .column { + width: 96%; + float: left; + margin-left: 2%; + + @include media(verysmall) { + width: 48%; + } + + @include media(small) { + margin-left: 0; + &:first-child { + margin-right: 4%; + } + } + } + } + + .order-details { + @extend %twocolumn; + margin: .5rem 0; + + h2 { + margin: 0; + } + } + + .shipping { + p{ + a { display: block; } + } + } + + .payment { + p { + font-size: 0.75rem; + margin: 0 0 1.25em; + border: 1px solid #ddd; + padding: 15px 5px 15px 75px; + + a { + display: block; + margin-top: 5px; + } + + } + + //MO + p.sim { + padding: 7px 5px 8px 15px; + + .instructions { + font-size: 0.6rem; + } + } + + .payment-note { + margin-bottom: 10px; + display: inline-block; + font-size: 0.75rem; + } + + .card-tiny { + display: inline-block; + padding: 8px 4px; + margin-left: -60px; + width: 45px; + border: 1px solid #ccc; + float: left; + } + .card-only { + display: inline-block; + margin-left: -60px; + width: 45px; + float: left; + } + } + + .lines { + tbody { + border-bottom: 1px solid #ddd; + } + + td { + border-top: 1px solid #ddd; + line-height: 40px; + } + + //MO override bootstrap + td.controls { + vertical-align: middle; + } + + .quantity { + font-weight: bold; + text-align: center; + padding: 0; + line-height: 4rem; + min-width: 1.75rem; + + input { + display: none; + width: 2.60rem; + padding: 3px 3px; + text-align: center; + font-weight: bold; + + &::-webkit-inner-spin-button, &::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; + } + //MO remove spinner from number inputs mozilla + -moz-appearance:textfield; + } + } + + .image { + display: none; + white-space: nowrap; + width: 65px; + vertical-align: middle; //MO bootstrap override + @include media(small) { + display: table-cell; + } + + &:before { + display: inline-block; + padding: 0 .5em 0 0; + height: 40px; + font-weight: normal; + font-size: 1.25rem; + content: '\d7'; + float: left; + } + + img { + float: left; + max-height: 40px; + max-width: 40px; + } + } + + .description { + line-height: 1.3; + font-size: .875rem; + padding-right: .5em; + padding-left: .5em; + font-weight: bold; + //override base.css l.25 + vertical-align: middle; + + .price { + font-weight: normal; + font-size: .8375em; + color: #888; + } + a > strong{ + margin-right: 15px; + } + } + + .subtotal { + text-align: right; + font-weight: bold; + } + + .controls { + padding: 0 1em; + text-transform: uppercase; + font-size: .75rem; + width: 2.5rem; + + a { float: right; } + + a.edit { + line-height: 1; + padding: 6px 4px 5px; + border: 1px solid #ccc; + color: #aaa; + + &:hover { + color: $blue; + border-color: $blue; + } + } + a.remove { + @extend %remove-icon; + display: none; + } + } + + + tr.active { + .quantity { + strong { display: none; } + input { display: inline-block; } + } + .controls { + a.edit { display: none; } + a.remove { display: block; } + } + } + } + + .lines-footer { @extend %clearfix; } + + .totals { + margin-top: .5rem; + float: right; + width: 100%; + @media(min-width:640px) { + float: right; + width: 16rem; + } + + td, th { + color: #666; + line-height: 1.75rem; + font-size: 1rem; + } + + small { + font-size: .75rem; + color: #999; + font-weight: normal; + } + + th{ + text-align:left; + } + + td { + text-align: right; + border-top: none; + line-height: 1; + } + + .total { + td, th { + color: #333; + font-size: 1.25rem; + line-height: 1.5em; + + } + td { font-weight: bold;} + + } + } +} + + +//MO +#place-order{ + width: 48%; + float: right; + margin-left: 4%; + margin-bottom: 25px; + text-shadow: 0 0; + &:focus{ + font-size: 1.125rem; + } +} +#checkout .quantity input{ + height:30px; + font-size:16px; +} +#checkout .address-block button a{ + color: white; + text-decoration: none; + //MO override base.css line 183. + &:focus{ + outline:none; + } + +} +.webstore-overlay table.lines a { + color: #555; + text-decoration: none; +} +#confirm .promo input[type="text"] { + height: 41px; +} + +.thankyou input[type="password"]{ + height:40px; +} +.thankyou h2 { + font-weight: normal; + font-size: 1.5rem; + color: #589141; + margin: -.25em 0 .25em; +} + +.webstore-overlay #confirm form.promo{ + p{ + line-height: 1.3; + font-size: 0.6875rem; + } +} +p.webstore-label.confirmation span { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: block; +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_checkout_forms.scss b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_forms.scss new file mode 100644 index 00000000..f51d00c5 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_forms.scss @@ -0,0 +1,174 @@ +.field-containers-small { + @extend %clearfix; + + .field-container { + input, select { + height: 2.75rem; + font-size: .875rem; + padding: .25em 8px; + } + select { + font-size: .875rem; + color: #444; + } + p.hint { + color: #999; + top: 0px; + right: 10px; + font-size: .8375rem; + line-height: 1rem; + } + } +} + + +.fieldgroup { + @extend %clearfix; + + border: 1px solid #ddd; + border-top: none; + overflow: hidden; + + //MO + &.city-fieldgroup ol li:nth-child(1){ + width: 25%; + @include media(verysmall){ + width: 20%; + } + input{ + width:100%; + &:focus{ + width: 100%!important; + } + } + } + &.city-fieldgroup ol li:nth-child(2){ + width: 50%; + @include media(verysmall){ + width: 65%; + } + input{ + width: 100%; + &:focus{ + width: 100%!important; + } + } + } + &.city-fieldgroup ol li:nth-child(3){ + width: 25%; + @include media(verysmall){ + width: 15%; + } + input{ + width: 100%; + &:focus{ + width: 100%!important; + } + } + } + .field-container { + float: left; + border-right: 1px solid #ddd; + + input, select { + width: auto; + border: none; + margin: 0; + } + } + + .field-container:last-child { + border-right: none; + } + +} + +.field-container.field-container-select { + select { + padding-right: 1.75rem; + + &:hover, &:focus { + background: none; + cursor: pointer; + } + } + + &:after { + font-family: FontAwesome; + display: inline-block; + content: "\f0d7"; + font-size: 21px; + color: #bbb; + position: absolute; + right: .5rem; + top: 0; + pointer-events:none; + line-height: 2.75rem; + } + + &.field-container-select-no-handle { + select { padding-right: 0; } + &:after { + content: ' '; + } + } +} + +.fieldgroup .field-container.country { + float: right; + select { max-width: 7rem; } +} + + //TODO:MO temporary until no-handle style is fully implemented on country inputs. +.country-container{ + border: 1px solid #ddd; + border-top: none; +} + +.field-container select.modal-accent-color { color: $blue; } + +ol.field-container-gap { + margin-bottom: 1rem; +} + +.field-container-split { + width: 50%; + float: left; +} +.field-container-split-latter { +// MO removed this, company input is misaligned with +// names input with this +// margin-left: -1px; +} +.field-container-toggle { + font-size: .8125rem; + + a { + display: inline-block; + padding: 9px 9px 3px; + } +} + +.company-container { + clear: both; +} + +.field-container-select { + height: 2.75rem; + line-height: 2.75rem; + + select { font-size: .875rem; } +} + +.field-container-narrowed { + width: 75%; + float: left; +} + +.webstore-modal-overlay .address-form .fieldgroup .field-container input:focus, +.webstore-modal-overlay .address-form .fieldgroup .field-container input:focus:required:invalid:focus{ + width: auto; + border: none; + margin: 0; +} + diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_checkout_payment.scss b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_payment.scss new file mode 100644 index 00000000..ce717c51 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_payment.scss @@ -0,0 +1,405 @@ +.cvc-container { + position: relative; +} +.cvc-hint { + position: absolute; + top: -50%; + left: 100%; + width: 180px; + + display: none; + + margin-left: 5px; + + box-shadow: 0 2px 4px rgba(0,0,0,.1); + border: 1px solid #ccc; + background-color: #fff; + padding: 10px 15px 0 15px; + + p { + margin: 0 0 .75em; + font-size: .6875rem; + } + + img { + width: 100px; + margin-bottom: -5px; + } +} + +#payment { + .outofbandpayment { + padding-top: 5px; + padding-bottom: 45px; + margin-bottom: -8px; + position: relative; + + .buttons { + @extend %clearfix; + + @include flexbox(); + @include justify-content(center); + } + + button { + display: inline-block; + text-align: center; + font-size: .875rem; + padding: 10px; + @include border-radius(2px); + width: 140px; + margin-top: 0; + + &.paypal { + width: 11rem; + background-color: #f8f8f8; + overflow: hidden; + border: 1px solid #CCC; + color: #666; + &:hover { + background-color: darken(#f8f8f8, 10%); + } + span{ + background: url("images/altpayments/logo-paypal.png") no-repeat scroll center center; + background-size: 100% auto; + position: relative; + display: inline-block; + height: 25px; + margin-left: 5px; + top: -2px; + vertical-align: middle; + width: 75px; + } + } + } + //MO + .or-block { + position: absolute; + left: 0; + right: 0; + bottom: 0; + } + + .spacer { + margin: 12px 0; + } + } + + h4 { + margin: 0 0 .5em; + } + + .address-form { + @extend %clearfix; + margin-bottom: 15px; + + //MO + h4 { margin-top: 20px; } + } + + //MO + .address-form.invisible { + display: none; + visibility: visible; // override bootstrap + .fieldgroup .field-container input, .fieldgroup .field-container select { + height: 2.375rem; + font-size: .75rem; + } + } + + .payment-methods { + input[type=radio] { + vertical-align: baseline; + margin: 4px 5px 0.5em 0; + width: 13px; + height: 13px; + + &:checked + label { + color: #333; + } + } + + label { + color: #777; + font-size: 0.875rem; + padding-left: 10px; + margin-bottom: 0.5rem; + } + + //MO payment-simple page cc label + .sim-cc { + font-size: 19px; + font-weight: bold; + margin-left: 10px; + } + + //MO payment-simple page cc radio + input.sim-cc-radio { + margin-top: 8px; + } + } + + .checkset { + input[type=radio], input[type=checkbox] { + display: none; + + &:checked + label.checklabel { + color: #333; + + &:before { + border-color: #ccc; + @extend %icon-check-mark; + } + } + } + } + + label.checklabel { + display: block; + margin: 0 0 .5em; + color: #999; + @include transition(all .4s); + + &:before { + @extend %icon-prereqs; + margin: 0 8px -4px 0; + @include border-radius(16px); + content: ""; + display: inline-block; + width: 20px; + + height: 20px; + border: 2px solid #ccc; + font-size: 24px; + color: #444; + text-align: center; + line-height: 15px; + text-indent: -2px; + float: left; + } + + &:hover { + color: #444; + &:before { border-color: #999; } + } + + &.error { color: #999; } + } + + .alt-payment-methods { + padding: 15px 30px 10px; + border: 1px solid #ccc; + + h4 { + text-transform: uppercase; + color: #444; + font-size: .8125rem; + margin: 0 0 1em; + } + + .subform { + input { + width: 12em; + min-height: 35px; + padding: 6px 7px; + display: none; + } + } + } + + //MO + .alt-payment-methods.borderclose { + border-top: 0; + } + + } + + .address-blocks { + + + p { + font-size: .6875rem; + padding: 10px; + + &:before { + display: none; + } + } + } + + .creditcard { + @extend %clearfix; + + border: 1px solid #ccc; + border-bottom: none; + padding: 30px 15px 0; + margin: 0; + + @include media(verysmall){ + padding: 30px 30px 0; + } + + &.creditcard-nosubmit { + border-bottom: 1px solid #ccc; + margin-bottom: 15px; + } + + h3 { + margin: 0 0 .25em; + } + + p.large { + margin: 0; + font-size: 1rem; + } + + input.creditcard-number { + padding-left: 10px; + padding-right: 10px; + font-size: 1.325rem; + + &::-webkit-input-placeholder { + font-size: 1.2rem; + line-height: 1.5; + font-family: $default-font-family; + } + &:-moz-placeholder { + font-size: 1.2rem; + line-height: 1.5; + font-family: $default-font-family; + } + &:-ms-input-placeholder { + font-size: 1.2rem; + line-height: 1.5; + font-family: $default-font-family; + } + } + + .card-details { + input, input#MultiCheckoutForm_cardExpiry:focus, + input#MultiCheckoutForm_cardNumber:focus, input#MultiCheckoutForm_cardCVV:focus { + background-color: #fff; + } + input#MultiCheckoutForm_cardNumber:focus{ + font-size: 1.325rem; + } + @include media(verysmall){ + background-color: #f8f8f8; + border: 1px solid #ddd; + padding: 20px 20px 15px; + $height: 204px; + height: $height; + max-width:($height*1.76) + } + margin-top: 20px; + @include border-radius(10px); + + ol.field-container-gap { + margin-bottom: 1rem; + } + + input:focus { + background-color: #fff; + outline-color: rgb(91, 157, 217); + outline-offset: -2px; + outline-style: auto; + outline-width: 5px; + } + + p.cardholder { + margin: .65em 0 0; + text-transform: uppercase; + font-size: 1.125rem; + color: #999; + + a { + font-family: $default-font-family; + font-size: .8375rem; + text-transform: none; + border-bottom: 1px dotted #999; + } + } + .cardholder-field { + margin-top: 1em; + + input { + height: 2.75rem; + font-size: .9375rem; + padding: 0 10px; + } + } + + } + .cart-details-secondary { + + li { + float: left; + + &:first-child { margin-right: 1rem; } + } + + .card-logo { + float: right; + height: 44px; + + + img, div { + display: none; + max-height: 44px; + position: relative; + top: 50%; + @include transform(translateY(-50%)); + + &.active { + display: block; + } + } + } + } + } + + .shippingasbilling { + display: inline-block; + font-size: .8375rem; + color: #999; + font-weight: bold; + width: 100%; + margin: 15px 0 20px; + padding: 20px 15px 15px 0; + @include media(verysmall){ + padding: 20px 10px 15px; + } + + //MO + div.text{ + font-size: .8rem; + font-weight: normal; + margin-top: 0.40em; + } + + :checked + .text { + color: #444; + } + + .address-abbr { + color: #999; + font-weight: normal; + font-size: .75rem; + margin: .125em 0 .75em 30px; + } + + input { + float: left; + line-height: 2rem; + margin: .45em .5em 1em 0; + font-size: 1.25rem; + } + } + +//temporary fix, confirm exact styling with Kevin and Luke +input#MultiCheckoutForm_cardNumber { + &:focus{ + padding-left: 10px; + padding-right: 10px; + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_checkout_shipping.scss b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_shipping.scss new file mode 100644 index 00000000..99174cbd --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_shipping.scss @@ -0,0 +1,108 @@ +#shipping { + p.introduction { + margin: -.5rem 0 1.5rem; + font-size: .9375rem; + } + + table.shipping-options { + margin: 0; + border: 1px solid #ccc; + display: table; + + td, th { + font-size: .875rem; + padding: .75em; + } + + thead { + th { + color: #666; + font-weight: normal; + font-size: .8375rem; + background-color: #eee; + border-bottom: 1px solid #ccc; + } + } + + tbody { + td, th { + color: #999; + border-bottom: 1px solid #eee; + padding: 1em .75em; + } + th { + color: #555; + font-size: .9375rem; + + input { font-size: 1rem; } + } + + } + + label { + input { margin-right: 8px; } + &:hover { cursor: pointer; } + } + + } + + label.checkbox { + text-align: left; + font-size: 1rem; + margin-bottom: 1rem; + + input.residential-toggle { + margin: 0.2rem 0.5rem 0 0; + } + } +} + +.shipping-instore { + label.checkbox { + text-align: left; + font-weight: bold; + font-size: 1rem; + + &:hover { cursor: pointer; } + + p { + font-weight: normal; + font-size: .8375rem; + margin: .125em 0 .75em 24px; + } + } + + .shipping-instore-details { + @include clearfix(); + margin: .25em 0 0 24px; + + p.contact-info { + float: left; + width: 100%; + margin: 0 0 1.5em; + @include media(verysmall) { + width: 50%; + } + } + } + + h4 { + margin: 0 0 .25em; + font-size: .8375rem; + color: #333; + text-transform: uppercase; + } +} + + +//MO +.overlay #checkout label { + color: #555; font-size: 15px; +} + +#MultiCheckoutForm_shippingFirstName, #MultiCheckoutForm_pickupFirstName{ + border-right: none; +} +#MultiCheckoutForm_shippingAddress1:focus{ + border-bottom: none; +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_checkout_sidebar.scss b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_sidebar.scss new file mode 100644 index 00000000..4abd2504 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_sidebar.scss @@ -0,0 +1,136 @@ +.webstore-sidebar-summary { + + @include flexbox(); + @include flow(column); + @include justify-content(space-between); + + h2, h3 { + color: #666; + text-transform: uppercase; + } + + h2 { + margin: 0 0 .25em; + font-size: 1rem; + } + h3 { + font-size: .875rem; + margin: 0 0 .5em; + } + + a { + text-decoration: none; + border-bottom: 1px dotted #ccc; + padding-bottom: 1px; + + &:hover { + border-bottom: 1px solid $blue; + } + } + + + table { + margin: 0; + color: #888; + + td, th { + font-size: .8375rem; + padding: .5em 0; + } + td { text-align: right; } + + tbody { + th { + font-weight: normal; + //MO + text-align: left; + } + + td, th { + border-bottom: 1px solid #eee; + } + } + + tfoot { + td, th { + color: #333; + font-weight: bold; + text-transform: uppercase; + } + //MO + th { + text-align: left; + } + } + } + + .summary { + max-width: 100%; //MO fix for IE10 order summary. + padding: 30px 15px 15px; + } + + .pricechange { + width: 239px; + font-size: 0.8375rem; + color: #666; + background-color: #ffc; + padding: 15px; + margin: -30px 0px 10px -15px; + border-bottom: 1px solid #ccc; + + @media(max-width: 640px) + { + width: 100%; + margin-left: 0px; + } + } + + .promo { + margin-top: 2rem; + min-width: 100%; + + input { border-color: #eee; + // MO override bootstrap + height:41px; + } + + p.description { display: none; } + } + + .contact { + padding: 15px 15px 20px; + + p { + font-size: .8375rem; + margin: 0; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + h3 { + text-transform: none; + margin: 0 0 .125em; + } + } + + .account { + margin: 0 0 0; + background-color: #f8f8f8; + border-top: 1px solid #eee; + padding: 15px; + + @include align-self(flex-end); + + p { + margin: 0 0 .75em; + font-size: .875rem; + line-height: 1.4; + + &.hint { + margin: 0; + font-size: .8375em; + color: #aaa; + } + } + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_checkout_thankyou.scss b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_thankyou.scss new file mode 100644 index 00000000..42b16331 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_checkout_thankyou.scss @@ -0,0 +1,205 @@ +#thankyou { + .section-content { + width: inherit; //MO fix for IE10 order summary. + border-right: none; + } + + +} +$check-width: 3.25rem; + +.thankyou { + padding-bottom: 2rem; + margin-bottom: 1.5rem; + border-bottom: 1px solid #ccc; + + h1 { + font-size: 1.75rem; + margin: .25em 0 .75em; + @include media(small){ + font-size: 2.25rem; + } + } + + + h2, h3, p, .create-account ol { + margin-left: 0; + } + + @include media(small){ + h2, h3, p, .create-account ol{ + margin-left: $check-width; + } + } + + + h2 { + font-weight: normal; + font-size: 1.3rem; + color: $confirmation-color; + margin: -.25em 0 .25em; + @include media(small){ + font-size: 1.5rem; + } + + &:before { + margin-top: .35rem; + padding-left: .25rem; + margin-right: -.6rem; + float: left; + width: $check-width; + font-size: 1.85rem; + @include media(small){ + margin-top: -.125rem; + padding-left: .25rem; + margin-right: -.25rem; + font-size: 2.5rem; + } + + + + @extend %icon-prereqs; + @extend %icon-check-mark; + } + } + + h3 { + margin-bottom: .125em; + font-size: 1rem; + color: #444; + font-weight: normal; + } + p { + color: #999; + font-size: .8375rem; + margin-top: 0; + margin-bottom: .5em; + + &.large { + font-size: 1.125rem; + color: #444; + margin-bottom: .25rem; + + + } + + + } + + a.print { + font-size: .8125rem; + margin-bottom: 1em; + margin-top: .5em; + border: 1px solid #ddd; + color: #888; + padding: 10px 12px; + display: inline-block; + + &:before { + @extend %icon-prereqs; + @extend %icon-print; + + float: left; + margin-top: 1px; + font-size: 18px; + margin-right: 6px; + } + + &:hover, &:active { + color: $calltoaction-color; + border-color: $calltoaction-color; + } + } + +} +.create-account { + @extend %clearfix; + + li { + &:last-child{ + clear: both; + margin-top: 0.75em; + @include media(small){ + clear: none; + margin-top: 0; + } + } + @include media(verysmall){ + float: left; + margin-right: .5rem; + } + } + input { + border: $input-border; + padding: 10px; + font-size: .8375rem; + width: 12em; + //MO to override style.css l.24. + &:focus{ + padding: 10px; + font-size: .8375rem; + } + } + button { + font-size: .8375rem; + padding: 11px 10px; + color: #666; + background-color: #eee; + // border: 1px solid #ccc; + + &:hover { + color: #fff; + } + } + .hint { + margin: .5em 0 0; + font-size: .675rem; + color: #999; + } +} +.create-account-confirm { + margin-left: $check-width; + font-size: 1rem; + padding: 12px; + color: #999; + border: 1px solid #ccc; + max-width: 24rem; + + h3, p { margin: 0; } + h3 { font-weight:bold; } +} + +.receipt { + h2 { + font-size: 1.3rem; + margin: 0 0 -.5em; + @include media(small) { + font-size: 1.5rem; + } + + .order-id { + border: 1px solid #ddd; + float: right; + padding: 6px 10px; + margin-bottom: -1rem; + font-size: 1rem; + text-transform: uppercase; + color: #bbb; + font-weight: normal; + line-height: normal; //MO override bootstrap + + strong { color: #555; } + + @include media(smallermobile) { + width: 100%; + text-align: center; + margin: 10px 0; + } + } + } +} + +//MO override +.create-account p.form-error { + width: 20rem; +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_config.scss b/core/protected/extensions/umber/assetsToCompile/modal/_config.scss new file mode 100755 index 00000000..cc8e2229 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_config.scss @@ -0,0 +1,157 @@ +@charset "utf-8"; + +$break-mobile: 0px; // This is used in limited situations, generally styles layer-up, not down. +$break-narrow-modal: 360px; +$break-verysmall: 450px; +$break-small: 640px; +$break-medium: 720px; +$break-cart-width: 840px; +$break-large: 1025px; +$break-verylarge: 1240px; + + +@import 'compass'; +@import '../mixins/html5-input-types'; + + +@mixin media($media) { + @if $media == 'mobile' { + @media (max-width: $break-small) { @content; } + } + @elseif $media == 'smallermobile' { + @media (max-width: $break-verysmall) { @content; } + } + @elseif $media == 'narrow-modal' { + @media (min-width: $break-narrow-modal) { @content; } + } + @else if $media == 'verysmall' { + @media (min-width: $break-verysmall) { @content; } + } + @else if $media == 'small' { + @media (min-width: $break-small) { @content; } + } + @else if $media == 'medium' { + @media (min-width: $break-medium) { @content; } + } + @else if $media == 'cartwidth' { + @media (min-width: $break-cart-width) { @content; } + } + @else if $media == 'large' { + @media (min-width: $break-large) { @content; } + } + @else if $media == 'short' { + @media (max-height: $break-short) { @content; } + } + @else { + @content; + } +} + +.webstore-modal * { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-bottom: 0; +} + +// Colors +$font-color: #000; + +$blue: #3287CC; +$blue-steel: #435261; + +$purple: #897897; +$green: #589141; +$green-pale: #DBEBD6; +$pink: #CC89A6; +$red: #A44039; +$orange: #E27E38; +$yellow: #F6B444; + +$light-grey-border: #ccc; +$light-grey-text: #aaa; + +// Input borders +$input-border:1px solid $light-grey-border; + +// Link colors +$link-color: $blue; +$link-hover-color: darken($blue,10%); +$link-active-color: darken($blue,20%); + + + +.webstore-modal-overlay{ + a { + color: $link-color; + text-decoration: none; + + &:active { color: $link-active-color; } + &:hover { + color: $link-hover-color; + //MO boostrap override + text-decoration: none; + } + + &.hasborder { + padding-bottom: 1px; + border-bottom: $input-border !important; + + &:hover, &:active { + border-bottom-color: $blue; + } + } + } + +} + +$modal-padding: 20px; + +$modal-width: 720px; +$modal-width-narrow: 480px; + +$error-color: #B4282E; +$success-color: #ffffcc; + +$calltoaction-color: $blue; +$confirmation-color: $green !default; + +$default-font-family: 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;; + +$webstore-modal-font: $default-font-family; +$webstore-modal-header-font-weight: normal; +$webstore-modal-header-font-family: $default-font-family; + + +%clearfix { + &:after { + content: ""; + display: table; + clear: both; + } +} + +%remove-icon { + text-decoration: none; + display: block; + border: 2px solid #eee; + color: #ccc; + background-color: #fff; + @include border-radius(20px); + height: 28px; + width: 28px; + line-height: 22px; + padding-left: 5px; + font-size: 25px; + font-weight: bold; + margin: 0; + + @include transition-property(border-color, background-color,color); + @include transition-duration(.3s); + + &:hover { + color: #fff; + border-color: $red; + background-color: $red; + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_estimator.scss b/core/protected/extensions/umber/assetsToCompile/modal/_estimator.scss new file mode 100644 index 00000000..fe1c5065 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_estimator.scss @@ -0,0 +1,308 @@ +.webstore-estimator { + &.recalculate { + td { + visibility: hidden; + color: #f8f8f8; + + &:after { visibility: visible; } + } + td.csspinner:after { + top: 27px; + left: 45px; + } + } + + form { + margin-top: 6px; + display: block; + } + input, button { + float: left; + + &:focus { + outline: none; + box-shadow: inset 1px 1px 2px rgba(0,0,0,.1); + border: 1px solid #bbb; + } + } + input { + border: $input-border; + padding: 9px 8px; + &:focus{ + padding: 9px 8px; + } + } + + select.webstore-estimator-country-form, select#webstore-estimator-country-form { + -webkit-appearance: menulist; + -moz-appearance: menulist; + appearance: menulist; + margin: 8px 0 0; + border: solid 1px #ccc; + } + + button { + padding-left: 8px; + padding-right: 8px; + } + + a.webstore-estimator-country { + float: right; + color: #888; + text-decoration: none; + border-bottom: 1px dotted #ccc; + font-size: .75rem; + display: inline-block; + padding: 10px 1px 0; + font-weight: normal; + line-height: normal; + &:active, &:hover { + color: #888; + font-weight: normal; + } + } +} + +.webstore-shipping-choices{ + background-color: rgba(0,0,0,.7); + height: 100%; + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 20; + + + @include media(small) { + position: relative; + background: none; + top: auto; + right: auto; + left: auto; + height: auto; + } + + form { + z-index:10; + position: absolute; + left: 0; + top: 0; + right: 0; + background-color: #fff; + margin: 0; + padding: 0 0 67px; + box-shadow: 1px 1px 3px rgba(0,0,0,.1); + + ol{ + min-height: 120px; + } + + @include media(small) { + left: -265px; + top: -24px; + width: 250px; + padding: 0 0 39px; + + &:after, &:before { + left: 249px; + top: 75px; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + } + + &:after { + border-color: rgba(255, 255, 255, 0); + border-left-color: #ffffff; + border-width: 10px; + margin-top: -10px; + } + &:before { + border-color: rgba(204, 204, 204, 0); + border-left-color: #bbb; + border-width: 11px; + margin-top: -11px; + } + } + } + + ol { + margin: 0; + padding: 0 0 4px; + list-style: none; + border: 1px solid #ccc; + border-bottom: none; + + li:last-child label { border-bottom: none; } + } + + li { + display: inline; + //MO + margin-bottom: 0; + + &.webstore-shipping-choices-more, + &.webstore-shipping-choices-notice { + display: block; + padding: 8px 10px; + color: #555; + background-color: #eee; + border-top: 1px solid #ccc; + font-size: .75rem; + margin-bottom: 0; + } + &.webstore-shipping-choices-notice { + border-top: none; + border-bottom: 1px solid #ddd; + background-color: #ffc; + } + + small{ + font-weight: normal; + color: #999; + } + } + + button, input[type="button"] { + width: 100%; + position: absolute; + bottom: 0; + left: 0; + right: 0; + + @include media(small) { + font-size: .875rem; + padding: 10px; + } + } + + //MO + .radio input[type="radio"]{ + float: left; + margin-left: -18px; + margin-top: 2px; + } + + label { + padding: 8px 48px 8px 24px; + color: #666; + margin: 0; + font-weight: bold; + display: block; + + small { + float: right; + font-weight: normal; + color: #999; + font-size: .9375rem; + margin-right: -42px; + @include media(small) { font-size: .75rem; } + } + + &:hover{ + background-color: #eee; + cursor: pointer; + } + } + + input{ + margin-right: 3px; + } +} + +.shipping-postal-entry{ + position: relative; + display: block; + height: 47px; + width: 100%; + overflow: hidden; + + button.inset{ + right: 8px; + top: 7px; + } + + input, input:focus{ + font-size: .875rem; + width: 100%; + outline: none; + box-shadow: inset 1px 1px 2px rgba(0,0,0,.1); + border: 1px solid #bbb!important; + } +} + +.webstore-modal-cart-confirm .shipping-postal-entry input, .shipping-postal-entry input:focus { + padding: 10px; +} + + +@media (min-width: 560px){ + .webstore-shipping-choices{ + input[type="button"] { + font-size: .875rem; + padding: 10px; + } + + form { + left: -265px; + top: -24px; + width: 250px; + padding: 0 0 39px; + } + } + + input.close-shipping-options.close-shipping-choices:focus{ + padding: 10px!important; + font-size: 0.875rem!important; + } + .close-shipping-options, .close-shipping-options:focus{ + max-height: 39px; + font-size: 0.875rem; + } +} + +@media (max-width: 560px){ + .webstore-shipping-choices label{ + font-size: 16px; + } + .webstore-shipping-choices li small{ + font-size: .9375rem; + } +} + + +.webstore-modal-cart-confirm{ + .shipping-postal-entry button.inset{ + left: calc(100% - 80px); + top:-34px; + position: relative; + } + a.webstore-estimator-country { + margin-bottom: 10px; + } + .shipping-postal-entry button.inset-spinner{ + left: calc(100% - 37px); + } +} + +.editcartmodal{ + .shipping-postal-entry button.inset{ + left: calc(100% - 85px); + top:-34px; + position: relative; + } + a.webstore-estimator-country { + margin-bottom: 10px; + padding-top: 5px; + } + .shipping-postal-entry button.inset-spinner{ + left: calc(100% - 42px); + } +} + + + + diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_icons.scss b/core/protected/extensions/umber/assetsToCompile/modal/_icons.scss new file mode 100644 index 00000000..38753b4c --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_icons.scss @@ -0,0 +1,29 @@ +//TODO: MO FONTS +@font-face { + font-family: "ls-webstore"; + src:url("fonts/ls-webstore.eot"); + src:url("fonts/ls-webstore.eot?#iefix") format("embedded-opentype"), + url("fonts/ls-webstore.woff") format("woff"), + url("fonts/ls-webstore.ttf") format("truetype"), + url("fonts/ls-webstore.svg#ls-webstore") format("svg"); + font-weight: normal; + font-style: normal; + +} + +%icon-prereqs { + font-family: "ls-webstore" !important; + font-style: normal !important; + font-weight: normal !important; + font-variant: normal !important; + text-transform: none !important; + speak: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +%icon-pencil { content: "\e000"; } +%icon-check-mark { content: "\e001"; } +%icon-chat-bubble { content: "\e002"; } +%icon-print { content: "\e003"; } diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_lines.scss b/core/protected/extensions/umber/assetsToCompile/modal/_lines.scss new file mode 100644 index 00000000..3cf05037 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_lines.scss @@ -0,0 +1,143 @@ +.webstore-lines { + tbody { + border-bottom: 1px solid #ddd; + } + + td { + border-top: 1px solid #ddd; + line-height: 40px; + } + + .quantity { + font-weight: bold; + text-align: center; + padding: 0; + line-height: 4rem; + min-width: 1.75rem; + + input { + display: none; + width: 1.75rem; + padding: 3px 3px; + text-align: center; + font-weight: bold; + + &::-webkit-inner-spin-button, &::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; + } + -moz-appearance:textfield; + } + } + + .image { + white-space: nowrap; + width: 65px; + + &:before { + display: inline-block; + padding: 0 .5em 0 0; + height: 40px; + font-weight: normal; + font-size: 1.25rem; + content: '\d7'; + float: left; + } + + img { + float: left; + max-height: 40px; + max-width: 40px; + } + } + + .description { + line-height: 1.3; + font-size: .875rem; + padding-right: .5em; + padding-left: .5em; + font-weight: bold; + + .price { + font-weight: normal; + font-size: .8375em; + color: #888; + } + } + + .subtotal { + text-align: right; + font-weight: bold; + } + + .controls { + padding-left: 1em; + text-transform: uppercase; + font-size: .75rem; + width: 2.5rem; + + a { float: right; } + } + a.edit { + line-height: 1; + padding: 6px 4px 5px; + border: 1px solid #ccc; + color: #aaa; + + &:hover { + color: $blue; + border-color: $blue; + } + } + a.remove { + @extend %remove-icon; + display: none; + } + + + tr.active { + .quantity { + strong { display: none; } + input { display: inline-block; } + } + .controls { + a.edit { display: none; } + a.remove { display: block; } + } + } +} + +.lines-footer { @extend %clearfix; } + +.webstore-lines-totals { + margin-top: .5rem; + float: right; + max-width: 16rem; + + td, th { + color: #666; + line-height: 1.75rem; + font-size: 1rem; + } + small { + font-size: .75rem; + color: #999; + font-weight: normal; + } + td { + text-align: right; + border-top: none; + line-height: 1; + } + + .total { + td, th { + color: #333; + font-size: 1.25rem; + line-height: 1.5em; + + } + td { font-weight: bold;} + + } +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_modal_overlay_shared.scss b/core/protected/extensions/umber/assetsToCompile/modal/_modal_overlay_shared.scss new file mode 100755 index 00000000..28bbf7c3 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_modal_overlay_shared.scss @@ -0,0 +1,439 @@ +// Shared styles used by modals and overlays +.webstore-modal-overlay { + button, textarea { + @include border-radius(0); + //MO + text-transform:none; + } + + //webstore Montreal override see .webstore-modal * in _basic_modal.scss + * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + + input[type="submit"] { + outline: none; + } + + button, .button, input[type="button"], .button:focus, input[type="button"]:focus { + @include transition-property(background-color,color); + @include transition-duration(.3s); + + font-size: 1.25rem; + font-weight: $webstore-modal-header-font-weight; + + padding: $modal-padding 0; + background: $calltoaction-color; + width: 100%; + border: none; + color: #fff; + float: left; + @include border-radius(0); + text-decoration: none; + text-align: center; + + &:hover { + background-color: darken($calltoaction-color,10%); + } + &:focus { + outline: none; + } + + &.inline { + font-family: $webstore-modal-font; + float: none; + width: auto; + padding: 11px 14px; + margin-left: -1px; + font-size: .9375rem; + } + + &.inset { + @include transition-property(background-color, color, border-color); + @include transition-duration(.3s); + + background: none; + border: 1px solid rgba(0,0,0,.1); + @include border-radius(0); + text-transform: uppercase; + color: #bbb; + padding: 7px 6px; + width: auto; + font-size: .7rem; + font-weight: 600; + line-height: 1; + position: absolute; + right: 18px; + top: 21px; + + &:hover { + border-color: $calltoaction-color; + color: #fff; + background: $calltoaction-color; + } + } + } + + table { + width: 100%; + + th, td { + font-size: 1rem; + } + .money { + text-align: right; + } + } + + .field-container { + position: relative; + + &:before, &:after { + content: " "; /* 1 */ + display: table; /* 2 */ + } + &:after { clear: both; } + + p.hint { + line-height: 2rem; + color: #888; + font-size: 1rem; + position: absolute; + right: 20px; + top: 20px; + z-index: 1; + pointer-events:none; + + @include transition-property(opacity); + @include transition-duration(.2s); + + strong { + padding: 3px; + text-transform: uppercase; + color: #bbb; + font-size: .875rem; + font-weight: normal; + } + + &.show { + opacity: 0; + } + } + + label.placeheld { + opacity: 0; + z-index: 1; + position: absolute; + visibility: hidden; + top: 24px; + left: 20px; + transition: all 0.1s linear; + color: #aaa; + font-size: .875rem; + + &.show, &.locked { + visibility: visible; + top: 12px; + opacity:1; + } + } + + input { height: 4.25rem; } + + input{ + transition: all 0.1s linear; + + padding: .75em 20px; + box-shadow: none; + font-size: 1.25rem; + width: 100%; + //MO + @include border-radius(0); + border: 1px solid #ddd; + + &.show { + padding: 1.25em 20px .25em; + } + + &:focus { + background-color: #f8f8f8; + outline: none; + box-shadow: inset 0 1px 1px rgba(0,0,0,.1); + } + } + + select { + transition: all 0.1s linear; + border: none; + margin: 0; + font: 1.5rem $default-font-family; + @include border-radius(0); + padding: .9375em 20px; + box-shadow: none; + width: 100%; + background: none; + color: #bbb; + -webkit-appearance: none; + -moz-appearance:none; + -ms-appearance:none; + appearance:none; + + &.show { + color: #333; + padding: 1.25em 20px .5em; + } + + + &:focus { + background-color: #f8f8f8; + outline: none; + } + } + + &.field-container-nobottomborder { + input, input:focus { + border-bottom: none !important; + } + } + &.field-container-notopborder { + input { + border-top: none; + } + } + } + + + + .flippable { + height: 68px; + margin: 0 auto; + @include perspective(600px); + + .side { + top: 0; + right: 0; + left: 0; + overflow: hidden; + height: inherit; + position: absolute; + + @include transform(rotateX(-180deg)); + @include transform-style(preserve-3d); + @include backface-visibility(hidden); + /* -- transition is the magic sauce for animation -- */ + @include transition(all 0.4s ease-in-out); + + p { + //MO bootstrap override + margin: 13px 0; + } + + } + + .front { + z-index: 900; + @include transform(rotateX(0deg) rotateY(0deg)); + @include transform-style(preserve-3d); + @include backface-visibility(hidden); + /* -- transition is the magic sauce for animation -- */ + @include transition(all .4s ease-in-out); + } + .back { + z-index: 800; + @include transform(rotateX(-180deg)); + @include transform-style(preserve-3d); + @include backface-visibility(hidden); + /* -- transition is the magic sauce for animation -- */ + @include transition(all .4s ease-in-out); + } + + &.flip { + .front { + z-index: 900; + @include transform(rotateX(180deg)); + } + .back { + z-index: 1000; + @include transform(rotateX(0deg) rotateY(0deg)); + } + } + } + + .form-error { + border-top: 3px solid $error-color; + padding: 12px 15px; + background-color: #FFF2F2; + border-bottom: 1px solid #ddd; + margin: -.5em 0 1em; + + p { + + color: $error-color; + font-size: .8125rem; + line-height: 1.5; + } + } + + .success .form-error{ + border-top: 1px solid #ddd; + border-right: 1px solid #ddd; + border-left: 1px solid #ddd; + padding: 12px 20px; + background-color: $success-color; + border-bottom: 1px solid #ddd; + margin: -0.5em 0 1em; + + p { + margin: 0; + color: #666; + font-size: .85rem; + } + } + + form.error { + input { + &::-webkit-input-placeholder { + color: #aaa; + @include transition-property(color); + @include transition-duration(1s); + } + &:-moz-placeholder { + color: #aaa; + @include transition-property(color); + @include transition-duration(1s); + } + &::-moz-placeholder { + color: #aaa; + @include transition-property(color); + @include transition-duration(1s); + } + &:-ms-input-placeholder { + color: #aaa; + @include transition-property(color); + @include transition-duration(1s); + } + + &.error, &:invalid, { + box-shadow: none; + color: #B4282E; + + &::-webkit-input-placeholder { color: #B4282E; } + &:-moz-placeholder { color: #B4282E; } + &::-moz-placeholder { color: #B4282E; } + &:-ms-input-placeholder { color: #B4282E; } + &:focus { color: inherit; } + } + } + + .field-container { + .required { + position: absolute; + top: 26px; + right: 20px; + + font-weight: bold; + text-transform: uppercase; + color: $error-color; + font-size: .75rem; + } + &.password .required { + right: 160px; + } + } + .field-container-password .required { + right: 160px; + } + } + +} + +#confirm h4 { + margin: .5em 0 .25em; +} + + +.steps { + display: none; + @include clearfix(); + background-color: #f8f8f8; + border-bottom: 1px solid #ddd; + margin: -15px -30px 15px; + padding: 0; + @include media(verysmall) { + display: block; + } + + + li { + position: relative; + width: 33.3%; + height: 40px; + + float: left; + + color: #777; + font-size: .8375rem; + font-weight: bold; + line-height: 40px; + text-transform: uppercase; + + text-align: center; + border-right: 1px solid #ddd; + + &:last-child { border-right: none; } + + &.completed { + color: #aaa; + + //MO .webstore-label previously .label refractored to avoid boostrap conflict. + .webstore-label { + position: relative; + width: 28px; + display: inline-block; + height: 18px; + + &:before { + + @extend %icon-prereqs; + @extend %icon-check-mark; + + position: absolute; + top: 2px; + left: 0; + height: 20px; + width: 20px; + + display: inline-block; + color: #ccc; + line-height: 18px; + @include border-radius(20px); + border: 2px solid #ccc; + text-align: center; + } + } + } + &.current { + background-color: #eee; + color: #000; + } + } +} + +//MO temporary fix +p.hint{ + margin:13.4px 0; +} +.controls a{ + font-size: .75rem; +// TODO:remove this; + max-width: 43px; +} + +//confirmation quantity on focus +.webstore-overlay input, .webstore-overlay input:focus { + border: solid 1px #ddd; + background-color: initial; +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_overlay.scss b/core/protected/extensions/umber/assetsToCompile/modal/_overlay.scss new file mode 100755 index 00000000..8dc51039 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_overlay.scss @@ -0,0 +1,325 @@ +body.overlay { + background-color: #eee; +} + +.editcartmodal{ + @include media(medium) { + &:before { + content: ''; + display: inline-block; + //breaking on certain browser widths + height: 5%; + vertical-align: middle; + margin-right: -0.25em; /* Adjusts for spacing */ + } + } + } +.webstore-modal-cart-confirm{ + @include media(medium) { + &:before { + content: ''; + display: inline-block; + //breaking on certain browser widths + height: 85%; + vertical-align: middle; + margin-right: -0.25em; /* Adjusts for spacing */ + } + } +} +.webstore-overlay { + height: 100%; + position: absolute; + padding: 0; + z-index: 2; + + top: 0; + bottom: 0; + left: 0; + right: 0; + font-family: $webstore-modal-font; + + .field-container { + input { + border: 1px solid #ddd; + } + } + + .section-inner { + background-color: #fff; + padding: 15px 20px 20px; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + + @media(min-width:640px) { + padding: 15px 30px 30px; + border: 1px solid #ccc; + } + } + + .section-inner.jumper { + text-align: center; + margin-top: 50px; + } + + section { + box-shadow: none; + display: inline-block; + vertical-align: middle; + width: 100%; + max-width: 840px; + margin: 0 auto; + text-align: left; + + & > header { + padding: 0 10px; + overflow: hidden; + position: relative; + + @include media(small) { + padding: 0 30px; + border-bottom: none; + button.exit, a.exit{ + margin-right: 30px; + } + } + + @include media(cartwidth) { + padding: 0; + button.exit, a.exit{ + margin-right: 0; + } + } + + h1, .exit { + margin: .75rem 0; + display: inline-block; + float: left; + line-height: 1.5rem; + } + + h1 { + font-size: 1.125rem; + width: 50%; + font-weight: bold; + + a { + text-decoration: none; + color: #555; + } + + img + span { display: none; } + + img { + max-height: 80px; + max-width: 100%; + } + } + + .exit { + color: #777; + //MO + padding: 0; + background:none; + border-bottom: 1px dotted #ccc; + text-align: right; + font-size: .8375rem; + text-decoration: none; + display: none; + position: absolute; + right: 0; + bottom: 0; + + &:hover { border-bottom: 1px solid #777; } + + @media(min-width:640px) { + display: block; + width: auto; + } + } + + .logo-placement{ + outline: none; + img{ + outline: none; + } + } + } + + footer { + padding: 0; + + &.submit input{ + float: none; + } + + img { margin: 0 3px 0 0; } + + &.submit input{ float:none; } + p { + margin: 3rem 0 1rem; + text-align: center; + font-size: 12px; + line-height: 16px; + color: #999; + } + strong { + color: #777; + font-size: 13px; + } + a { color: #999; } + } + } + + h1 { + font-size: 1.35rem; + margin: 0 0 .75em; + //MO + font-weight: bold; + + @include media(small) { + margin: .5em 0 .75em; + font-size: 1.75rem; + } + } + + &.show { background-color: #fff; } + + header.webstore-brand { + border-bottom: 1px solid #ccc; + background: #eee; + padding: 10px; + + @include media(small) { padding: 10px 30px; } + + h3 { + font: normal 1rem $webstore-modal-header-font-family; + font-weight: $webstore-modal-header-font-weight; + text-transform: uppercase; + color: #666; + text-align: left; + margin: 0 auto; + max-width: 1000px; + + } + } + + header { + padding: none; + background: none; + padding: 0 8px; + border: none; + + @include media(small) { + padding-right: 30px; + padding-left: 30px; + } + + h1 { + font: normal 2.25rem $webstore-modal-header-font-family; + font-weight: $webstore-modal-header-font-weight; + margin: .5em 0 .35em; + text-transform: none; + color: #555; + } + } + + .field-container { + label.placeheld { + font-size: .8375rem; + } + input { + height: 4.25rem; + &.show { + } + + } + } + + footer button.continue, footer button.continue:focus{ + display: block; + background: none; + border: 1px solid #999; + color: #999; + font-size: 1.125rem; + margin-botom:0; + @include transition-property(border); + @include transition-duration(0.3s); + margin-top: 25px; + margin-bottom: 30px; + } + section>footer{ + padding: 15px 20px 20px!important; + } + @include media(small){ + footer button.continue{ + display:none; + } + + } +} + +.webstore-overlay-narrow { + section { max-width: 480px; } +} +.webstore-overlay-aside { + $section-sidebar-width: 240px; + $section-content-width: 480px; + + @include media(small) { + section { max-width: $section-sidebar-width + $section-content-width; } + } + + .section-inner { + padding: 0; + margin-bottom: 30px; + @include clearfix(); + + @include media(small) { + + @include flexbox(); + @include direction(row); + + .section-content, .section-sidebar { + -webkit-flex: 1 1 auto; + flex: 1 1 auto; + } + } + + .section-content { + @extend %clearfix; + padding: 15px; + + @include media(small) { + width: $section-content-width; + padding-left: 30px; + padding-right: 30px; + &.full { + width: auto; + } + } + + } + .section-sidebar { + background: #f8f8f8; + + @include media(small) { + border-top: none; + background: none; + width: $section-sidebar-width - 1px; + padding: 0; + margin-left: -1px; + border-left: 1px solid #ccc; + } + } + } +} + +@media(max-width: 640px){ + .mobile-hide{ + display:none; + } +} + + + + diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_override_legacy.scss b/core/protected/extensions/umber/assetsToCompile/modal/_override_legacy.scss new file mode 100644 index 00000000..7ec36f9a --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_override_legacy.scss @@ -0,0 +1,196 @@ +body{ + color: rgb(0, 0, 0); +} + +//override light.css, style.css, base.css +//bootstrap.css +a, a:hover, a:focus, a:visited, a * { + outline: none; +} + +.webstore-overlay{ + line-height:normal; + body{ + line-height:normal; + } + //override: base.css l.119 + p { + margin-bottom:0px; + } + .button, button, input[type="submit"], input[type="reset"], input[type="button"]{ + text-shadow:none; + } + + h3 { + display: block; + -webkit-margin-before: 1em; + -webkit-margin-after: 1em; + -webkit-margin-start: 0px; + -webkit-margin-end: 0px; + -moz-margin-before: 1em; + -moz-margin-after: 1em; + -moz-margin-start: 0px; + -moz-margin-end: 0px; + margin-before: 1em; + margin-after: 1em; + margin-start: 0px; + margin-end: 0px; + font-weight: bold; + line-height: normal; + font-size: 19px; + } + h1, h2, h3, h4, h5, h6{ + font-family: "Open Sans", "Helvetica Neue", Helvetica, sans-serif; + font-weight: bold; + } + button, input, select, textarea { + vertical-align: baseline; + } + h1 { + line-height: inherit; + } + li { + margin-bottom:0; + } + .button, + button, + input[type="submit"], + input[type="reset"], + input[type="button"] { + font-family:inherit; + text-transform: none; + margin-bottom: 0; + } + + //override bootstrap:1518 + input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, select:focus:required:invalid:focus{ + border-color:#ddd; + -webkit-box-shadow:none; + -moz-box-shadow:none; + box-shadow:none; + } + //override bootstrap:1511 + input:focus:required:invalid, textarea:focus:required:invalid, select:focus:required:invalid{ + color:#000000; + border-color:#ddd; + } + + input:focus { + outline: -webkit-focus-ring-color auto 5px; + } + + select, input[type="text"], input[type="password"], input[type="email"],input[type="text"]:focus, + input[type="password"]:focus, input[type="email"]:focus { + width: 100%; + background-color: transparent; + line-height: normal; + max-width: none; + } + + select, textarea, 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="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], + .uneditable-input{ + @include border-radius(0); + line-height:normal; + } + + @media only screen and (max-width: 960px){ + select, input[type="text"], input[type="password"], input[type="email"], input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus { + max-width: none; + } + } + + input[type=submit] { + margin-top: 0; + } + + //override light l.154, l.141 height auto height 30px + .submit-small{ + .button:focus, input[type="button"]:focus { + //MO + min-height:50px; + } + } + + //override base.css l.350 + form{ + margin-bottom: 0; + } + + section footer.submit p { + display: block; + -webkit-margin-before: 1em; + -webkit-margin-after: 1em; + -webkit-margin-start: 0px; + -webkit-margin-end: 0px; + } +} + +.overlay{ + #checkout input[type="text"], #checkout input[type="password"], + #checkout input[type="email"], #checkout input[type="select"], + #checkout input[type="text"]:focus, #checkout input[type="password"]:focus, + #checkout input[type="email"]:focus, #checkout input[type="select"]:focus { +// border: 1px solid #ddd; + } + #checkout label{ + text-transform: none; + } +} + + +.webstore-modal{ + select{ + font-size: 11px; + height: 18px; + line-height: normal; + } + + //override style.css l.27 and bootstrap. + input[type="radio"] { + width: initial; + height: initial; + } + + //bootstrap override + .radio input[type="radio"], .checkbox input[type="checkbox"] { + margin-left:0; + } + + .webstore-checkout .choices .button:focus { + height:46px; + } + + button, input, select, textarea{ + vertical-align:baseline; + } + + //override light.css + input[type=button], input[type=submit], button, label{ + text-transform:none; + } + + //override style.css + select, input[type="text"], input[type="password"], input[type="email"] { + max-width: none; + } + + //override base.css + + //l.119 + p{ margin-bottom: 0; } + + //l.265 + .button, button, input[type="submit"], input[type="reset"], input[type="button"] { + margin-bottom: initial; + } + //l.350 + form{ + margin-bottom: initial; + } + + /* JPickard - added this because in base.css: #shoppingcart {text-transform: uppercase} */ + text-transform: none; +} + diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_overview.scss b/core/protected/extensions/umber/assetsToCompile/modal/_overview.scss new file mode 100644 index 00000000..165577c4 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_overview.scss @@ -0,0 +1,177 @@ +.address-blocks { + @include transition(opacity .5s); + height: auto; + opacity: 1; + &.flipped { + height: 0; + opacity: 0; + overflow: hidden; + } +} + +.address-new { + position: relative; + footer { + max-width: 200px; + .button { + padding: 10px 0; + } + } + .select-options { + font-size: .9rem; + color: #888; + label.checkbox { + padding-bottom: 5px; + display: block; + padding-right: 10px; + @include media(medium) { + display: inline-block; + padding-bottom: 0; + } + &:last-child { + padding-right: 0; + } + } + } + .address-form { + max-width: 420px; + .submit-small .button { + font-size: .9rem; + } + ol { + padding-left: 0; + li { + list-style: none; + } + } + } + @include transition(opacity .5s); + height: 0; + opacity: 0; + overflow: hidden; + &.flipped { + height: auto; + opacity: 1; + } +} +.account-address { + .address-block { + width: 100%; + margin-right: 0; + margin-bottom: 30px; + display: inline-block; + vertical-align: top; + p:before { + display: none; + } + @include media(medium) { + width: 47%; + margin-right: 4%; + &:last-child { + margin-right: 0; + } + } + } +} + +.order-history { + table { + border-collapse: collapse; + color: #444; + + th, td { + text-align: left; + } + tr { + @include transition(color .1s, border .1s, background .1s); + &:hover { + cursor: pointer; + background-color: #f8f8f8; + } + } + + &.lines { + a { color: #555; } + td { + padding: 10px 0; + font-size: 0.875rem; + &.date { + color: $blue; + font-weight: bold; + } + &.num { + font-weight: bold; + } + } + tr td:first-child, tr th:first-child { + padding-left: 8px; + @include media(small) { + padding-left: 10px; + } + } + tr td:last-child, tr th:last-child { + padding-right: 8px; + @include media(small) { + padding-right: 10px; + } + } + tbody { + border-top: 1px solid #eee; + } + td { border-bottom: 1px solid #eee; } + } + + + } + .subtotal { + text-align: right; + } + +} + +//MO added the .add .small class to support links with button like look-n-feel +button.small, .add .small { + float: none; + padding: 9px 12px; + margin-bottom: 30px; + width: auto; + display: inline-block; + vertical-align: top; + font-size: .8rem; +} + +.modify { + font-size: .8rem; + padding-left: 0; + list-style: none; + li { + display: inline; + margin-right: 20px; + &:last-child { + margin-right: 0; + } + } + a { + text-decoration: none; + border-bottom: 1px solid #fff; + padding-bottom: 1px; + + &:hover { + border-bottom-color: $blue; + } + } +} + +.customer p { + font-size: 1.1em; + strong { + font-size: 1.2em; + } +} + +.customerorder p { + font-size: .75em; + strong { + font-size: 1.2em; + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_print.scss b/core/protected/extensions/umber/assetsToCompile/modal/_print.scss new file mode 100644 index 00000000..7d656c3f --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_print.scss @@ -0,0 +1,31 @@ +@media print { + + body.overlay { + background: none; + } + .webstore-overlay { + section { + border: none; + width: 100%; + max-width: 100%; + + header { + padding: 0 15px; + + .exit { display: none; } + } + footer { display: none; } + } + .section-inner { + border: none; + + .section-content { + padding: 0 15px; + } + + } + } + + .controls { display: none; } + .thankyou { display: none; } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_promo.scss b/core/protected/extensions/umber/assetsToCompile/modal/_promo.scss new file mode 100644 index 00000000..8dde2168 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_promo.scss @@ -0,0 +1,109 @@ +.promo { + min-width: 16rem; + position: relative; + + @media(min-width:640px) { + float: left; + margin: 2rem 0 0; + } + + input, input[type="text"],input:focus,input[type="text"]:focus { + font-size: .875rem; + width: 100%; + padding: 10px; + border: none; + border-bottom: 1px solid #ddd; + box-shadow: none; + padding-right: 64px; + + @media (min-width: 640px) { + border: 1px solid #ddd; + } + } + + button.inset { + right: 8px; + top: 7px; + opacity: 1; + @include transition(opacity .3s); + + @include media(small) { + opacity: 0; + } + + &:hover, &:active { + color: #fff; + border-color: $blue; + background-color: $calltoaction-color; + } + } + + .form-error { + clear: both; + padding: 10px 10px; + border-top: none; + border-bottom: 3px solid $red; + margin-bottom: 0; + width: 100%; + + p { + font-weight: bold; + color: $red; + padding: 0; + line-height: 1.3; + } + } + + .description { + display: none; + + padding: 0; + margin: .25em 0 0; + + color: #aaa; + font-size: .75rem; + @media(min-width:640px) { display: block; } + + } + + &:hover button { opacity: 1; } +} + +//MO +//add to cart view promo code +#addcart { + .promo{ + input[type="text"]{ + border-top: $input-border; + width:100%; + padding-right:90px; + padding-left:20px; + height:46px; + &:focus{ + box-shadow: inset 1px 1px 3px #ccc; + background-color: #f8f8f8; + outline: none; + } + } + button.inset { + right:20px; + top:9.5px; + } + } +} + +#confirm, .editcartmodal{ + .promo{ + //MO not working for order_summary + width:100%; + @media (min-width: 640px) { + width: 256px; + } + } + +} + +#Checkout_promoCode,#EditCart_promoCode{ + background-color:#fff; +} + diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_spinner.scss b/core/protected/extensions/umber/assetsToCompile/modal/_spinner.scss new file mode 100755 index 00000000..129eaabe --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_spinner.scss @@ -0,0 +1,104 @@ +/* +(cs)spinner.css - http://jh3y.github.io/-cs-spinner +Licensed under the MIT license + +Jhey Tompkins (c) 2014. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +//(cs)spinner base variables +$height: 40px; +$width: 40px; +$border-width: 4px; +//TODO:MO conflicting with $overlay-color: #555 !default; and altering colors in cart checkout. +//$overlay-color: #999; +$base-color: #555; + +/* (cs)spinner base styling */ +.csspinner { + position: relative; +} +// .csspinner:before { +// content: ""; +// z-index: 1; +// position: absolute; +// top: 0; +// left: 0; +// display: block; +// height: 100%; +// width: 100%; +// } +.csspinner:after { + z-index: 2; + content: ""; + height: $height; + width: $width; + position: absolute; + top: 50%; + left: 50%; + margin: (-$width / 2) 0 0 (-$width / 2); + @include border-radius(100%); + border-top: $border-width solid $base-color; + + @include transition(all .75s ease 0s); + -webkit-animation: standard .75s infinite linear; + -moz-animation: standard .75s infinite linear; + -o-animation: standard .75s infinite linear; + animation: standard .75s infinite linear; +} +.csspinner.no-overlay:before { + content: none; + display: none; +} + +/* (cs)spinner traditional spinner. +Makes use of standard animation spin and minimally extends core.*/ +$traditional-color-one: #aaa; +$traditional-color-two: #bbb; +$traditional-color-three: #ccc; + +.csspinner:after { + border-right: $border-width solid $traditional-color-one; + border-top: $border-width solid $traditional-color-one; + border-left: $border-width solid $traditional-color-two; + border-bottom: $border-width solid $traditional-color-three; +} + +/* (cs)spinner standard rotation animation used for duo, double-up etc. */ +@-o-keyframes standard { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} +@-webkit-keyframes standard { + from { + -webkit-transform: rotate(0deg); + } + to { + -webkit-transform: rotate(360deg); + } +} +@-moz-keyframes standard { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} +@keyframes standard { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_tooltip b/core/protected/extensions/umber/assetsToCompile/modal/_tooltip new file mode 100644 index 00000000..bc33d847 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_tooltip @@ -0,0 +1,34 @@ +// TODO: add error message in tooltip when item quantity is not available. +.alert-tooltip { + position: absolute; + width: 200px; + background: rgb(255, 255, 204); + border: 1px solid rgb(102, 102, 102); + color: rgb(102, 102, 102); + font-size: 12px; + line-height: 1.3; + padding:5px 2px 0; + z-index: 10; +} +.alert-tooltip:after { + content: ""; + position: absolute; + width: 0; + height: 0; + border-width: 10px; + border-style: solid; + border-color: #FFFFCC transparent transparent transparent ; + top: 100%; + left: 50%; +} +.alert-tooltip:before { + content: ""; + position: absolute; + width: 0; + height: 0; + border-width: 12px; + border-style: solid; + border-color: rgb(102, 102, 102) transparent transparent transparent ; + top: 100%; + left: 49%; +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_wishlist.scss b/core/protected/extensions/umber/assetsToCompile/modal/_wishlist.scss new file mode 100755 index 00000000..b77448b0 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_wishlist.scss @@ -0,0 +1,228 @@ +.webstore-modal-wishlist { + .search-results { + display: none; + } + + .list { + ul { + list-style: none; + padding: 0; + margin: 0; + + &:last-child { + border-bottom: none; + } + } + li { + border-bottom: 1px solid #ccc; + padding: $modal-padding*.75 $modal-padding; + background-color: #fff; + @include transition(background-color .3s,color .3s); + } + + a { + text-decoration: none; + &:hover { + li { + background-color: #f8f8f8; + } + h3 { + color: darken($calltoaction-color,10%); + } + } + } + h3 { + @include transition-property(color); + @include transition-duration(.3s); + + color: $calltoaction-color; + margin: 0; + font-weight: bold; + font-size: 1rem; + + small { + color: #999; + background-color: #eee; + padding: 2px 4px; + + margin: -3px 0 0 3px; + display: inline-block; + } + } + p { + line-height: 1.5; + font-size: .875rem; + color: #999; + margin: 0; + } + } +} + + +.wishlist-block { + p { + @include transition(color .1s, border .1s, background .1s); + position: relative; + margin: 0; + padding: 10px 2px 10px 10px; + border: 1px solid #ddd; + color: #999; + font-size: .75rem; + min-height: 80px; + line-height: 1.5; + span.title { + color: $blue; + font-weight: bold; + font-size: 1rem; + } + span.date { + display: block; + color: #aaa; + font-size: .7rem; + } + a { + font-weight: bold; + font-size: 1rem; + } + + &:hover { + color: #FFF; + cursor: pointer; + span { + color: #FFF; + } + p { + color: #FFF; + a { + color: #FFF; + } + } + border-color: $blue; + background-color: $blue; + } + + &.private, &.public, &.personal { + &:after { + font-size: .75rem; + color: #888; + border: 1px solid #ccc; + background-color: #eee; + position: absolute; + top: 10px; + padding: 3px 6px 2px; + right: -10px; + text-transform: uppercase; + + } + } + &.private { + &:after { + content: "Private"; + } + } + &.public { + &:after { + content: "Public"; + } + } + &.personal { + &:after { + content: "Personal"; + } + } + } +} + +.lines-footer { + &.purchased { + @include transition(opacity .3s); + opacity: 0; + overflow: hidden; + height: 0; + clear: both; + &.active { + opacity: 1; + height: auto; + } + .lines { + opacity: .4; + } + } +} + +.field-container { + &.optional:after { + content: 'Optional'; + background: none repeat scroll 0 0 rgba(0, 0, 0, 0); + border: 1px solid rgba(0, 0, 0, 0.1); + @include border-radius(0); + color: #bbb; + font-size: 0.7rem; + font-weight: 600; + line-height: 1; + padding: 7px 6px; + position: absolute; + right: 18px; + text-transform: uppercase; + top: 21px; + transition-duration: 0.3s; + transition-property: background-color, color, border-color; + width: auto; + } + button{ + color: #999; + } +} + + +.webstore-modal .radio-box { + border-bottom: 1px solid #ddd; + li { + label { + float:left; + width: 32.75%; + border-left: 1px solid #DDD; + border-right: 1px solid #DDD; + display: inline-block; + margin-bottom: 0; + @include transition-property(background-color,color); + @include transition-duration(.2s); + + &:first-child { + border-right: 0; + } + &:last-child { + border-left: 0; + } + &.active { + background-color: #e8e8e8; + border-color: #DDD; + } + &:first-child { + border-left: 0; + } + &:last-child { + width: 34.25%; + border-right: 0; + } + &:hover { + box-shadow: inset 0 10px 20px -20px rgba(0, 0, 0, 0.9); + background-color: #DDD; + border-color: #DDD; + } + color: #666; + font-size: 1rem; + font-weight: bold; + span { + font-weight: normal; + color: #888; + font-size: .75rem; + display: block; + } + &:hover { + color: $calltoaction-color; + cursor: pointer; + } + } + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/modal/_wishlist_view.scss b/core/protected/extensions/umber/assetsToCompile/modal/_wishlist_view.scss new file mode 100644 index 00000000..3838ac1e --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/_wishlist_view.scss @@ -0,0 +1,256 @@ +.webstore-wishlist-view { + .section-content { position: relative; } + + .wishlist-description { + padding: 0 0 10px; + max-width: 400px; + } + + .wishlist-date { + position: relative; + margin: 0; + padding: 10px; + + color: #666; + font-size: .9375rem; + border: 1px solid #ccc; + + @include media(small) { + position: absolute; + right: 30px; + top: 30px; + } + } + + h1 { + small { + font-size: .75rem; + color: #888; + border: 1px solid #ccc; + background-color: #f8f8f8; + padding: 3px 6px 2px; + margin-left: 10px; + text-transform: uppercase; + } + } +} + +$share-block-height: 70px; + +.wishlist-share { + @extend %clearfix; + margin: 30px 0; + border: 1px solid #ddd; + height: $share-block-height; + + h3 { + line-height: $share-block-height - 2px; + color: #666; + padding: 0 20px; + margin: 0; + display: inline-block; + + float: left; + } + + a { + display: inline-block; + line-height: $share-block-height - 2px; + float: left; + color: #666; + + &.url { + display: none; + width: 50%; + overflow: hidden; + padding: 20px 10px 0; + line-height: 1.2; + font-size: .75rem; + word-wrap: break-word; + color: #888; + + @include media(medium) { + display: inline-block; + } + } + + &.service { + font-size: 0; + line-height: 1; + padding: 0 15px; + text-align: center; + float: right; + color: $blue; + + &:before { + font-family: FontAwesome; + font-size: 1.5rem; + line-height: $share-block-height - 2px; + } + &:hover {color: darken($blue,10%); } + + &.email:before { content: '\f003'; } + &.twitter:before { content: '\f099'; } + &.facebook:before { content: '\f09a'; } + } + } +} + +.wishlist-buttons { + @extend %clearfix; + + button { + border: 1px solid #ccc; + background: #fff; + color: #999; + width: auto; + padding: 20px; + margin-bottom: 20px; + + + &:hover { + color: $blue; + border-color: $blue; + background: #fff; + } + } + .wishlist-settings { + float: right; + display: none; + } +} + +.wishlist-lines { + thead { + th { + border-bottom: 1px solid #ccc; + color: #999; + text-transform: uppercase; + font-size: .875rem; + font-weight: normal; + } + } +} + + +.webstore-wishlist-view { + td.description { + .item-note { + color: #aaa; + display: block; + font-size: .8125rem; + font-weight: normal; + } + textarea { + display: none; + margin-top: 3px; + padding: 5px; + width: 100%; + border: 1px solid #ddd; + } + } + + td.priority { + .label { + color: #888; + text-transform: uppercase; + font-size: .8125rem; + } + select { display: none; } + } + + + + .purchased { + display: none; + } +} + +.wishlist-lines { + .controls { + white-space: nowrap; + a { float: none; } + } + + .edit, .save, .add-to-cart { + padding: 6px 8px 5px; + display: inline-block; + line-height: 1; + font-size: .75rem; + white-space: nowrap; + float: none; + + background-color: $blue; + border: 1px solid $blue; + color: #fff; + + @include transition(background-color .3s, color .3s, border-color .3s); + + &:hover { + border-color: darken($blue,10%); + background-color: darken($blue,10%); + } + } + + .save { display: none; } + .edit { + border-color: #ccc; + color: #999; + background: none; + margin-right: 6px; + + &:hover { + background: none; + border-color: $blue; + color: $blue; + } + } + + .in-cart { + .add-to-cart { + color: #999; + border-color: transparent; + background: transparent; + + } + } + + tr.active { + td.description { + padding-top: 10px; + padding-bottom: 10px; + + textarea { display: block; } + .item-note { display: none; } + } + + td.priority { + // span { display: block; } + .custom-select { display: block; } + } + td.controls { + a.save { display: inline-block; } + a.remove { + display: inline-block; + margin-left: 25px; + margin-top: -1px; + } + a.add-to-cart { display: none; } + a.save, a.remove { float: left; } + } + } +} + + +.webstore-wishlist-owner { + button.wishlist-settings { display: block; } + button.wishlist-purchases { display: none; } + .purchased { display: block; } + .wishlist-lines { + a.edit { display: inline-block; } + } + td.priority { + .label { display: none; } + select { display: block; } + } +} \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/modal/modal.scss b/core/protected/extensions/umber/assetsToCompile/modal/modal.scss new file mode 100755 index 00000000..e2dea8c2 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/modal/modal.scss @@ -0,0 +1,108 @@ +@import "../mixins/arrows"; +@import "../mixins/borders"; +@import "../mixins/flexbox"; +@import "../mixins/transitions"; +@import "../mixins/animations"; +@import "../lib/normalize"; +@import "override_legacy"; +@import "browsers_unistyle"; +@import "config"; +@import 'icons'; + +#modal-trigger { + position: absolute; + right: 30px; + top: 20px; + padding: 10px 20px; + color: #fff; + font: .875rem $webstore-modal-font; + z-index: 1; + + background-color: #999; + text-transform: uppercase; + &:hover { cursor: pointer; } +} + +#wrapper { + width: 100%; + height: 100%; + text-align: center; +} + +@import 'basic_modal'; +@import 'modal_overlay_shared'; +@import 'overlay'; +@import 'cart'; +@import 'cartadd'; +@import 'wishlist'; +@import 'promo'; +@import '_tooltip'; +@import 'estimator'; +@import 'animations'; +@import 'spinner'; +@import 'checkout'; +@import 'overview'; +@import 'lines'; +@import 'wishlist_view'; + +@import 'print'; + +main.verification { + padding: 1px $modal-padding; + + p { + font-size: 1.125rem; + line-height: 1.5; + color: #666; + } + strong { + color: $calltoaction-color; + } +} +.webstore-overlay{ + @media (max-width: 640px){ + //MO hack for input zoom bug ios. http://www.ampedupdesigns.com/blog/show?bid=53 + //Do not override without finding an alternate solution. + input[type="text"], input[type="password"], input[type="phone"], input[type="email"], + input[type="tel"], textarea, .field-container-toggle a, .field-container-select select{ + font-size: 16px !important; } + } +} + + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local('Open Sans Light'), local('OpenSans-Light'), url('//themes.googleusercontent.com/static/fonts/opensans/v6/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff') format('woff'); +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), local('OpenSans'), url('//themes.googleusercontent.com/static/fonts/opensans/v8/cJZKeOuBrn4kERxqtaUH3bO3LdcAZYWl9Si6vvxL-qU.woff') format('woff'); +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url('//themes.googleusercontent.com/static/fonts/opensans/v8/MTP_ySUJH_bn48VBG8sNSqRDOzjiPcYnFooOUGCOsRk.woff') format('woff'); +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), local('OpenSans'), url('//themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff') format('woff'); +} + + +th{ + font-family: "Open Sans", "Helvetica Neue", Helvetica, sans-serif; + font-weight: bold; +} + +//MO temporary +@import '../customized/brooklyn2014'; \ No newline at end of file diff --git a/core/protected/extensions/umber/assetsToCompile/theme/_config.scss b/core/protected/extensions/umber/assetsToCompile/theme/_config.scss new file mode 100755 index 00000000..676cd040 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/theme/_config.scss @@ -0,0 +1,76 @@ +@charset "utf-8"; + +$break-mobile: 0px; // This is used in limited situations, generally styles layer-up, not down. +$break-narrow-modal: 360px; +$break-verysmall: 450px; +$break-small: 560px; +$break-medium: 720px; +$break-large: 1025px; +$break-verylarge: 1240px; + +@import 'compass'; +@import '../mixins/html5-input-types'; + +@mixin media($media) { + @if $media == 'mobile' { + @media (max-width: $break-small) { @content; } + } + @if $media == 'narrow-modal' { + @media (min-width: $break-narrow-modal) { @content; } + } + @else if $media == 'verysmall' { + @media (min-width: $break-verysmall) { @content; } + } + @else if $media == 'small' { + @media (min-width: $break-small) { @content; } + } + @else if $media == 'medium' { + @media (min-width: $break-medium) { @content; } + } + @else if $media == 'large' { + @media (min-width: $break-large) { @content; } + } + @else if $media == 'short' { + @media (max-height: $break-short) { @content; } + } + @else { + @content; + } +} + +* { + @include box-sizing(border-box); +} + +// Colors +$font-color: #000; + +$blue: #3287CC; + +// Link colors +$link-color: $blue; +$link-hover-color: darken($blue,10%); +$link-active-color: darken($blue,20%); +//$link-focus-color: false; +//$link-visited-color: false; + +a { + color: $link-color; + &:active { color: $link-active-color; } + a:hover { color: $link-hover-color; } +} + +$modal-padding: 20px; + +$modal-width: 720px; +$modal-width-narrow: 540px; + +$error-color: #B4282E; + +$calltoaction-color: $blue; + +$default-font-family: 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif; + +$fa-font-path: "/fonts" !default; +$fa-css-prefix: fa !default; +$fa-version: "4.1.0" !default; diff --git a/core/protected/extensions/umber/assetsToCompile/theme/_footer.scss b/core/protected/extensions/umber/assetsToCompile/theme/_footer.scss new file mode 100755 index 00000000..9cf6ab24 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/theme/_footer.scss @@ -0,0 +1,153 @@ +.footer { + background-color: #eee; + color: #777; + font-size: .875rem; + + h3 { + text-transform: uppercase; + color: #888; + font-size: .875rem; + margin: 0; + font-weight: 600; + margin-bottom: .5rem; + } + p, ol, ul { + margin: 0; + } +} +.footer-section { + @include clearfix(); +} + +.footer-primary { + padding: 30px 0; + + article { + width: 20.6%; + margin: 1% 0 1% 2.6%; + float: left; + word-wrap: break-word; + + p { margin-bottom: 1.25rem;} + &:first-child { + margin-left: 0; + } + &.about { + width: 34%; + } + &.nav { + width: 17%; + } + &.vcard { + table.hours { + th { + text-align: right; + padding-right: .5rem; + } + } + } + &.contact { + .phone { + font-size: 1.9rem; + margin-bottom: 0; + } + .email { + margin-bottom: 0; + } + } + } + &:last-child { + margin-right: 0; + } +} +.footer-secondary { + border-top: 1px solid #ccc; + margin-top: 30px; + padding: 15px 0; + color: #999; + font-size: .75rem; + + p, .paymentmethods { float: left; } + + .paymentmethods { + padding: 0; + float: right; + + li { display: inline-block; } + } +} + +.footer { + .page-collection { + font-size: .75rem; + + ul { + list-style: none; + padding: 0; + } + } + + .newsletter { + form { + position: relative; + max-width: 300px; + } + + input { + box-sizing: border-box; + width: 100%; + border: 1px solid #999; + background: #fff; + padding: 10px 95px 10px 10px; + } + button { + font-size: .75rem; + text-transform: uppercase; + height: 40px; + background-color: #555; + padding: 0 10px; + border: none; + color: #fff; + position: absolute; + top: 1px; + right: 0; + + &:hover { background: #666; } + } + } + + .social { + margin-top: .5rem; + + a { + font-size: 0; + + &:after { + font-size: 1.8rem; + margin-right: 2px; + } + + &.facebook:after { content: '\f082'; } + &.twitter:after { content: '\f081'; } + &.googleplus:after { content: '\f0d4'; } + &.instagram:after { content: '\f16d'; } + &.pinterest:after { content: '\f0d3'; } + &.linkedin:after { content: '\f08c'; } + } + } + + .paymentmethods { + margin-top: -10px; + position: relative; + li { + display: inline-block; + background-color: #333; + width: 45px; + height: 25px; + /* Hide the text. */ + text-indent: 100%; + white-space: nowrap; + overflow: hidden; + } + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/theme/_header.scss b/core/protected/extensions/umber/assetsToCompile/theme/_header.scss new file mode 100755 index 00000000..c59895ce --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/theme/_header.scss @@ -0,0 +1,89 @@ +header { + @include background-image(linear-gradient(#ffffff, rgba(#ffffff,0))); + width: 100%; + position: fixed; + top: 0; + // left: 0; + // right: 0; + +} + +.header { + background-color: transparent; + -webkit-transition: background-color 400ms linear; + -moz-transition: background-color 400ms linear; + -o-transition: background-color 400ms linear; + -ms-transition: background-color 400ms linear; + transition: background-color 400ms linear; + &.scrolled { + background-color: #FFF; + } + padding: 2rem 0; + @include clearfix(); + .brand, .webstore-features { + display: inline-block; + } + + .brand { + width: 240px; + float: left; + + p { display: none; } + } + .webstore-features { + float: right; + } + + .brand { + img { + max-height: 50px; + } + img + h1 { + display: none; + } + + } + .webstore-features { + .pages, form { + float: right; + } + + .pages { + list-style: none; + padding: 0; + margin: 0; + + li { + display: inline-block; + line-height: 50px; + font-size: .8375rem; + } + a { + display: inline-block; + line-height: 50px; + padding: 0 10px; + } + + } + .language-choices { + display: none; + } + } + + .page-collection { + width: 100%; + @include clearfix(); + + ul { + padding: 0; + display: inline; + } + li { + display: inline; + } + a { + display: inline-block; + padding: 10px; + } + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/theme/_products.scss b/core/protected/extensions/umber/assetsToCompile/theme/_products.scss new file mode 100755 index 00000000..1f92d536 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/theme/_products.scss @@ -0,0 +1,121 @@ +.product-browser { + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + + .inner { + display: box; + display: flexbox; + display: -webkit-flex; + display: flex; + + -webkit-flex-flow: row; + flex-flow: row; + + // align-content: flex-start; + // @TODO - background should scale to match full-page width + // @TODO - background should maintain a minimum height + + padding: 0; + + @include media(small) { + article { + -webkit-flex: 3 1 80%; + flex: 3 1 80%; + -webkit-order: 2; + order: 2; + border-right: 1px solid #ccc; + } + + aside { + -webkit-flex: 1 6 20%; + flex: 1 6 20%; + -webkit-order: 1; + order: 1; + + padding-right: 15px; + } + } + } +} + +.product-categories { + ul { + list-style: none; + padding: 0; + } +} +.product-narrowing { + h3 { + margin: 15px 0; + background-color: #eee; + padding: 8px 12px; + text-transform: uppercase; + color: #666; + font-size: .75rem; + } + ul { + margin: 0 15px 30px; + } + li { + margin: 0 0 5px; + } +} + +.product-cards { + // @include clearfix; + list-style: none; + margin: 0 0 -1px; + padding: 0; + + display: box; + display: flexbox; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.product-card { + border-bottom: 1px solid #ccc; + border-left: 1px solid #ccc; + padding: 15px; + + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + + background-color: #fff; + + min-width: 200px; + + + -webkit-transition: width 0.7s ease-out; + transition: width 0.7s ease-out; + + + img { + width: 100%; + } + + h2, p { + margin: 0; + } + h2 { + font-size: .75rem; + } + p { + font-size: .875rem; + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/theme/_search.scss b/core/protected/extensions/umber/assetsToCompile/theme/_search.scss new file mode 100755 index 00000000..48be86a4 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/theme/_search.scss @@ -0,0 +1,13 @@ +form.search { + line-height: 50px; + input { + display: inline-block; + font-size: .8375rem; + padding: 6px 8px; + + } + + button { + display: none; + } +} diff --git a/core/protected/extensions/umber/assetsToCompile/theme/basic.scss b/core/protected/extensions/umber/assetsToCompile/theme/basic.scss new file mode 100755 index 00000000..183726d9 --- /dev/null +++ b/core/protected/extensions/umber/assetsToCompile/theme/basic.scss @@ -0,0 +1,59 @@ +@import "normalize"; +@import "config"; + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); + //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} + +body { + font-family: $default-font-family; +} + +.features { + height: 640px; + background-image: url(/images/backgrounds/trail.jpg); + background-repeat: no-repeat; + background-size: cover; + +} + + +a { + text-decoration: none; + color: $link-color; +} + +.header, .footer, .wrapper { + // flex: 1 100%; + .inner { + max-width: 1024px; + padding: 0 30px; + margin: 0 auto; + + } +} + + +.icon:after { + font-family: 'FontAwesome'; + content: ''; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + + +@import 'header'; +@import 'footer'; +@import 'search'; +@import 'products'; diff --git a/core/protected/extensions/umber/wsmodal.php b/core/protected/extensions/umber/wsmodal.php index 18c93a39..571a6608 100644 --- a/core/protected/extensions/umber/wsmodal.php +++ b/core/protected/extensions/umber/wsmodal.php @@ -11,7 +11,7 @@ public function run() Yii::app()->params['umber_assets'] = Yii::app()->assetManager->publish(Yii::getPathOfAlias($umberAssetsAlias)); // This does the scss conversion to css and returns the path to the compiled css path - Yii::app()->params['modal_css'] = Yii::app()->sass->publish(dirname(__FILE__) . '/assets/modal/modal.scss', $umberAssetsAlias); + Yii::app()->params['modal_css'] = Yii::app()->sass->publish(dirname(__FILE__) . '/assetsToCompile/modal/modal.scss', $umberAssetsAlias); static::_createSprites(); diff --git a/core/protected/extensions/wsadvcheckout/assets/checkout.js b/core/protected/extensions/wsadvcheckout/assets/checkout.js index 598ee25d..70f2c343 100644 --- a/core/protected/extensions/wsadvcheckout/assets/checkout.js +++ b/core/protected/extensions/wsadvcheckout/assets/checkout.js @@ -10,6 +10,10 @@ function Checkout (options) { this.applyButtonLabel = options.applyButtonLabel || null; this.removeButtonLabel = options.removeButtonLabel || null; + + this.applyPromoCodeEndpoint = options.applyPromoCodeEndpoint; + this.removePromoCodeEndpoint = options.removePromoCodeEndpoint; + this.clearCartEndpoint = options.ClearCartEndpoint; if (this.applyButtonLabel === null || this.removeButtonLabel === null) { throw new Error('Translation missing for promo code button'); @@ -68,7 +72,7 @@ Checkout.prototype.ajaxApplyPromoCode = function (cartId, updateCartTotals) { }.bind(this); $.ajax({ - url: '/cart/applypromocodemodal', + url: this.applyPromoCodeEndpoint, data: { promoCode: promoCodeValue, updateCartTotals: updateCartTotals @@ -120,7 +124,7 @@ Checkout.prototype.ajaxRemovePromoCode = function (cartId, updateCartTotals) { $.ajax({ type: 'POST', - url: '/cart/removepromocodemodal', + url: this.removePromoCodeEndpoint, dataType: 'json', data: { updateCartTotals: updateCartTotals @@ -251,7 +255,8 @@ Checkout.prototype.redrawCart = function(shoppingCart, cartId) { $('.promo-code-str').html(shoppingCart.totalDiscountFormatted); } - // if purchase is below the minimum amount and promo code was applied, clear the promo code + // If purchase is below the minimum amount or the last item to which the promo can be applied + // has been removed from cart, then clear the promo code. if (shoppingCart.promoCode === null && $('.promocode-apply').hasClass('promocode-applied')) { this.removePromoCode(cartId); $('#' + cartId + '_em_') @@ -271,7 +276,7 @@ Checkout.prototype.ajaxClearCart = function () { $.ajax({ data: null, type: 'POST', - url: '/cart/clearcart', + url: this.clearCartEndpoint, dataType: 'json', success: function(data) { if (data.action === 'alert') { @@ -366,7 +371,7 @@ Checkout.prototype.adjustPosition = function() { * @param {object[]} options.rates An array of shipping rates. */ function OrderSummary(options) { - this.setShippingOptionEndpoint = '/cart/chooseshippingoption'; + this.setShippingOptionEndpoint = options.setShippingOptionEndpoint; this.$root = $(options.class); this.$shippingProviderId = $('.shipping-provider-id'); this.$shippingPriorityLabel = $('.shipping-priority-label'); @@ -562,7 +567,7 @@ PromoCodeInput.prototype.handlePromoCodeChange = function(promoCodeChangePromise * Provides JavaScript required to make the edit cart functionality work. * @param {object} options The class options. * @param {string} options.checkoutUrl The url to go to for the checkout. - * @param {string} options.updateCartUrl The url to post to for updating the cart. + * @param {string} options.updateCartItemEndpoint The url to post to for updating the cart. * @param {string} options.csrfToken The Yii cross-site request forgery token. * @param {string} options.cartId The ID of cart section in the DOM. * @param {string} options.invalidQtyMessage The message to display when the quantity is invalid. @@ -572,7 +577,7 @@ PromoCodeInput.prototype.handlePromoCodeChange = function(promoCodeChangePromise */ function WsEditCartModal(options) { this.checkoutUrl = options.checkoutUrl || null; - this.updateCartUrl = options.updateCartUrl || null; + this.updateCartItemEndpoint = options.updateCartItemEndpoint || ''; this.csrfToken = options.csrfToken || null; this.cartId = options.cartId || null; this.invalidQtyMessage = options.invalidQtyMessage || null; @@ -581,7 +586,7 @@ function WsEditCartModal(options) { // These options are required. var requiredOptions = [ - 'updateCartUrl', 'csrfToken', 'cartId', 'invalidQtyMessage' + 'updateCartItemEndpoint', 'csrfToken', 'cartId', 'invalidQtyMessage' ]; requiredOptions.forEach(function (option) { @@ -638,7 +643,7 @@ WsEditCartModal.prototype.updateCartItemQty = function(cartItemId, qty) { } this.incrementPendingRequests(); var returnValue = $.ajax({ - url: this.updateCartUrl, + url: this.updateCartItemEndpoint, type: 'POST', dataType: 'json', data: { diff --git a/core/protected/extensions/wsadvcheckout/assets/confirmationShippingEstimator.js b/core/protected/extensions/wsadvcheckout/assets/confirmationShippingEstimator.js index eaa6955d..98cdb9a9 100644 --- a/core/protected/extensions/wsadvcheckout/assets/confirmationShippingEstimator.js +++ b/core/protected/extensions/wsadvcheckout/assets/confirmationShippingEstimator.js @@ -10,12 +10,12 @@ * estimator and tooltip showing the shipping options. */ function ConfirmationShippingEstimator(options) { - this.getShippingRatesEndpoint = '/cart/getshippingrates'; - this.setShippingOptionEndpoint = '/cart/chooseshippingoption'; // Options from the invoking code. options = options || {}; this.class = options.class || null; + this.getShippingRatesEndpoint = options.getShippingRatesEndpoint || ''; + this.setShippingOptionEndpoint = options.setShippingOptionsEndpoint || ''; this.shippingOptions = options.shippingOptions || null; this.selectedProviderId = options.selectedProviderId || null; this.selectedPriorityLabel = options.selectedPriorityLabel || null; diff --git a/core/protected/extensions/wscartmodal/views/addtocartmodal.php b/core/protected/extensions/wscartmodal/views/addtocartmodal.php index db16f781..ded0712f 100644 --- a/core/protected/extensions/wscartmodal/views/addtocartmodal.php +++ b/core/protected/extensions/wscartmodal/views/addtocartmodal.php @@ -19,7 +19,7 @@ 'cart', 'Change' ), - array('class' => 'webstore-change-item', 'id'=>'change-item-btn') + array('class' => 'webstore-change-item', 'id' => 'change-item-btn', 'data-editcarturl' => Yii::app()->createUrl('editcart')) ); ?> diff --git a/core/protected/extensions/wscartmodal/views/editcartmodal.php b/core/protected/extensions/wscartmodal/views/editcartmodal.php index 07f1a3ad..f6ccc95c 100644 --- a/core/protected/extensions/wscartmodal/views/editcartmodal.php +++ b/core/protected/extensions/wscartmodal/views/editcartmodal.php @@ -182,7 +182,7 @@ if (Yii::app()->params['ENABLE_SSL'] == 1) { echo CHtml::image( - '/images/lock.png', + Yii::app()->params['umber_assets'] . '/images/lock.png', 'lock image ', array( 'height' => 14 diff --git a/core/protected/extensions/wscartmodal/wseditcartmodal.php b/core/protected/extensions/wscartmodal/wseditcartmodal.php index d97ad9d2..51edeb4b 100644 --- a/core/protected/extensions/wscartmodal/wseditcartmodal.php +++ b/core/protected/extensions/wscartmodal/wseditcartmodal.php @@ -39,8 +39,8 @@ public function run() });', CJSON::encode( array( - 'checkoutUrl' => Yii::app()->controller->createUrl('/checkout'), - 'updateCartUrl' => Yii::app()->createUrl('/cart/updatecartitem'), + 'checkoutUrl' => Yii::app()->createUrl('checkout'), + 'updateCartItemEndpoint' => Yii::app()->createUrl('cart/updatecartitem'), 'csrfToken' => Yii::app()->request->csrfToken, 'cartId' => CHtml::activeId('EditCart', 'promoCode'), 'invalidQtyMessage' => Yii::t( diff --git a/core/protected/extensions/wspayment/authorizedotnetaim/authorizedotnetaim.php b/core/protected/extensions/wspayment/authorizedotnetaim/authorizedotnetaim.php index c4177443..3f7fd9f5 100644 --- a/core/protected/extensions/wspayment/authorizedotnetaim/authorizedotnetaim.php +++ b/core/protected/extensions/wspayment/authorizedotnetaim/authorizedotnetaim.php @@ -65,7 +65,7 @@ public function run() { "x_invoice_num" => $this->objCart->id_str, "x_solution_id" => 'A1000010', "x_cust_id" => $this->objCart->customer_id, - "x_freight" => $this->objCart->shipping_sell, + "x_freight" => $this->objCart->shippingCharge, ); if($this->config['ccv'] == '1') diff --git a/core/protected/extensions/wspayment/paypalpro/paypalpro.php b/core/protected/extensions/wspayment/paypalpro/paypalpro.php index 97a634f6..f78bc8db 100644 --- a/core/protected/extensions/wspayment/paypalpro/paypalpro.php +++ b/core/protected/extensions/wspayment/paypalpro/paypalpro.php @@ -28,7 +28,7 @@ public function run() $str = "&PAYMENTACTION=" .'Sale'; $str .= "&ITEMAMT=" .$this->objCart->subtotal; - $str .= "&SHIPPINGAMT=" .$this->objCart->shipping->shipping_sell; + $str .= "&SHIPPINGAMT=" .$this->objCart->shippingCharge; $str .= "&AMT=" .round($this->objCart->total,2); $str .= "&TAXAMT=" .$this->objCart->TaxTotal; $str .= "&INVNUM=" .$this->objCart->id_str . date('YmdHis'); // append the datetime to prevent duplicate id error if payment must be re-tried diff --git a/core/protected/extensions/wsshippingestimator/WsShippingEstimator.php b/core/protected/extensions/wsshippingestimator/WsShippingEstimator.php index ace17fcc..a908b2da 100644 --- a/core/protected/extensions/wsshippingestimator/WsShippingEstimator.php +++ b/core/protected/extensions/wsshippingestimator/WsShippingEstimator.php @@ -194,6 +194,8 @@ public static function getShippingEstimatorOptions( // Build up an associative array of the options required for the shipping estimator. $shippingEstimatorOptions = array( 'class' => self::CSS_CLASS, + 'getShippingRatesEndpoint' => Yii::app()->createUrl('cart/getshippingrates'), + 'setShippingOptionEndpoint' => Yii::app()->createUrl('cart/chooseshippingoption'), 'updateOnLoad' => CPropertyValue::ensureBoolean($updateOnLoad), 'shippingCity' => $shippingCity, 'shippingState' => $shippingStateCode, diff --git a/core/protected/extensions/wsshippingestimator/assets/js/WsShippingEstimator.js b/core/protected/extensions/wsshippingestimator/assets/js/WsShippingEstimator.js index 87296662..1e12ac80 100644 --- a/core/protected/extensions/wsshippingestimator/assets/js/WsShippingEstimator.js +++ b/core/protected/extensions/wsshippingestimator/assets/js/WsShippingEstimator.js @@ -6,8 +6,6 @@ * estimator and tooltip showing the shipping options. */ function WsShippingEstimator(options) { - this.getShippingRatesEndpoint = '/cart/getshippingrates'; - this.setShippingOptionEndpoint = '/cart/chooseshippingoption'; // Options from the invoking code. options = options || {}; @@ -22,6 +20,8 @@ function WsShippingEstimator(options) { this.shippingStateCode = options.shippingStateCode || null; this.messages = options.messages || null; this.updateOnLoad = options.updateOnLoad || false; + this.getShippingRatesEndpoint = options.getShippingRatesEndpoint || ''; + this.setShippingOptionEndpoint = options.setShippingOptionEndpoint || ''; if (typeof this.class !== 'string') { throw new Error('Must provide a string value for the class option.'); diff --git a/core/protected/extensions/wssinglepagecheckout/assets/SinglePageCheckout.js b/core/protected/extensions/wssinglepagecheckout/assets/SinglePageCheckout.js index 270eb3dc..bae24db8 100644 --- a/core/protected/extensions/wssinglepagecheckout/assets/SinglePageCheckout.js +++ b/core/protected/extensions/wssinglepagecheckout/assets/SinglePageCheckout.js @@ -7,6 +7,8 @@ * @class * * @param {Object} options + * @param {string} options.calculateShippingEndPoint The endpoint for the + * calculate shipping ajax call * @param {number[]} options.paymentModulesThatUseCard An array of payment * module IDs that require display of the credit card form. * @param {number[]} options.paymentModulesThatUseForms An array of payment @@ -56,6 +58,7 @@ * chosen shipping priority. */ var SinglePageCheckout = function (options) { + this.calculateShippingEndpoint = options.calculateShippingEndpoint; this.paymentModulesThatUseCard = options.paymentModulesThatUseCard; this.paymentModulesThatUseForms = options.paymentModulesThatUseForms; @@ -131,7 +134,7 @@ SinglePageCheckout.prototype.calculateShipping = function () { $(document).off('ajaxStop'); $.post( - '/cart/ajaxcalculateshipping', + this.calculateShippingEndpoint, $('#checkout').serialize(), this.handleCalculateShippingResponse.bind(this) ); diff --git a/core/protected/extensions/wssinglepagecheckout/views/instantiate.php b/core/protected/extensions/wssinglepagecheckout/views/instantiate.php index 1925becd..87fe81d8 100644 --- a/core/protected/extensions/wssinglepagecheckout/views/instantiate.php +++ b/core/protected/extensions/wssinglepagecheckout/views/instantiate.php @@ -13,6 +13,7 @@ });', CJSON::encode( array( + 'calculateShippingEndpoint' => Yii::app()->createUrl('cart/ajaxcalculateshipping'), 'paymentModulesThatUseCard' => array_keys($model->getAimPaymentMethods()), 'paymentModulesThatUseForms' => array_keys($model->getAlternativePaymentMethodsThatUseSubForms()), 'shippingProviderId' => CHtml::activeId($model, 'shippingProvider'), diff --git a/core/protected/models/Cart.php b/core/protected/models/Cart.php index 10c02d52..c488a266 100644 --- a/core/protected/models/Cart.php +++ b/core/protected/models/Cart.php @@ -238,11 +238,11 @@ public function setTaxCodeByDefaultShippingAddress() public static function GetCartLastIdStr() { // Since id_str is a text field, we have to read in and strip out nonnumeric $intIdStr = Yii::app()->db->createCommand('SELECT SUBSTRING(id_str, 4) - AS id_num - FROM xlsws_cart - WHERE id_str LIKE "WO-%" - ORDER BY (id_num + 0) DESC - LIMIT 1;')->queryScalar(); + AS id_num + FROM xlsws_cart + WHERE id_str LIKE "WO-%" + ORDER BY (id_num + 0) DESC + LIMIT 1;')->queryScalar(); if (empty($intIdStr)) @@ -548,7 +548,18 @@ public function updatePromoCode() { $objPromoCode->threshold = 0; //for calculation purposes } - if ($objPromoCode->threshold > $intOriginalSubTotal && $this->fk_promo_id != NULL) + // If none of the products are affected by the promo code anymore, remove it + $isAnyProductAffected = false; + foreach ($arrSorted as $objItem) + { + if ($objPromoCode->IsProductAffected($objItem)) + { + $isAnyProductAffected = true; + break; + } + } + + if (($objPromoCode->threshold > $intOriginalSubTotal && $this->fk_promo_id !== NULL) || $isAnyProductAffected === false) { $this->fk_promo_id = NULL; Yii::app()->user->setFlash( @@ -694,7 +705,7 @@ protected function updateTaxInclusive() { $qty = 1; $taxIn = 1; $objItem->sell = $objItem->product->getPriceValue($qty, $taxIn); - $objItem->sell_base = $objItem->sell; + $objItem->sell_base = $objItem->sell; $objItem->sell_total = $objItem->sell_base * $objItem->qty; $objItem->tax_in = 1; $objItem->save(); @@ -950,7 +961,7 @@ public function AddProduct($objProduct, } $objItem->qty = ($objItem->qty ? $objItem->qty : 0); - $objItem->sell_total = $objItem->sell_base * $objItem->qty; + $objItem->sell_total = $objItem->sell_base * $objItem->qty; if ($objItem->save() === false) { @@ -972,7 +983,7 @@ public function AddProduct($objProduct, return $objItem->id; } - /** + /** * Checks if current taxcode should be tax inclusive or not.. * @return */ diff --git a/core/protected/models/CartShipping.php b/core/protected/models/CartShipping.php index bee4cfb2..a54121ca 100644 --- a/core/protected/models/CartShipping.php +++ b/core/protected/models/CartShipping.php @@ -96,7 +96,7 @@ public function updateShipping() } Yii::app()->shoppingcart->shipping_id = $this->id; - Yii::app()->shoppingcart->save(); + Yii::app()->shoppingcart->recalculateAndSave(); return true; } diff --git a/core/protected/models/Configuration.php b/core/protected/models/Configuration.php index 8a7e6374..9f02d633 100644 --- a/core/protected/models/Configuration.php +++ b/core/protected/models/Configuration.php @@ -400,6 +400,8 @@ protected function dummyUpdateFile($intFileStatus) */ protected function updateLanguages($lang) { + // Remove extraneous spaces from the language string. + $lang = str_replace(" ", "", $lang); $arr = explode(",",$lang); //If we didn't include our default language as part of our array, add it (first) @@ -489,4 +491,4 @@ protected function afterSave() parent::afterSave(); } -} \ No newline at end of file +} diff --git a/core/protected/modules/admin/assets/img/favicon-32x32.png b/core/protected/modules/admin/assets/img/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca72f98a41a3490393f4ac7fda9fcb8818bbfb2 GIT binary patch literal 871 zcmV-t1DO1YP)WC}NZGq#jh2=qEn_8i<3^NHLN0`h zBSrokk?<~mTGCp(I4!LuX}LJ(ZRdS^-{1Rt-`V6_zkcU@f9HIkr{{N`=REK~!%9_e zrK%r~#*}dwpAPi;X|*u=XE8cci**2K2Ilx@f3YG(IbfwK2Tlak+(~r+I0MY^<5A%9 zq&Z-vssS1Usz(_8!Af<=e=7(DA3`hDGoaQ_hZqb07a%E&UR8)*K@qT0?FftmoD@b| zpaYl*)LN=_s%W_zb*fEacySYG4-d5x6Cc z-jz=~Zv?DVwSjSfi^Aw6aESE(ebkrZPGCCF;P*x%Zv?DV&w*5aTU^?e;L@(t^G}7* ztF2UPfycr27sBY3QTmY)uu?S!#sS)e(L=zgz&OBRE7eq>J42$zYve@E2>7)71eAN~ z1F!^`54;VWzbcI0ZKc`+T*)HU4^#=GN3z+8ia={%9I~g~FwknHD#hIoDGUVTa<7#Y zQ4Z`2#`lEL53E$1fpr0YS{OZmyBW&@ekX7*hgNI{Lcu%!y)|RaT`N^3&=hdDh0!|L zlc|-4s54-IWq#TREWqV>FEA}-%)e9h|Ce9akE;b0o_{Tjmf7q?MW7=XR{+hz=sut; z;Ohe80A0f9uegX*1bnEKhR8Z#rFzKNKOX_AfFHOTkQvrNT#YEjWlySMc_fTppUXzR zN|?ZvUcBHLVe~N2mSt_5|CZS;C87+(sf3qFZ#q{1uK@!r_1qgk;?B&=U~P{u`aqO^ zoZGM+*ZHK-EsP!o_5$Div)6NBB^>g5BN6vDY{C_w6k3GQT^VbRklwH)gwYrNmIEcg zJ6st~;RbNikGBImf^SJ+v9FxtcfdQb9C(7eYNPNISR;&n6-PIAOXdZ);I8Ccu)wCc x#-X^jybNdowgHu%{*0@N=Y-LNg=+p&`~lMP^OV~J?|J|L002ovPDHLkV1i*|nI8ZE literal 0 HcmV?d00001 diff --git a/core/protected/modules/admin/assets/img/ls-logo1002x.png b/core/protected/modules/admin/assets/img/ls-logo1002x.png new file mode 100644 index 0000000000000000000000000000000000000000..d570a2375bacade11129ee27353cf00e9495283f GIT binary patch literal 2639 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 literal 0 HcmV?d00001 diff --git a/core/protected/modules/admin/assets/img/webstore-logo2x.png b/core/protected/modules/admin/assets/img/webstore-logo2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8dbe00a4c897629dea2b34243017a2501166b96b GIT binary patch literal 10270 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%0A< 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 LCNEkpYzY28t?Gdr literal 0 HcmV?d00001 diff --git a/core/protected/modules/admin/components/AdminBaseController.php b/core/protected/modules/admin/components/AdminBaseController.php index cf9771ad..586e74bf 100644 --- a/core/protected/modules/admin/components/AdminBaseController.php +++ b/core/protected/modules/admin/components/AdminBaseController.php @@ -192,7 +192,7 @@ public function beforeAction($action) else $this->setMenuHighlight(); - $baseUrl = '//' . $_SERVER['HTTP_HOST'] . '/'; + $baseUrl = '//' . $_SERVER['HTTP_HOST'] . Yii::app()->getBaseUrl(); Yii::app()->clientScript->registerScript( 'helpers', @@ -757,7 +757,9 @@ protected function registerAsset($file) else $this->assetUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.modules.admin.assets')); + Yii::app()->params['admin_assets'] = $this->assetUrl; $path = $this->assetUrl . '/' . $file; + if(strpos($file, 'js') !== false) return Yii::app()->clientScript->registerScriptFile($path); elseif(strpos($file, 'css') !== false) diff --git a/core/protected/modules/admin/views/layouts/license.php b/core/protected/modules/admin/views/layouts/license.php index e8eb8ca5..dc6055db 100644 --- a/core/protected/modules/admin/views/layouts/license.php +++ b/core/protected/modules/admin/views/layouts/license.php @@ -3,26 +3,27 @@ Web Store Installation - + registerAsset('css/admin.css'); ?> - - + + @@ -30,7 +31,7 @@
- +
Web Store Configuration
diff --git a/core/protected/modules/admin/views/layouts/login.php b/core/protected/modules/admin/views/layouts/login.php index a94d7828..42c2dcbb 100644 --- a/core/protected/modules/admin/views/layouts/login.php +++ b/core/protected/modules/admin/views/layouts/login.php @@ -6,7 +6,7 @@ registerAsset('css/admin.css'); // we prefix with baseUrl to handle instances where Web Store is installed in a sub folder - $strHeaderImageUrl = Yii::app()->baseUrl . '/images/webstore-logo2x.png'; + $strHeaderImageUrl = Yii::app()->params['admin_assets'] . '/img/webstore-logo2x.png'; ?>