From 3254aefbb8dcc94b54470e9836cf39959aae18e9 Mon Sep 17 00:00:00 2001 From: Lee Saferite Date: Tue, 24 Apr 2012 12:19:20 -0700 Subject: [PATCH] Import Magento Release 1.7.0.0 --- .htaccess | 7 + RELEASE_NOTES.txt | 588 +- app/Mage.php | 4 +- ....6.1.0.php => upgrade-1.6.0.0-1.6.1.0.php} | 0 .../Model/Resource/Inbox.php | 8 +- .../Form/Renderer/Fieldset/Element.php | 2 +- .../Sales/Order/Create/Totals/Shipping.php | 9 +- .../controllers/Customer/GroupController.php | 17 +- .../Permissions/UserController.php | 18 +- .../Mage/Api/Model/Server/Adapter/Soap.php | 45 +- app/code/core/Mage/Api/etc/config.xml | 1 + app/code/core/Mage/Api/etc/system.xml | 10 + .../Block/Adminhtml/Attribute/Edit/Form.php | 4 +- .../core/Mage/Api2/Block/Adminhtml/Roles.php | 4 +- .../Mage/Api2/Block/Adminhtml/Roles/Grid.php | 6 +- .../Mage/Api2/Model/Auth/Adapter/Oauth.php | 6 +- app/code/core/Mage/Api2/Model/Config.php | 8 +- .../Api2/Model/Resource/Validator/Eav.php | 95 +- .../core/Mage/Bundle/Model/Product/Type.php | 10 - .../core/Mage/Captcha/Block/Captcha/Zend.php | 5 +- .../Catalog/Model/Api2/Product/Image/Rest.php | 1 + .../Api2/Product/Image/Rest/Admin/V1.php | 3 +- .../Mage/Catalog/Model/Api2/Product/Rest.php | 14 +- .../Model/Api2/Product/Rest/Admin/V1.php | 16 +- .../Model/Api2/Product/Validator/Product.php | 40 +- app/code/core/Mage/Catalog/Model/Category.php | 2 +- .../core/Mage/Catalog/Model/Category/Api.php | 4 + app/code/core/Mage/Catalog/Model/Product.php | 2 +- .../core/Mage/Catalog/Model/Product/Api.php | 5 + .../Mage/Catalog/Model/Product/Api/V2.php | 5 + .../Mage/Catalog/Model/Product/Status.php | 2 +- .../Catalog/Model/Product/Type/Abstract.php | 10 - .../Model/Resource/Layer/Filter/Price.php | 3 +- .../controllers/Product/CompareController.php | 5 +- app/code/core/Mage/Catalog/etc/api2.xml | 16 +- .../CatalogInventory/Block/Qtyincrements.php | 3 - .../CatalogInventory/Model/Stock/Item.php | 41 +- .../Mage/Checkout/Block/Cart/Shipping.php | 2 +- .../Mage/Checkout/Block/Onepage/Abstract.php | 2 +- .../data-upgrade-1.6.0.0.0-1.6.0.0.1.php | 12 +- .../Mage/Core/Controller/Varien/Front.php | 8 +- .../Core/Controller/Varien/Router/Admin.php | 8 +- .../Controller/Varien/Router/Standard.php | 8 +- app/code/core/Mage/Core/Helper/Cookie.php | 15 + .../Mage/Core/Model/File/Storage/Database.php | 12 + .../Mage/Core/Model/Resource/Db/Abstract.php | 4 +- .../core/Mage/Core/Model/Translate/Inline.php | 16 +- app/code/core/Mage/Core/etc/system.xml | 3 +- .../Customer/Model/Api2/Customer/Address.php | 21 +- .../Model/Api2/Customer/Address/Rest.php | 12 +- .../Model/Api2/Customer/Address/Validator.php | 83 +- .../Customer/Model/Api2/Customer/Rest.php | 16 +- .../Sales/Order/Pdf/Items/Creditmemo.php | 87 +- .../Model/Sales/Order/Pdf/Items/Invoice.php | 28 +- .../core/Mage/OAuth/Block/Authorize/Style.php | 47 - .../Block/Adminhtml/Oauth}/Admin/Token.php | 8 +- .../Adminhtml/Oauth}/Admin/Token/Grid.php | 16 +- .../Block/Adminhtml/Oauth}/Authorize.php | 24 +- .../Adminhtml/Oauth}/Authorize/Button.php | 10 +- .../Adminhtml/Oauth}/AuthorizedTokens.php | 8 +- .../Oauth}/AuthorizedTokens/Grid.php | 24 +- .../Block/Adminhtml/Oauth}/Consumer.php | 8 +- .../Block/Adminhtml/Oauth}/Consumer/Edit.php | 12 +- .../Adminhtml/Oauth}/Consumer/Edit/Form.php | 12 +- .../Block/Adminhtml/Oauth}/Consumer/Grid.php | 12 +- .../Mage/{OAuth => Oauth}/Block/Authorize.php | 12 +- .../Block/Authorize/Abstract.php | 24 +- .../Block/Authorize/Button.php | 6 +- .../Block/Authorize/ButtonBaseAbstract.php | 6 +- .../Block/AuthorizeBaseAbstract.php | 6 +- .../Block/Customer/Token/List.php | 24 +- .../core/Mage/{OAuth => Oauth}/Exception.php | 6 +- .../Mage/{OAuth => Oauth}/Helper/Data.php | 85 +- .../Mage/{OAuth => Oauth}/Model/Consumer.php | 36 +- .../Model/Consumer/Validator/KeyLength.php | 12 +- .../Mage/{OAuth => Oauth}/Model/Nonce.php | 18 +- .../Mage/{OAuth => Oauth}/Model/Observer.php | 74 +- .../Model/Resource/Consumer.php | 6 +- .../Model/Resource/Consumer/Collection.php | 6 +- .../{OAuth => Oauth}/Model/Resource/Nonce.php | 6 +- .../Model/Resource/Nonce/Collection.php | 6 +- .../{OAuth => Oauth}/Model/Resource/Setup.php | 6 +- .../{OAuth => Oauth}/Model/Resource/Token.php | 12 +- .../Model/Resource/Token/Collection.php | 20 +- .../Mage/{OAuth => Oauth}/Model/Server.php | 52 +- .../Mage/{OAuth => Oauth}/Model/Token.php | 64 +- .../Oauth}/Admin/TokenController.php | 20 +- .../Adminhtml/Oauth}/AuthorizeController.php | 93 +- .../Oauth}/AuthorizedTokensController.php | 24 +- .../Adminhtml/Oauth}/ConsumerController.php | 22 +- .../controllers/AuthorizeController.php | 68 +- .../controllers/Customer/TokenController.php | 20 +- .../controllers/InitiateController.php | 8 +- .../controllers/TokenController.php | 8 +- .../Mage/{OAuth => Oauth}/etc/adminhtml.xml | 8 +- .../core/Mage/{OAuth => Oauth}/etc/config.xml | 38 +- .../core/Mage/{OAuth => Oauth}/etc/system.xml | 2 +- .../sql/oauth_setup/install-1.0.0.0.php | 14 +- .../core/Mage/Page/Block/Html/Notices.php | 29 - .../core/Mage/Page/Block/Template/Links.php | 4 +- app/code/core/Mage/Page/etc/config.xml | 2 +- .../Paygate/Block/Authorizenet/Form/Cc.php | 2 +- app/code/core/Mage/Paygate/etc/config.xml | 3 + .../Mage/Payment/Block/Form/Container.php | 2 +- app/code/core/Mage/Sales/Model/Api2/Order.php | 12 +- .../Api2/Order/{Comments.php => Comment.php} | 2 +- .../Api2/Order/{Comments => Comment}/Rest.php | 2 +- .../{Comments => Comment}/Rest/Admin/V1.php | 2 +- .../Rest/Customer/V1.php | 2 +- .../Model/Api2/Order/{Items.php => Item.php} | 2 +- .../Model/Api2/Order/{Items => Item}/Rest.php | 2 +- .../Order/{Items => Item}/Rest/Admin/V1.php | 2 +- .../{Items => Item}/Rest/Customer/V1.php | 2 +- .../Model/Order/Invoice/Total/Discount.php | 5 +- .../Order/Pdf/Items/Creditmemo/Default.php | 34 +- .../Model/Order/Pdf/Items/Invoice/Default.php | 10 +- app/code/core/Mage/Sales/Model/Quote.php | 2 +- .../Mage/Sales/Model/Quote/Item/Abstract.php | 16 - app/code/core/Mage/Sales/etc/api2.xml | 32 +- .../Mage/SalesRule/Model/Quote/Discount.php | 4 +- .../Mage/Shipping/Model/Carrier/Abstract.php | 4 +- .../core/Mage/Tax/Block/Checkout/Shipping.php | 6 +- .../Usa/Model/Shipping/Carrier/Abstract.php | 10 +- .../Shipping/Carrier/Dhl/International.php | 26 +- .../Model/Shipping/Carrier/Dhl/Label/Pdf.php | 18 +- .../Carrier/Dhl/Label/Pdf/PageBuilder.php | 47 +- .../Widget/Instance/Edit/Tab/Settings.php | 18 +- .../Wishlist/controllers/IndexController.php | 2 +- .../default/default/layout/oauth.xml | 133 +- .../sales/order/view/items/renderer.phtml | 4 +- .../catalog/product/tab/inventory.phtml | 81 +- .../template/currencysymbol/grid.phtml | 2 +- .../default/default/template/empty.phtml | 5 +- .../oauth/authorize/button-simple.phtml | 4 +- .../template/oauth/authorize/button.phtml | 6 +- .../oauth/authorize/confirm-simple.phtml | 2 +- .../template/oauth/authorize/confirm.phtml | 2 +- .../oauth/authorize/form/login-simple.phtml | 6 +- .../template/oauth/authorize/form/login.phtml | 6 +- .../oauth/authorize/head-simple.phtml | 6 +- .../oauth/authorize/reject-simple.phtml | 9 +- .../template/oauth/authorize/reject.phtml | 2 +- .../template/oauth/authorize/simple-css.phtml | 251 - .../sales/order/create/items/grid.phtml | 4 +- .../sales/order/creditmemo/create/form.phtml | 2 +- .../sales/order/creditmemo/view/form.phtml | 2 +- .../sales/order/invoice/create/form.phtml | 2 +- .../sales/order/invoice/view/form.phtml | 2 +- .../sales/order/shipment/create/form.phtml | 2 +- .../sales/order/shipment/tracking/info.phtml | 2 +- .../sales/order/shipment/view/form.phtml | 2 +- .../template/sales/order/view/info.phtml | 2 +- .../system/currency/rate/matrix.phtml | 2 +- .../default/template/widget/instance/js.phtml | 18 +- .../frontend/base/default/layout/catalog.xml | 18 - .../frontend/base/default/layout/oauth.xml | 124 +- .../frontend/base/default/layout/wishlist.xml | 30 +- .../base/default/template/captcha/zend.phtml | 2 +- .../base/default/template/checkout/cart.phtml | 4 +- .../checkout/onepage/payment/methods.phtml | 2 +- .../template/checkout/onepage/progress.phtml | 2 +- .../default/template/checkout/success.phtml | 2 +- .../oauth/authorize/button-simple.phtml | 62 + .../template/oauth/authorize/button.phtml | 4 +- .../oauth/authorize/confirm-simple.phtml | 52 + .../template/oauth/authorize/confirm.phtml | 2 +- .../oauth/authorize/form/login-simple.phtml | 75 + .../template/oauth/authorize/form/login.phtml | 2 +- .../oauth/authorize/head-simple.phtml | 4 +- .../oauth/authorize/reject-simple.phtml} | 25 +- .../template/oauth/authorize/reject.phtml | 2 +- .../template/oauth/customer/token/list.phtml | 4 +- .../default/template/page/html/notices.phtml | 10 +- .../express/review/shipping/method.phtml | 2 +- .../template/paypaluk/express/review.phtml | 2 +- .../template/sales/order/details.phtml | 2 +- .../default/template/sales/order/print.phtml | 2 +- .../sales/order/print/creditmemo.phtml | 2 +- .../template/sales/order/print/invoice.phtml | 2 +- .../template/sales/order/trackinginfo.phtml | 7 +- .../frontend/default/iphone/layout/bundle.xml | 8 +- .../default/iphone/layout/catalog.xml | 97 +- .../default/iphone/layout/catalogsearch.xml | 47 +- .../default/iphone/layout/checkout.xml | 37 +- .../frontend/default/iphone/layout/cms.xml | 6 + .../default/iphone/layout/contacts.xml | 20 +- .../default/iphone/layout/customer.xml | 94 +- .../default/iphone/layout/newsletter.xml | 68 + .../frontend/default/iphone/layout/page.xml | 86 +- .../default/iphone/layout/persistent.xml | 95 - .../frontend/default/iphone/layout/review.xml | 21 +- .../frontend/default/iphone/layout/rss.xml | 100 + .../frontend/default/iphone/layout/sales.xml | 507 ++ .../iphone/layout/sales/billing_agreement.xml | 1 + .../default/iphone/layout/sendfriend.xml | 2 +- .../frontend/default/iphone/layout/tag.xml | 27 +- .../default/iphone/layout/wishlist.xml | 140 + .../default/iphone/locale/en_US/translate.csv | 7 - .../template/catalog/category/view.phtml | 70 + .../iphone/template/catalog/layer/view.phtml | 23 +- .../template/catalog/navigation/top.phtml | 3 - .../catalog/product/compare/list.phtml | 258 - .../catalog/product/compare/sidebar.phtml | 68 - .../template/catalog/product/gallery.phtml | 38 +- .../template/catalog/product/list.phtml | 153 +- .../catalog/product/list/toolbar.phtml | 45 +- .../catalog/product/list/upsell.phtml | 42 +- .../template/catalog/product/price.phtml | 428 ++ ...addtocartbottom.phtml => price_msrp.phtml} | 29 +- ...ddtocart.phtml => price_msrp_noform.phtml} | 29 +- .../template/catalog/product/view.phtml | 145 +- .../template/catalog/product/view/addto.phtml | 21 +- .../template/catalog/product/view/media.phtml | 6 +- .../product/view/type/grouped_grid.phtml | 76 - .../template/catalogsearch/form.mini.phtml | 9 +- .../template/catalogsearch/result.phtml | 24 - .../iphone/template/checkout/cart.phtml | 98 +- .../template/checkout/cart/coupon.phtml | 59 - .../template/checkout/cart/item/default.phtml | 438 +- .../template/checkout/cart/sidebar.phtml | 79 - .../iphone/template/checkout/cartheader.phtml | 100 - .../template/checkout/onepage/login.phtml | 123 - .../checkout/onepage/review/info.phtml | 25 +- .../checkout/onepage/review/item.phtml | 401 +- .../checkout/onepage/review/totals.phtml | 2 +- .../iphone/template/checkout/success.phtml | 66 + .../customer/account/dashboard/address.phtml | 45 + .../customer/account/navigation.phtml | 46 +- .../template/customer/address/book.phtml | 107 + .../iphone/template/customer/form/edit.phtml | 115 - .../customer/form/forgotpassword.phtml | 49 - .../iphone/template/customer/form/login.phtml | 84 +- .../template/customer/form/register.phtml | 180 - .../checkout/cart/item/default.phtml | 302 + .../checkout/onepage/review/item.phtml | 254 + .../downloadable/customer/products/list.phtml | 60 + .../items/renderer/downloadable.phtml | 325 ++ .../invoice/items/renderer/downloadable.phtml | 320 ++ .../order/items/renderer/downloadable.phtml | 335 ++ .../template/newsletter/subscribe.phtml | 49 + .../iphone/template/page/1column.phtml | 6 +- .../iphone/template/page/html/footer.phtml | 2 +- .../iphone/template/page/html/header.phtml | 33 +- .../template/links.phtml} | 29 +- .../template/paypal/express/review.phtml | 171 + .../express/review/details.phtml} | 21 +- .../persistent/checkout/onepage/login.phtml | 67 +- .../persistent/customer/form/login.phtml | 91 +- .../persistent/customer/form/register.phtml | 191 - .../persistent/remember_me_tooltip.phtml | 61 + .../template/review/customer/list.phtml | 58 + .../sales/billing/agreement/view.phtml | 110 + .../template/sales/billing/agreements.phtml | 98 + .../sales/order/creditmemo/items.phtml | 44 + .../creditmemo/items/renderer/default.phtml | 322 ++ .../iphone/template/sales/order/history.phtml | 65 +- .../template/sales/order/invoice/items.phtml | 44 + .../invoice/items/renderer/default.phtml | 312 + .../iphone/template/sales/order/items.phtml | 38 +- .../sales/order/items/renderer/default.phtml | 331 ++ .../iphone/template/sales/order/recent.phtml | 19 +- .../iphone/template/sales/order/totals.phtml | 4 +- .../iphone/template/sendfriend/send.phtml | 148 - .../default/iphone/template/tag/list.phtml | 18 +- .../iphone/template/tax/order/tax.phtml | 81 + .../template/wishlist/item/column/cart.phtml | 52 + .../item/column/image.phtml} | 16 +- .../template/wishlist/item/column/info.phtml | 39 + .../item/configure/addto.phtml} | 19 +- .../iphone/template/wishlist/item/list.phtml | 56 + .../iphone/template/wishlist/shared.phtml | 73 + .../iphone/template/wishlist/view.phtml | 136 +- .../default/modern/layout/catalog.xml | 18 - .../default/modern/layout/customer.xml | 23 + .../default/modern/layout/wishlist.xml | 45 +- .../modern/template/checkout/cart.phtml | 4 +- app/etc/modules/Mage_Api2.xml | 2 +- .../{Mage_OAuth.xml => Mage_Oauth.xml} | 6 +- app/locale/en_US/Mage_Adminhtml.csv | 2 +- app/locale/en_US/Mage_Api.csv | 1 + app/locale/en_US/Mage_Api2.csv | 32 + app/locale/en_US/Mage_Catalog.csv | 1 - app/locale/en_US/Mage_Checkout.csv | 2 +- app/locale/en_US/Mage_Core.csv | 1 + app/locale/en_US/Mage_ImportExport.csv | 36 +- .../en_US/{Mage_OAuth.csv => Mage_Oauth.csv} | 9 +- app/locale/en_US/Mage_Page.csv | 2 +- app/locale/en_US/Mage_Payment.csv | 1 - app/locale/en_US/Mage_Usa.csv | 3 + app/locale/en_US/Mage_Widget.csv | 1 - app/locale/en_US/Mage_Wishlist.csv | 2 +- downloader/Maged/Controller.php | 4 +- downloader/template/footer.phtml | 2 +- downloader/template/install/footer.phtml | 2 +- errors/default/page.phtml | 2 +- .../adminhtml/product/composite/configure.js | 6 +- js/mage/captcha.js | 30 +- lib/Varien/Db/Adapter/Interface.php | 5 + lib/Varien/Db/Adapter/Pdo/Mysql.php | 2 +- .../default/default/oauth-simple.css | 239 + skin/frontend/base/default/images/cvv.gif | Bin 18112 -> 19277 bytes .../base/default/js/checkout/review.js | 4 +- skin/frontend/default/blank/images/cvv.gif | Bin 18112 -> 19277 bytes skin/frontend/default/blue/css/styles.css | 2 + .../default/default/css/oauth-simple.css | 239 + skin/frontend/default/default/css/styles.css | 5 +- skin/frontend/default/default/images/cvv.gif | Bin 18112 -> 19277 bytes skin/frontend/default/iphone/css/custom.css | 65 + skin/frontend/default/iphone/css/iphone.css | 5060 ++++++----------- .../default/iphone/images/arrow_left.png | Bin 0 -> 1101 bytes .../iphone/images/arrow_left_retina.png | Bin 0 -> 1156 bytes .../default/iphone/images/arrow_right.png | Bin 0 -> 1102 bytes .../iphone/images/arrow_right_retina.png | Bin 0 -> 1175 bytes .../default/iphone/images/bg_back_btn.png | Bin 0 -> 1220 bytes .../iphone/images/bg_back_btn_retina.png | Bin 0 -> 1538 bytes .../default/iphone/images/bg_breadcrumb.png | Bin 2864 -> 0 bytes .../iphone/images/bg_breadcrumb_active.png | Bin 2840 -> 0 bytes .../default/iphone/images/bg_button.png | Bin 2558 -> 0 bytes .../default/iphone/images/bg_divider.png | Bin 0 -> 995 bytes .../default/iphone/images/bg_divider_dark.png | Bin 0 -> 1147 bytes .../iphone/images/bg_divider_dark_retina.png | Bin 0 -> 1153 bytes .../iphone/images/bg_divider_retina.png | Bin 0 -> 1019 bytes .../default/iphone/images/bg_drop.jpg | Bin 12907 -> 0 bytes .../default/iphone/images/bg_gradient.png | Bin 0 -> 1094 bytes .../iphone/images/bg_gradient_retina.png | Bin 0 -> 1096 bytes .../default/iphone/images/bg_nav_brd.png | Bin 259 -> 0 bytes .../iphone/images/bg_nav_brd_inactive.png | Bin 869 -> 0 bytes .../frontend/default/iphone/images/bg_qty.png | Bin 283 -> 0 bytes .../default/iphone/images/bg_rating_star.png | Bin 1081 -> 0 bytes .../default/iphone/images/bg_shadow.png | Bin 0 -> 1100 bytes .../iphone/images/bg_shadow_retina.png | Bin 0 -> 1089 bytes .../default/iphone/images/btn_edit.png | Bin 0 -> 1321 bytes .../default/iphone/images/btn_edit_retina.png | Bin 0 -> 1421 bytes .../default/iphone/images/btn_remove.png | Bin 0 -> 1185 bytes .../iphone/images/btn_remove_retina.png | Bin 0 -> 1319 bytes .../default/iphone/images/btn_trash.gif | Bin 1353 -> 0 bytes .../default/iphone/images/btn_trash.png | Bin 1227 -> 0 bytes .../default/iphone/images/custom/arrow.png | Bin 0 -> 1037 bytes .../iphone/images/custom/arrow_retina.png | Bin 0 -> 1088 bytes .../iphone/images/custom/bg_header.png | Bin 0 -> 13919 bytes .../iphone/images/custom/bg_header_retina.png | Bin 0 -> 57132 bytes .../default/iphone/images/custom/bg_logo.png | Bin 0 -> 2793 bytes .../iphone/images/custom/bg_logo_retina.png | Bin 0 -> 5850 bytes .../frontend/default/iphone/images/fabric.jpg | Bin 57452 -> 0 bytes skin/frontend/default/iphone/images/flip.png | Bin 3124 -> 0 bytes .../default/iphone/images/front_banner.png | Bin 7355 -> 0 bytes skin/frontend/default/iphone/images/grid.png | Bin 946 -> 0 bytes .../default/iphone/images/i_add_to_cart.png | Bin 1345 -> 0 bytes .../iphone/images/i_add_to_wishlist.png | Bin 1240 -> 0 bytes .../default/iphone/images/i_arrow.png | Bin 240 -> 0 bytes .../default/iphone/images/i_arrow_small.png | Bin 1304 -> 0 bytes .../default/iphone/images/i_arrow_white.png | Bin 1134 -> 0 bytes .../frontend/default/iphone/images/i_cart.png | Bin 0 -> 1604 bytes .../default/iphone/images/i_cart_retina.png | Bin 0 -> 1686 bytes .../default/iphone/images/i_dropdown.png | Bin 1081 -> 1109 bytes .../iphone/images/i_dropdown_retina.png | Bin 0 -> 1204 bytes .../default/iphone/images/i_gallery.png | Bin 1129 -> 0 bytes .../frontend/default/iphone/images/i_menu.png | Bin 0 -> 1053 bytes .../default/iphone/images/i_menu_arrow.png | Bin 1036 -> 0 bytes .../default/iphone/images/i_menu_cart.png | Bin 1155 -> 0 bytes .../default/iphone/images/i_menu_retina.png | Bin 0 -> 1030 bytes .../default/iphone/images/i_menu_search.png | Bin 1602 -> 0 bytes .../default/iphone/images/i_search.png | Bin 408 -> 1244 bytes .../default/iphone/images/i_search_retina.png | Bin 0 -> 1409 bytes .../frontend/default/iphone/images/i_star.png | Bin 4117 -> 1705 bytes .../default/iphone/images/i_star_black.png | Bin 3540 -> 0 bytes .../default/iphone/images/i_star_blank.png | Bin 0 -> 1905 bytes .../iphone/images/i_star_blank_retina.png | Bin 0 -> 2427 bytes .../default/iphone/images/i_star_retina.png | Bin 0 -> 2054 bytes .../default/iphone/images/i_tell_a_friend.png | Bin 1865 -> 0 bytes .../default/iphone/images/i_view_details.png | Bin 1694 -> 0 bytes .../frontend/default/iphone/images/i_zoom.png | Bin 0 -> 1228 bytes .../default/iphone/images/i_zoom_retina.png | Bin 0 -> 1399 bytes skin/frontend/default/iphone/images/list.png | Bin 946 -> 0 bytes skin/frontend/default/iphone/images/logo.png | Bin 3660 -> 0 bytes .../media/cell_phone_landing_banner1.jpg | Bin 0 -> 21259 bytes .../frontend/default/iphone/images/nav_bg.png | Bin 958 -> 0 bytes .../default/iphone/images/nextlabel.png | Bin 1374 -> 0 bytes .../default/iphone/images/prevlabel.png | Bin 1241 -> 0 bytes .../default/iphone/images/search_icon.png | Bin 1663 -> 0 bytes skin/frontend/default/iphone/js/iphone.js | 618 +- skin/frontend/default/modern/css/styles.css | 4 +- skin/frontend/default/modern/images/cvv.gif | Bin 18112 -> 19277 bytes ...nterface_Adminhtml_Default-1.7.0.0-rc1.xml | 18 - .../Interface_Adminhtml_Default-1.7.0.0.xml | 18 + ...terface_Frontend_Base_Default-1.7.0.0.xml} | 14 +- ...Interface_Frontend_Default-1.7.0.0-rc1.xml | 18 - .../Interface_Frontend_Default-1.7.0.0.xml | 18 + ... => Interface_Install_Default-1.7.0.0.xml} | 12 +- var/package/Lib_Google_Checkout-1.5.0.0.xml | 6 +- ...1-rc1.xml => Lib_Js_Calendar-1.51.1.1.xml} | 10 +- ...1.7.0.0-rc1.xml => Lib_Js_Ext-1.7.0.0.xml} | 10 +- ....7.0.0-rc1.xml => Lib_Js_Mage-1.7.0.0.xml} | 14 +- ...rc1.xml => Lib_Js_Prototype-1.7.0.0.3.xml} | 10 +- ...7.0-rc1.xml => Lib_Js_TinyMCE-3.4.7.0.xml} | 10 +- ....xml => Lib_LinLibertineFont-2.8.14.1.xml} | 10 +- ...e-1.7.0.0-rc1.xml => Lib_Mage-1.7.0.0.xml} | 10 +- var/package/Lib_Phpseclib-1.5.0.0.xml | 4 +- ...1.7.0.0-rc1.xml => Lib_Varien-1.7.0.0.xml} | 12 +- var/package/Lib_ZF-1.11.1.0.xml | 6 +- var/package/Lib_ZF_Locale-1.11.1.0.xml | 4 +- var/package/Mage_All_Latest-1.7.0.0-rc1.xml | 18 - var/package/Mage_All_Latest-1.7.0.0.xml | 18 + ....0.0-rc1.xml => Mage_Centinel-1.7.0.0.xml} | 12 +- ....0.0-rc1.xml => Mage_Compiler-1.7.0.0.xml} | 12 +- ...c1.xml => Mage_Core_Adminhtml-1.7.0.0.xml} | 14 +- var/package/Mage_Core_Modules-1.7.0.0-rc1.xml | 18 - var/package/Mage_Core_Modules-1.7.0.0.xml | 18 + ....0-rc1.xml => Mage_Downloader-1.7.0.0.xml} | 12 +- ...-rc1.xml => Mage_Locale_en_US-1.7.0.0.xml} | 12 +- ....1.xml => Magento_Mobile-1.7.0.0.22.1.xml} | 9 +- ...rc1.xml => Phoenix_Moneybookers-1.3.1.xml} | 12 +- 412 files changed, 11036 insertions(+), 8707 deletions(-) rename app/code/core/Mage/Admin/sql/admin_setup/{mysql4-upgrade-1.6.0.0-1.6.1.0.php => upgrade-1.6.0.0-1.6.1.0.php} (100%) delete mode 100644 app/code/core/Mage/OAuth/Block/Authorize/Style.php rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/Admin/Token.php (88%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/Admin/Token/Grid.php (90%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/Authorize.php (81%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/Authorize/Button.php (83%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/AuthorizedTokens.php (88%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/AuthorizedTokens/Grid.php (90%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/Consumer.php (90%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/Consumer/Edit.php (91%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/Consumer/Edit/Form.php (93%) rename app/code/core/Mage/{OAuth/Block/Adminhtml/OAuth => Oauth/Block/Adminhtml/Oauth}/Consumer/Grid.php (91%) rename app/code/core/Mage/{OAuth => Oauth}/Block/Authorize.php (87%) rename app/code/core/Mage/{OAuth => Oauth}/Block/Authorize/Abstract.php (81%) rename app/code/core/Mage/{OAuth => Oauth}/Block/Authorize/Button.php (92%) rename app/code/core/Mage/{OAuth => Oauth}/Block/Authorize/ButtonBaseAbstract.php (91%) rename app/code/core/Mage/{OAuth => Oauth}/Block/AuthorizeBaseAbstract.php (92%) rename app/code/core/Mage/{OAuth => Oauth}/Block/Customer/Token/List.php (86%) rename app/code/core/Mage/{OAuth => Oauth}/Exception.php (90%) rename app/code/core/Mage/{OAuth => Oauth}/Helper/Data.php (74%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Consumer.php (76%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Consumer/Validator/KeyLength.php (92%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Nonce.php (78%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Observer.php (53%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Resource/Consumer.php (91%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Resource/Consumer/Collection.php (91%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Resource/Nonce.php (93%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Resource/Nonce/Collection.php (91%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Resource/Setup.php (90%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Resource/Token.php (90%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Resource/Token/Collection.php (85%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Server.php (95%) rename app/code/core/Mage/{OAuth => Oauth}/Model/Token.php (81%) rename app/code/core/Mage/{OAuth/controllers/Adminhtml/OAuth => Oauth/controllers/Adminhtml/Oauth}/Admin/TokenController.php (90%) rename app/code/core/Mage/{OAuth/controllers/Adminhtml/OAuth => Oauth/controllers/Adminhtml/Oauth}/AuthorizeController.php (69%) rename app/code/core/Mage/{OAuth/controllers/Adminhtml/OAuth => Oauth/controllers/Adminhtml/Oauth}/AuthorizedTokensController.php (90%) rename app/code/core/Mage/{OAuth/controllers/Adminhtml/OAuth => Oauth/controllers/Adminhtml/Oauth}/ConsumerController.php (93%) rename app/code/core/Mage/{OAuth => Oauth}/controllers/AuthorizeController.php (80%) rename app/code/core/Mage/{OAuth => Oauth}/controllers/Customer/TokenController.php (91%) rename app/code/core/Mage/{OAuth => Oauth}/controllers/InitiateController.php (90%) rename app/code/core/Mage/{OAuth => Oauth}/controllers/TokenController.php (90%) rename app/code/core/Mage/{OAuth => Oauth}/etc/adminhtml.xml (95%) rename app/code/core/Mage/{OAuth => Oauth}/etc/config.xml (85%) rename app/code/core/Mage/{OAuth => Oauth}/etc/system.xml (99%) rename app/code/core/Mage/{OAuth => Oauth}/sql/oauth_setup/install-1.0.0.0.php (96%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Comments.php => Comment.php} (93%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Comments => Comment}/Rest.php (96%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Comments => Comment}/Rest/Admin/V1.php (91%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Comments => Comment}/Rest/Customer/V1.php (94%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Items.php => Item.php} (93%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Items => Item}/Rest.php (96%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Items => Item}/Rest/Admin/V1.php (91%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Items => Item}/Rest/Customer/V1.php (94%) delete mode 100644 app/design/adminhtml/default/default/template/oauth/authorize/simple-css.phtml create mode 100644 app/design/frontend/base/default/template/oauth/authorize/button-simple.phtml create mode 100644 app/design/frontend/base/default/template/oauth/authorize/confirm-simple.phtml create mode 100644 app/design/frontend/base/default/template/oauth/authorize/form/login-simple.phtml rename app/design/frontend/{default/iphone/template/checkout/cart/noItemsHeader.phtml => base/default/template/oauth/authorize/reject-simple.phtml} (59%) create mode 100644 app/design/frontend/default/iphone/layout/newsletter.xml delete mode 100644 app/design/frontend/default/iphone/layout/persistent.xml create mode 100644 app/design/frontend/default/iphone/layout/rss.xml create mode 100644 app/design/frontend/default/iphone/layout/sales.xml create mode 100644 app/design/frontend/default/iphone/layout/wishlist.xml create mode 100644 app/design/frontend/default/iphone/template/catalog/category/view.phtml delete mode 100644 app/design/frontend/default/iphone/template/catalog/product/compare/list.phtml delete mode 100644 app/design/frontend/default/iphone/template/catalog/product/compare/sidebar.phtml create mode 100644 app/design/frontend/default/iphone/template/catalog/product/price.phtml rename app/design/frontend/default/iphone/template/catalog/product/{view/addtocartbottom.phtml => price_msrp.phtml} (58%) rename app/design/frontend/default/iphone/template/catalog/product/{view/addtocart.phtml => price_msrp_noform.phtml} (57%) delete mode 100644 app/design/frontend/default/iphone/template/catalog/product/view/type/grouped_grid.phtml delete mode 100644 app/design/frontend/default/iphone/template/checkout/cart/coupon.phtml delete mode 100644 app/design/frontend/default/iphone/template/checkout/cart/sidebar.phtml delete mode 100644 app/design/frontend/default/iphone/template/checkout/cartheader.phtml delete mode 100644 app/design/frontend/default/iphone/template/checkout/onepage/login.phtml create mode 100644 app/design/frontend/default/iphone/template/checkout/success.phtml create mode 100644 app/design/frontend/default/iphone/template/customer/account/dashboard/address.phtml create mode 100644 app/design/frontend/default/iphone/template/customer/address/book.phtml delete mode 100644 app/design/frontend/default/iphone/template/customer/form/edit.phtml delete mode 100644 app/design/frontend/default/iphone/template/customer/form/forgotpassword.phtml delete mode 100644 app/design/frontend/default/iphone/template/customer/form/register.phtml create mode 100644 app/design/frontend/default/iphone/template/downloadable/checkout/cart/item/default.phtml create mode 100644 app/design/frontend/default/iphone/template/downloadable/checkout/onepage/review/item.phtml create mode 100644 app/design/frontend/default/iphone/template/downloadable/customer/products/list.phtml create mode 100644 app/design/frontend/default/iphone/template/downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml create mode 100644 app/design/frontend/default/iphone/template/downloadable/sales/order/invoice/items/renderer/downloadable.phtml create mode 100644 app/design/frontend/default/iphone/template/downloadable/sales/order/items/renderer/downloadable.phtml create mode 100644 app/design/frontend/default/iphone/template/newsletter/subscribe.phtml rename app/design/frontend/default/iphone/template/{catalog/product/view/type/grouped.phtml => page/template/links.phtml} (51%) create mode 100644 app/design/frontend/default/iphone/template/paypal/express/review.phtml rename app/design/frontend/default/iphone/template/{catalog/product/view/addtowishlist.phtml => paypal/express/review/details.phtml} (66%) delete mode 100644 app/design/frontend/default/iphone/template/persistent/customer/form/register.phtml create mode 100644 app/design/frontend/default/iphone/template/persistent/remember_me_tooltip.phtml create mode 100644 app/design/frontend/default/iphone/template/review/customer/list.phtml create mode 100644 app/design/frontend/default/iphone/template/sales/billing/agreement/view.phtml create mode 100644 app/design/frontend/default/iphone/template/sales/billing/agreements.phtml create mode 100644 app/design/frontend/default/iphone/template/sales/order/creditmemo/items.phtml create mode 100644 app/design/frontend/default/iphone/template/sales/order/creditmemo/items/renderer/default.phtml create mode 100644 app/design/frontend/default/iphone/template/sales/order/invoice/items.phtml create mode 100644 app/design/frontend/default/iphone/template/sales/order/invoice/items/renderer/default.phtml create mode 100644 app/design/frontend/default/iphone/template/sales/order/items/renderer/default.phtml delete mode 100644 app/design/frontend/default/iphone/template/sendfriend/send.phtml create mode 100644 app/design/frontend/default/iphone/template/tax/order/tax.phtml create mode 100644 app/design/frontend/default/iphone/template/wishlist/item/column/cart.phtml rename app/design/frontend/default/iphone/template/{catalog/product/view/options/wrapper/bottom.phtml => wishlist/item/column/image.phtml} (60%) create mode 100644 app/design/frontend/default/iphone/template/wishlist/item/column/info.phtml rename app/design/frontend/default/iphone/template/{catalog/product/view/description.phtml => wishlist/item/configure/addto.phtml} (69%) create mode 100644 app/design/frontend/default/iphone/template/wishlist/item/list.phtml create mode 100644 app/design/frontend/default/iphone/template/wishlist/shared.phtml rename app/etc/modules/{Mage_OAuth.xml => Mage_Oauth.xml} (94%) rename app/locale/en_US/{Mage_OAuth.csv => Mage_Oauth.csv} (92%) create mode 100644 skin/adminhtml/default/default/oauth-simple.css create mode 100644 skin/frontend/default/default/css/oauth-simple.css create mode 100644 skin/frontend/default/iphone/css/custom.css create mode 100644 skin/frontend/default/iphone/images/arrow_left.png create mode 100644 skin/frontend/default/iphone/images/arrow_left_retina.png create mode 100644 skin/frontend/default/iphone/images/arrow_right.png create mode 100644 skin/frontend/default/iphone/images/arrow_right_retina.png create mode 100644 skin/frontend/default/iphone/images/bg_back_btn.png create mode 100644 skin/frontend/default/iphone/images/bg_back_btn_retina.png delete mode 100644 skin/frontend/default/iphone/images/bg_breadcrumb.png delete mode 100644 skin/frontend/default/iphone/images/bg_breadcrumb_active.png delete mode 100644 skin/frontend/default/iphone/images/bg_button.png create mode 100644 skin/frontend/default/iphone/images/bg_divider.png create mode 100644 skin/frontend/default/iphone/images/bg_divider_dark.png create mode 100644 skin/frontend/default/iphone/images/bg_divider_dark_retina.png create mode 100644 skin/frontend/default/iphone/images/bg_divider_retina.png delete mode 100644 skin/frontend/default/iphone/images/bg_drop.jpg create mode 100644 skin/frontend/default/iphone/images/bg_gradient.png create mode 100644 skin/frontend/default/iphone/images/bg_gradient_retina.png delete mode 100644 skin/frontend/default/iphone/images/bg_nav_brd.png delete mode 100644 skin/frontend/default/iphone/images/bg_nav_brd_inactive.png delete mode 100644 skin/frontend/default/iphone/images/bg_qty.png delete mode 100644 skin/frontend/default/iphone/images/bg_rating_star.png create mode 100644 skin/frontend/default/iphone/images/bg_shadow.png create mode 100644 skin/frontend/default/iphone/images/bg_shadow_retina.png create mode 100644 skin/frontend/default/iphone/images/btn_edit.png create mode 100644 skin/frontend/default/iphone/images/btn_edit_retina.png create mode 100644 skin/frontend/default/iphone/images/btn_remove.png create mode 100644 skin/frontend/default/iphone/images/btn_remove_retina.png delete mode 100644 skin/frontend/default/iphone/images/btn_trash.gif delete mode 100644 skin/frontend/default/iphone/images/btn_trash.png create mode 100644 skin/frontend/default/iphone/images/custom/arrow.png create mode 100644 skin/frontend/default/iphone/images/custom/arrow_retina.png create mode 100644 skin/frontend/default/iphone/images/custom/bg_header.png create mode 100644 skin/frontend/default/iphone/images/custom/bg_header_retina.png create mode 100644 skin/frontend/default/iphone/images/custom/bg_logo.png create mode 100644 skin/frontend/default/iphone/images/custom/bg_logo_retina.png delete mode 100644 skin/frontend/default/iphone/images/fabric.jpg delete mode 100644 skin/frontend/default/iphone/images/flip.png delete mode 100644 skin/frontend/default/iphone/images/front_banner.png delete mode 100644 skin/frontend/default/iphone/images/grid.png delete mode 100644 skin/frontend/default/iphone/images/i_add_to_cart.png delete mode 100644 skin/frontend/default/iphone/images/i_add_to_wishlist.png delete mode 100644 skin/frontend/default/iphone/images/i_arrow.png delete mode 100644 skin/frontend/default/iphone/images/i_arrow_small.png delete mode 100644 skin/frontend/default/iphone/images/i_arrow_white.png create mode 100644 skin/frontend/default/iphone/images/i_cart.png create mode 100644 skin/frontend/default/iphone/images/i_cart_retina.png create mode 100644 skin/frontend/default/iphone/images/i_dropdown_retina.png delete mode 100644 skin/frontend/default/iphone/images/i_gallery.png create mode 100644 skin/frontend/default/iphone/images/i_menu.png delete mode 100644 skin/frontend/default/iphone/images/i_menu_arrow.png delete mode 100644 skin/frontend/default/iphone/images/i_menu_cart.png create mode 100644 skin/frontend/default/iphone/images/i_menu_retina.png delete mode 100644 skin/frontend/default/iphone/images/i_menu_search.png create mode 100644 skin/frontend/default/iphone/images/i_search_retina.png delete mode 100644 skin/frontend/default/iphone/images/i_star_black.png create mode 100644 skin/frontend/default/iphone/images/i_star_blank.png create mode 100644 skin/frontend/default/iphone/images/i_star_blank_retina.png create mode 100644 skin/frontend/default/iphone/images/i_star_retina.png delete mode 100644 skin/frontend/default/iphone/images/i_tell_a_friend.png delete mode 100644 skin/frontend/default/iphone/images/i_view_details.png create mode 100644 skin/frontend/default/iphone/images/i_zoom.png create mode 100644 skin/frontend/default/iphone/images/i_zoom_retina.png delete mode 100644 skin/frontend/default/iphone/images/list.png delete mode 100644 skin/frontend/default/iphone/images/logo.png create mode 100644 skin/frontend/default/iphone/images/media/cell_phone_landing_banner1.jpg delete mode 100644 skin/frontend/default/iphone/images/nav_bg.png delete mode 100644 skin/frontend/default/iphone/images/nextlabel.png delete mode 100644 skin/frontend/default/iphone/images/prevlabel.png delete mode 100644 skin/frontend/default/iphone/images/search_icon.png delete mode 100644 var/package/Interface_Adminhtml_Default-1.7.0.0-rc1.xml create mode 100644 var/package/Interface_Adminhtml_Default-1.7.0.0.xml rename var/package/{Interface_Frontend_Base_Default-1.7.0.0-rc1.xml => Interface_Frontend_Base_Default-1.7.0.0.xml} (52%) delete mode 100644 var/package/Interface_Frontend_Default-1.7.0.0-rc1.xml create mode 100644 var/package/Interface_Frontend_Default-1.7.0.0.xml rename var/package/{Interface_Install_Default-1.7.0.0-rc1.xml => Interface_Install_Default-1.7.0.0.xml} (93%) rename var/package/{Lib_Js_Calendar-1.51.1.1-rc1.xml => Lib_Js_Calendar-1.51.1.1.xml} (94%) rename var/package/{Lib_Js_Ext-1.7.0.0-rc1.xml => Lib_Js_Ext-1.7.0.0.xml} (99%) rename var/package/{Lib_Js_Mage-1.7.0.0-rc1.xml => Lib_Js_Mage-1.7.0.0.xml} (91%) rename var/package/{Lib_Js_Prototype-1.7.0.0.3-rc1.xml => Lib_Js_Prototype-1.7.0.0.3.xml} (98%) rename var/package/{Lib_Js_TinyMCE-3.4.7.0-rc1.xml => Lib_Js_TinyMCE-3.4.7.0.xml} (99%) rename var/package/{Lib_LinLibertineFont-2.8.14.1-rc1.xml => Lib_LinLibertineFont-2.8.14.1.xml} (90%) rename var/package/{Lib_Mage-1.7.0.0-rc1.xml => Lib_Mage-1.7.0.0.xml} (97%) rename var/package/{Lib_Varien-1.7.0.0-rc1.xml => Lib_Varien-1.7.0.0.xml} (97%) delete mode 100644 var/package/Mage_All_Latest-1.7.0.0-rc1.xml create mode 100644 var/package/Mage_All_Latest-1.7.0.0.xml rename var/package/{Mage_Centinel-1.7.0.0-rc1.xml => Mage_Centinel-1.7.0.0.xml} (95%) rename var/package/{Mage_Compiler-1.7.0.0-rc1.xml => Mage_Compiler-1.7.0.0.xml} (87%) rename var/package/{Mage_Core_Adminhtml-1.7.0.0-rc1.xml => Mage_Core_Adminhtml-1.7.0.0.xml} (98%) delete mode 100644 var/package/Mage_Core_Modules-1.7.0.0-rc1.xml create mode 100644 var/package/Mage_Core_Modules-1.7.0.0.xml rename var/package/{Mage_Downloader-1.7.0.0-rc1.xml => Mage_Downloader-1.7.0.0.xml} (95%) rename var/package/{Mage_Locale_en_US-1.7.0.0-rc1.xml => Mage_Locale_en_US-1.7.0.0.xml} (86%) rename var/package/{Magento_Mobile-1.6.0.0.22.1.xml => Magento_Mobile-1.7.0.0.22.1.xml} (99%) rename var/package/{Phoenix_Moneybookers-1.3.1-rc1.xml => Phoenix_Moneybookers-1.3.1.xml} (97%) diff --git a/.htaccess b/.htaccess index 2ea2a09ca8..60e17952c8 100644 --- a/.htaccess +++ b/.htaccess @@ -144,6 +144,13 @@ RewriteCond %{REQUEST_METHOD} ^TRAC[EK] RewriteRule .* - [L,R=405] +############################################ +## redirect for mobile user agents + + #RewriteCond %{REQUEST_URI} !^/mobiledirectoryhere/.*$ + #RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC] + #RewriteRule ^(.*)$ /mobiledirectoryhere/ [L,R=302] + ############################################ ## always send 404 on missing files in these folders diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index b54e748dbc..b9dd15ad63 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,3 +1,588 @@ +==== 1.7.0.0 ==== + +=== Major Highlights === +Optimized Layered Navigation for pricing +Added CAPTCHA support for admin and customer users +Added different base price per customer group +Added auto generation of coupon codes +Improved the basic Backup and Rollback functionality +Added EU VAT ID validation service integration +Implemented DHL for Europe +Added REST API +Mobile theme was redesigned +Implemented the frontend Cookie Restriction functionality (EU cookie law compliance) +Added the Cash On Delivery and Bank Transfer payment methods + +=== Improvements === +XmlConnect package release v22.1 +Upgraded TinyMCE to v3.4.7 +Added the ability to translate action array parameter nodes in the layout.xml +Added the support for using custom currency symbols +Added the functionality for cleaning old cache files by cron tasks +Refactored rules-based modules +Improved customer address handling for PayPal Express checkout +Added the ability to customize a store logo in emails from an admin +Refactored the escaping functionality used for translations +Added the ability to turn off/on IP tracking (e.g. 'Placed from IP', displayed on the order-related pages in the backend) +Provided the logic for disabling ACL resources in configuration files +Added additional placeholders for extension developers + +=== Changes === +Added support for "memcached" PHP extension +The js/scriptaculous/dragdrop.js library is upgraded to version 1.9.0 +Files in .jpg format are allowed to be used for a favicon +Added the ability to extend the list of attributes in the SELECT query for categories loaded via Mage_Catalog_Model_Resource_Category_Flat::_loadNodes() +Added changes to lib/Varien/Http/Adapter/Curl.php to provide interface for setting different cURL options +Displaying State or Province can be optional for any country +Added the ability to get Magento type from Mage.php + +=== Fixes === +Fixed: Impossible to reset Customer Password via link in Forgot Password email template +Fixed: Reference to non-existing class Mage_Catalog_Block_Seo_Searchterm +Fixed: System can't find page by the URL when Payflow Link PayPal payment method used +Fixed: Grammar issues reported by community +Fixed: Layout is broken for PDF documents, values are overlapped +Fixed: Admin Notifications in backend should not appear again after it been removed or marked as read +Fixed: Reference and contents information is absent in the shipping label for DHL +Fixed: Include commented rewrite rules to .htaccess +Fixed: Shopping Cart is cleared after pressing "Enter" +Fixed: Group Name of "Not Logged IN" Customer Groups is removed automatically after saving +Fixed: Not possible to assign one picture to two products (Media Storage = Database) +Fixed: Exception in shop when accessed by Googlebot +Fixed: SLI for DHL used credentials only from the default configuration scope +Fixed: Old copyright data and system version exist in page footer +Fixed: CMS widgets: Required validation for drop-down "Type" and "Design Package/Theme" +Fixed: On "New Widget Instance" page, drop-down "Type" doesn't have required validation +Fixed: Auto-redirect to Base URL = Yes with correct behavior may cause problems when secure URL is hardcoded +Fixed: Enable Qty Increments on global config has higher priority than product config +Fixed: Short open tag in app/design/adminhtml/default/default/template/currencysymbol/grid.phtml +Fixed: UPS, FedEx and DHL methods should work if zip code from/to isn't required +Fixed: No ability to cancel Partial Authorization checkout with Authorize.net in the frontend +Fixed: Incorrect displaying of the "New User" page +Fixed: Multiple warnings in system.log after running compilation process +Fixed: Session is lost while redirecting from secure to unsecure URL +Fixed: Redirect to base URL should consider full request URI string +Fixed: Product name with <> processed incorrect during creation order in backend +Fixed: FedEx SmartPost method doesn't appears in rate request +Fixed: 3 and 4 digits CVV should be accepted for JCB cards +Fixed: Google Checkout tax isn't applied to Bundle product +Fixed: FPT is not considered by Google Checkout +Fixed: An error occurred during second Customer authorization fail +Fixed: Property declaration typo in Mage_Bundle_Adminhtml_Catalog_Product_Edit_Tab_Bundle_Option +Fixed: Product is not shown in the Catalog when it is Out of Stock and Display Out of Stock Products = Yes +Fixed: Impossible download downloadable product (problem with secure link) +Fixed: Wrong letter case in class names may cause malfunction when Compiler is enabled +Fixed: Incorrect invoice amount in order with FPT +Fixed: Attributes not connected to any product of selected category display in layered navigation +Fixed: No feedback on creating attribute set in IE9 and IE8 +Fixed: Unexpected breaking import process leads to creation phantom data into database +Fixed: Two of the same FedEx option show instead of one +Fixed: Notification for Google contains link that cover large area and blocked user work +Fixed: Possible to create user role with empty name if it starts with "less than" sign +Fixed: Impossible to use Clear Shopping Cart button in IE7 +Fixed: Impossible create product with one FPT price for all State/Province +Fixed: 'Interval Division Limit' affects to global displaying of Layered Navigation +Fixed: Shipping method must be recalculated on Order Review page if Transfer Shipping Options is enabled +Fixed: Issue with different secure/unsecure URL cause session data lost +Fixed: Can't save option Country in Store Information Tab +Fixed: Rule date information has been missed after using Product Rule or Shopping Cart Price Rule +Fixed: Billing/Shipping address algorithm for PayPal Express checkout works incorrect +Fixed: Error during quick search +Fixed: Block "Description" on Catalog Price Rule page has incorrect size +Fixed: Search doesn't work if Maximum Query Length field is empty +Fixed: The Tags Product RSS doesn't update information after changing tag +Fixed: Customer Attributes and Customer Address Attributes validation +Fixed: Issue with final price calculation for Configurable product with sub products +Fixed: Blank page after customer registration with enabled compilation +Fixed: "Place Order" button must be enabled if all required fields passed the validation on PayPal Express Checkout +Fixed: Products quantity displays incorrect in price ranges after import (rounding problem) +Fixed: Layout issue in shopping cart on frontend (IE8) +Fixed: Impossible to assign user to the role if he is assigned to another role +Fixed: 'Total records found' on Reports -> Tags -> Popular page shows wrong quantity of records +Fixed: Unable to refresh lifetime statistics +Fixed: After changing Price Navigation Step calculation from Automatic(eq price range) to Automatic(eq prod count) the category is loaded very slowly +Fixed: No ability to create Shipping Label (in case with USPS First-Class Mail International Parcel method) +Fixed: It is impossible to create Shipping Label for FedEx +Fixed: Redirect Customer to Account Dashboard after Logging is in enabled and doesn't work for Wishlist +Fixed: No ability to edit values using mass actions for product in IE8, IE9 +Fixed: Wrong message during checkout process in Inline Translate mode +Fixed: Default country is selected in Shipping Address during Admin order creation +Fixed: The Static block widget doesn't displayed on the Product View Extra hint for bundle product +Fixed: Bunch of W3C validation errors on frontend while using inline translate +Fixed: Product's association to root category is lost after export/import +Fixed: WYSIWYG Editor: Page is scrolled to the top after inserting variables +Fixed: Incorrect Backup/Rollback message +Fixed: FedEx Free shipping doesn't work correctly +Fixed: Configurable product displaying double price when choosing option +Fixed: Impossible to configure Admin User Emails for store view scope +Fixed: Long payment method data is printed improperly in PDF invoice +Fixed: Impossibility of changing the Rating Value title for store view in existing Rating Value with filled the Rating Value title for store view +Fixed: Trademark symbol not showing up +Fixed: Add "Delivery Option" for FedEx Configurations +Fixed: Saving product takes long time +Fixed: Notice message disappear after clearing cache +Fixed: Products qty displays incorrect in price ranges after import (rounding problem) +Fixed: Images in CSS fail when merging CSS files +Fixed: Mass action update of any attributes resets multi-select attributes to NULL +Fixed: Move CSS from Prototype Windows plug-in to the backend skin +Fixed: DB adapter should check transaction level in case of DDL query +Fixed: When Payment method additional info contains double quote it is displayed as '"' in invoice PDF +Fixed: Incorrect Unit Price(Excl. Tax) in the Shopping Cart Grid after changing currency +Fixed: Incorrect total quantity of records and pagination doesn't work on Reports->Reviews->Products Reviews page +Fixed: Incorrect title of All Reviews for product page +Fixed: Invalid message in shopping cart when trying to add products amount more than allowed +Fixed: Layered Navigation: Icon "Previous" should be appear only on sub-intervals level +Fixed: Processing error occurred when big numeric value is entered to an browser URL +Fixed: Issue with credit memo for multiple bundled products (order status is Processing) +Fixed: Customer group has to be emulated even if customer is sticky assigned to the group +Fixed: "Customs Value" isn't represented in store base currency +Fixed: Layered Navigation: After clicking on interval $0.00, should be filtered and displayed products with price 0.00 +Fixed: Absence of redirecting to the grid page after saving Role/User +Fixed: Incorrect logic of assignment of unique ID in Varien_Data_Collection +Fixed: Problems with sorting actions +Fixed: When product is set to be not available for selling checkout is still possible depending on its position in cart +Fixed: Impossibility of creating new order with "Reorder" button when Out of stock or disabled products had been ordered +Fixed: "Online Minute Interval" customer configuration option should have global scope +Fixed: Unable to translate Active/Inactive in promotions grid +Fixed: Response headers contains 500 error during frontend pages browsing +Fixed: Add additional button to PayPal Redirect Page +Fixed: Category Permissions: if "Display Product Price" is set to "No" the page toolbar is absent +Fixed: Layered navigation options have wrong order in backend +Fixed: The "Remember Me" check box with the "What's this?" link should be located below the "Forgot Your Password?" link +Fixed: Warning message is absent, when "Recovery Link Expiration Period" is specified within the correct range +Fixed: PayPal HSS (Website Payment Pro Hosted Solutions) France doesn't work +Fixed: Remove email from Billing address section of the PayPal Express Order Review page +Fixed: It is available enter negative digits in the "Layered Navigation Price Step" (on Category page) +Fixed: First/Last Name algorithm for PayPal Express checkout +Fixed: Asterisk isn't imported in Zip/Post Code field +Fixed: Some strings are not translated in widgets +Fixed: Session isn't stored between secure and unsecure URLs when they are located in different paths of the same domain (no SID in request) +Fixed: "USPS First Class International Parcel" will not show up as an option for customers during checkout +Fixed: UPS, FedEx and DHL methods should work if zip code from / to isn't required +Fixed: Issue when trying to create an order from the backend without selecting the state/province +Fixed: HTTP error when uploading images from a MacOS with shockwave flash 11.1.102.55 +Fixed: UPS Configuration "All Methods" should be selected by default +Fixed: Cannot create a product review through backend +Fixed: Typos in Role Permission tree +Fixed: WYSIWYG button layout issue on product page +Fixed: Require Customer's Billing Address is missing option "For Virtual Quotes Only" +Fixed: Errors appears on Design Configuration page if transactional email's logo image and/or favicon files were deleted +Fixed: State/Province value is reset after page reload on some forms +Fixed: Cannot access backend after switching on and switching off "Use Custom Admin URL" +Fixed: "Unsubscribe Selected" and "Delete Selected Problems" buttons don't work +Fixed: After selecting shipping from dropdown system doesn't update order data automatically on PayPal Express Order Review page +Fixed: Buttons on the backend order page don't have titles +Fixed: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION error in Chrome browser +Fixed: Changes related with Apply and Discount Amount options for sub item, applied after clicking "Save Rule" button +Fixed: Invalid Timezone error for Asia/Calcutta when changing default country to India +Fixed: Sorting by position doesn't work for up-sells and related products +Fixed: Absent validation for "Only X left Threshold" field +Fixed: Shipping method calculation based on default shipping address instead of 'Same as billing' setting in backend +Fixed: There is no validation of the field "Handling Fee" that allows number less than zero in UPS shipping method +Fixed: Product name with "<>" processed incorrect during creation order in backend +Fixed: Billing Address Line is always blank if "REQUIREBILLING = 1" for PayPal Express +Fixed: Configuration->Inventory->Qty Increment isn't validated properly +Fixed: Absent message about not enough quantity for bundle and configurable products +Fixed: Wrong behavior of split buttons in IE8 +Fixed: Warning message appears after unselecting user in the Role Users grid +Fixed: Incorrect total weight calculation in external shipping methods for products with decimal Qty Increments +Fixed: Tax calculation is incorrect if configurable product mixed up with other composite products in the shopping cart for Store Tax != Customer Tax +Fixed: Products qty displays wrong in layered navigation after changing currency +Fixed: Billing address fields are editable if "Same as shipping" selected on the PayPal Express order review page +Fixed: Incorrect location of "Clear All" link +Fixed: Incorrect price for bundle fixed product with custom option % and catalog price rule applied +Fixed: Import/Export: Append Complex Data works incorrect for customer's address and product's customs data +Fixed: Discount changes subtotal when FPT is active +Fixed: There is no ability to specify backup's name +Fixed: Multi selections fields for website scope settings are greyed out +Fixed: Persistent Shopping Cart: After deleting customers via backend, on frontend customer should be logout completely +Fixed: Incorrect logic during dividing products into multiple boxes for shipping +Fixed: Polls are not working properly in case with different domains for http and https +Fixed: "Block Reference" drop-down contains wrong list of options for frontend Apps types with Products +Fixed: "Wrong store specified" appears on order creation page +Fixed: Customer can't continue Checkout process after selecting Billing Address +Fixed: Refresh Statistics gone from Reports Role +Fixed: USPS shipping label is printed with "SAMPLE - DO NOT MAIL" sign +Fixed: Shipping methods are not refreshed after Update Order Data is pressed on PayPal Express Order Review page +Fixed: Product still invisible in frontend after required re-index +Fixed: JS error on configurable products +Fixed: Configurable product missing name in error message when exceeding quantity during order +Fixed: Added Display Product Count on the Layout Navigation +Fixed: "FedEx Priority Overnight" shipping method isn't calculated correctly +Fixed: Incorrect product price for Bundle products with fixed prices in the shopping cart +Fixed: "Ship Bundle Items" for bundle product works incorrect +Fixed: Impossible to expand settings accordions on the "Design Settings Editor" tab of Theme Customization page under IE7 +Fixed: Impossibility to configure Bundle product with Disabled status and create new order with it in the backend +Fixed: Customer email isn't saved in Account Information field +Fixed: Unable to sort products by price +Fixed: Errors during creating/extracting "tar" archive with symbolic links +Fixed: Wrong message text in "Manage Coupon" tab on Shopping Cart Price Rule page +Fixed: 404 page not found error occurs when "Default Store" value is changed for Main Website +Fixed: Unable to import products if Catalog price rule enabled +Fixed: Partial Re-index isn't done for product saved in backend +Fixed: Catalog Price Rule: "Save and Apply" action leads to apply ALL rules, but it have to apply only specified rule +Fixed: Tax isn't recalculated on PayPal Express +Fixed: Backup Name field should allow entering only a limited number of characters +Fixed: In the "Subtotal" row of "Coupons Usage Report" displayed amounts for all Shopping Cart Price Rule in the system +Fixed: Shipping address isn't passed to Magento from PayPal +Fixed: Store view isn't changed when customer subscribes for newsletters +Fixed: Shopping Cart Price Rules are not marked after creating Coupons Usage Report +Fixed: Change buttons structure in prototype/windows.js to match general adminhtml buttons structure +Fixed: Wrong error message on Create New Order page in backend +Fixed: Impossible to configure order of displaying rating values in the frontend +Fixed: Incoming Message in Admin Part has the superfluous symbol '\' +Fixed: Numerous issues with promotions on complex products +Fixed: Recipient Postal-State Mismatch error seen on Shipping Label with FedEx +Fixed: Text messages "This is a required fields." are displayed in the hidden FTP section +Fixed: Incorrect popup on Manage Coupon Codes tab in Shopping Cart Price Rule +Fixed: Layered navigation work incorrect if attribute values defined on Store View level +Fixed: Checking import file returns blank page +Fixed: Change the VAT Number format before sending to VAT ID Validation service +Fixed: Simple products with configured customs options displayed in wishlist incorrectly +Fixed: Incorrect text message for product for which there is no enough quantity in stock +Fixed: Setting float Qty Increments is possible, but doesn't work +Fixed: SQL error during checkout when customers register at checkout and orders a nominal item +Fixed: Iframe for gateway isn't reloaded on the Payment information tab +Fixed: Incorrect behavior after placing order from backend in FF9 +Fixed: Catalog price rule skips conditions specified and applies to all products in the catalog +Fixed: Price rule is applying to individual items in bundle when price is set to Dynamic +Fixed: Impossible to save payment method configurations on the Default Config scope +Fixed: "There has been an error processing your request" message is display if not CSV file was selected to import +Fixed: Wrong reindex product attributes after bundle product save +Fixed: Add Products button absent during creating order from backend +Fixed: "All methods" should be selected by default in configuration section "Allowed Methods" for UPS +Fixed: Redirect to base URL issue +Fixed: Added Backup sorting by name possibility +Fixed: Fix grammar mistakes +Fixed: Notifications are not shown if URL Rewrite used +Fixed: "Stop Further Rules Processing" option doesn't work +Fixed: Admin cannot un-assign product from the tag if already approved tag was added to the product by customer +Fixed: Inaccuracy calculation could be 10% for FedEx International Ground shipping +Fixed: Incorrect price calculation of configurable product with custom options (resolved conflicts) +Fixed: Wrong currency displayed in Recently Viewed Product App +Fixed: Tabs are grayed on admin dashboard +Fixed: JS validation for product weight attribute doesn't work +Fixed: Group Price attribute is present as text field using the mass update action +Fixed: Shopping Cart Price Rule isn't applied to Not Logged In Customers +Fixed: "Sign up for our newsletter" text appearing twice +Fixed: Newsletter problem report grid on backend throws Exception +Fixed: Special price doesn't work for Bundles with Dynamic price +Fixed: My Orders block disappears in My Account pages when Reorder functionality is disabled +Fixed: Search doesn't work in Backups grid +Fixed: Re-index "Catalog URL Rewrites" works extremely slowly +Fixed: Checkbox state is preserved for "Put store on the maintenance mode while rollback processing" +Fixed: UPS Configuration All Methods Should Be Selected by Default +Fixed: Rollback fails if database backup was performed after product import +Fixed: Incorrect behavior with 10-digit Zip code, after creating new Tax Rate +Fixed: Configurable attributes that used for create configurable product should not be applied to that product +Fixed: Default group has to be used if customer selects address without VAT number +Fixed: No ability to create Shopping Cart Price Rule +Fixed: Layout issue appears in IE9 on the export grids +Fixed: Issue when trying to view the order using a specific admin user +Fixed: System messages are not displayed at CMS pages and appears only when another message will be invoked +Fixed: On the frontend Search doesn't work properly if search value is 0 (null) +Fixed: The size of the columns in Backup grid is changed if no records were found +Fixed: Maintenance flag isn't deleted if rollback fails with not enough permissions error +Fixed: Customer's group isn't changed if his billing address modified within backend +Added Add a message and the link in the mini shopping cart, when the cart is empty +Fixed: On Edit Shipping Address page button "Validate VAT Number" should be hidden +Fixed: Fatal error when try to ship order with Flat Rate shipping method +- fixed potentially problematic chaining involved getShippingCarrier method +Fixed: No ability to open PDF file with Label +Fixed: Incorrect final price for configurable products if several custom options used +Fixed: "Length", "Width" and "Height" fields on "Create Packages" pop up are active, when "Documents" type is selected in IE7 and IE9 +Fixed: HTTP 500 error on frontend for bundle fixed with percent options enabled for sub-products +Fixed: Shipment created on Magento side doesn't send to Google side for Merchant Calculated shipping +- added check for process only Google Checkout internal methods +Fixed: PDF files for invoices and credit memos are not displaying Including Tax Price +Fixed: Default value that was specified in system settings doesn't presented in Code Format drop-down on Manage Coupon Codes tab +Fixed: Qty wipes out to 0 when no qty column is included on import +Fixed: Broken controls makeup is observed after resizing window when customer's page is opened on the backend +Fixed: Values don't fit to "Date Fields Order" drop-downs in "Date & Time Custom Options" on the Catalog page +Fixed: Processing error appears for products with "Qty Uses Decimals" = No and enabled DHL International +Fixed: Apply Tax to FPT setting doesn't seem to work for products with Fixed Product Taxes +Fixed: Apply Coupon Code textbox doesn't fit in the Apply Coupon Code channel on the backend after reducing the browser window +Fixed: Tax and Shipping amounts aren't showing on the merchant reports for Websites Payments Pro PayFlow Edition +Fixed: Incorrect error popup on Manage Coupon Codes tab in Shopping Cart Price Rule +Fixed: No ability to create Shipping Label with New DHL shipping methods +Fixed: Indexing update on save takes too long for large catalog_product_entity_int tables +Fixed: VAT ID group validation takes Default configuration on order creation from backend +Fixed: Pagination isn't shown on My Product Reviews page when items count exceeds the "Show per page" setting +Fixed: Inline translation missing for customer account information labels +Fixed: Corrupted text if drag attribute on Manage Attribute Sets page (IE8) +Fixed: Wrong calculation price of Bundle product with Fixed price, when special price is configured +Fixed: Error Message isn't displayed during unsuccessful Shipping Label creation +Fixed: Unverified redirect is possible in Checkout controller +Fixed: Customer group in not validated again on checkout if Tax Calculation Based on = Shipping Address +Fixed: "Clear All" link doesn't work +Fixed: Wrong message appears when products quantity is updated in the Shopping Cart with enabled Qty Increments setting +Fixed: Created On field on Manage Coupon Codes grid shows incorrect date/time +Fixed: Incorrect price calculation of configurable product with custom options +Fixed: Manage Products > Custom options: Should be possible to enter negative price for custom option of 'Date' type +Fixed: HTTP 500 Internal Server Error on Admin Forgot Password page +Fixed: CSV/Excel XML export doesn't work on Sales->Invoices if filter by Selected=Yes is used +Fixed: "Same As Billing Address" check-box doesn't work +Fixed: Impossible to enter zero in the base price field for customer groups +Fixed: Group Price attribute position on the Prices tab is incorrect +Fixed: Add new column to the grid with number of used coupons +Fixed: Custom options are not stored when downloadable product is duplicated +Fixed: Broken logic for "Zero Subtotal Checkout" order statuses +Fixed: Coupon codes generation fails when trying to generate large amount of codes +Fixed: PayFlow Link: Using "Pay with PayPal" and selected shipping method that is greater than 0 doesn't process order +Fixed: User have to stay on Add New Rule page if error appears on save shopping cart price rule +Fixed: "Automatically Invoice All Items" should be inactive, when were selected "New Order Status: Pending" in "Zero Subtotal Checkout" settings +Fixed: When enormous request in search fields on the front end 414 error appears +Fixed: JS error on edit Shopping Cart Price Rule Page +Fixed: Clear Shopping Cart button add selected item to Items Ordered if check box "Add to Order" is selected +Fixed: "Clear Shopping Cart" button must be located to the left to "Update Shopping Cart" button +Fixed: Export of Group Price data doesn't work +Fixed: Incorrect translation messages definitions +Fixed: Error message isn't displayed if currency exchange rate not found (in case with DHL Int) +Fixed: User role with partial access can't edit attributes of configurable products +Fixed: Letter "n" missed in the word "handling" +Fixed: Buttons don't react for pressing on the "Widget Options" section in Insert Widget window +Fixed: Regular price displays incorrect +Fixed: {{base_url}} in (un)secure_url doesn't work since 1.6.1 +Fixed: Product selection field gets cleared out with recently added products from latest page +Fixed: "Change" button while checkout doesn't work +Fixed: MySQL BIGINT field type is wrongly casted to integer +Fixed: Magento Connect Manager proceed with installation of extension if error appears on database backup +Fixed: "Set product as New from/to Date" works excluding selected dates +Fixed: Function fireEvent from lib/varien/js.js does not work in IE9 +Fixed: Searching with first and last name has no results +Fixed: CMS Pages: Error in IE7 when select CMS page +Fixed: White screen appears instead of 404 Error Page when going to review a product which doesn't exist +Fixed: "Maximum Package Weight" option works incorrect in case with decimal Qty in shopping Cart +Fixed: Unable to create tables for new EAV entity via SQL upgrade script +Fixed: Customer group isn't revalidated on checkout if Enable Automatic Assignment to Customer Group = Yes +Fixed: Mistake in PayPal Payments Advanced field set title +Fixed: Zero Subtotal Checkout payment method is used, when it is disabled in settings +Fixed: Some info lost from address when customer sets this address as default for shipping +Fixed: Incorrect calculation logic during distribution products between several pieces (in case with DHL) +Fixed: No ability to get shipping rates from US to another country (in case with DHL) +Fixed: Incorrect calculation of pieces weight (in case with Bundle Product) +Fixed: Product Flat Data index causes replication lag on MySQL master/slave model +Fixed: Exception is shown, when admin user provides filtration of Newsletter problem reports by Subscriber +Fixed: Typo in JavaScript error message +Fixed: Unable to do mass action update for products +Fixed: Error Message isn't displayed if currency exchange rate not found (in case with DHL) +Fixed: Weight field is absent during Quick simple product creation +Fixed: correct helper resolving +Fixed: Shipping methods are shown twice in DHLs shipping quote +Fixed: Unable to translate shipping and billing forms on the order creation page +Fixed: Drop-down attribute with layered navigation filter doesn't work with value is set to 0 +Fixed: Free Shipping options don't work (in case with DHL) +Fixed: Handling Fee doesn't applied Per Package +Fixed: Free Shipping options works incorrect +Fixed: WYSIWYG Editor: It's impossible insert Widget to CMS page content +Fixed: Customer's group is not changed if his billing address modified within backend +Fixed: Wrong behavior and exception while using invalid image +Fixed: Uninformative error message during saving two nodes with the same parameter URL Key +Fixed: Unable to change order addresses in the admin panel +Fixed: PayPal Express always uses default billing address from customer account +Fixed: Unable to place order if customer selects Register on checkout +Fixed: Performance Issue: Most Viewed product reports on large amount of items +Fixed: In "Customer Addresses" block before and after of State name is located symbols "," +Fixed: Lightbox 2.5 with IE7 returns JS error on the page +Fixed: Unable to change customer status (confirmed/not confirmed) when customer logged in +Fixed: Incorrect notification for empty field during creation catalog price rules +Fixed: Unable to save product with non-checked multiple select attribute +Fixed: Package Size setting for DHL +Fixed: No Input Validation for Catalog Fields +Fixed: Row Total Calculation in Refund +Fixed: "Maximum number of price intervals" should be written with capital letters +Fixed: Divide Order Weight options for DHL +Fixed: Impossible to create new customer in the backend +Fixed: Catalog data-upgrade-1.6.0.0.4-1.6.0.0.5.php is extremely slow +Fixed: Mage_Catalog_Helper_Product::getProduct() doesn't load product by its SKU +Fixed: Preview Template doesn't work correctly +Fixed: Some options of Bundle Product disappeared from the Invoice PDF +Fixed: "Allow Countries" affects on "Country of Manufacture" attribute +Fixed: Some phrases are not translated +Fixed: Incorrect Ordered Qty in Order (in case with decimal qty) +Fixed: Trademark character isn't being displayed properly in the PDF invoice +Fixed: Can't search transactions by order_id in manager.paypal.com +Fixed: Inline Translation: Grid headers are displayed incorrect on the Tag Edit page +Fixed: "Create Extension Package" page becomes broken after compilation +Fixed: Price including tax isn't displayed for some kinds of bundle products +Fixed: Layered navigation for prices displays incorrect price ranges in manual mode +Fixed: Pager works wrong with float page number +Fixed: Incorrect foreign key for EAV entity tables +Fixed: Misprint in downloader/lib/Mage/Connect/Command/Install.php +Fixed: URL Rewrites must be case-sensitive +Fixed: Unable to install package via uploader if author name contains dash +Fixed: Invoice subtotals for cases with partial invoice and discount +Fixed: Catalog URL Rewrites works incorrectly on creating categories +Fixed: New Oder Status setting, specified for payment method works incorrectly when only virtual products are present in Order +Fixed: Rounding issue in catalog and product view if price includes tax +Fixed: Wrong status of catalog event is displayed by editing catalog event +Fixed: Role Resources are not saved +Fixed: "Qty for Item's Status to Become Out of Stock" option works incorrect +Fixed: XML parser works incorrect +Fixed: Mage_Reports_Model_Mysql4_Product_Index_Abstract must be declared abstract +Fixed: "Date & Time" and "Time" custom options becomes required when editing product +Fixed: Unable to cancel an order for an expired Authorize.net authorization +Fixed: Custom options are not stored when downloadable product is duplicated +Fixed: "Cannot initialize the indexer process" error during Mass "Reindex Data" Action +Fixed: Search by new attribute fails, attribute is not shown in layered navigation +Fixed: Exception when "Price Navigation Step Calculation" set to "Manual" mode and FPT enabled +Fixed: WPPHS: Cancel URL doesn't work as should be +Fixed: Error about insufficient permissions is not appears on database backup creation +Fixed: After rollback admin doesn't redirected to the Log in to Admin Panel page +Fixed: Database Backup must not include indexer table data +Fixed: Scheduled Backup creation/failure isn't logged +Fixed: Deleting backup while it is used by another process +Fixed: Opening *.tar files causes an error "There are no trailing zero-filled records" +Fixed: Unable to search by "Time" and "No" in Backups table +Fixed: Backups are deleted without confirmation +Fixed: Reports must be excluded from database snapshot backup +Fixed: There are no products in filtering results, if step calculation in automatic mode +Fixed: No validation for "Default Price Navigation Step" +Fixed: "Back" button doesn't work on the Create New Order page +Fixed: Incorrect logic of Token expiration in Two Step Password Reset flow +Fixed: Tag
is present in tool-tip for field "Number of results (For the last time placed)" on the Edit Search page +Fixed: Unnecessary hard code in Magento Extension +Fixed: Wrong logic in Mage_Core_Model_Resource_Db_Collection_Abstract::join() +Fixed: Description and Short Description are displayed incorrectly for products added with WYSIWYG +Fixed: Adding product to the cart from the product review page leads to 404 page +Fixed: Special symbols in Sort Order field +Fixed: Text is wrong displayed with enabled Inline translation for Admin on backend +Fixed: Inline Translation: Unable to translate some customer information +Fixed: Useless colon on frontend login page +Fixed: Unable to continue checkout for product with zero price and non-zero shipping price +Fixed: Import news_from_date field is configured poorly. It is not accepting the data from file +Fixed: When updating product data through import, attributes that have a value cannot be assigned a new value that is empty +Fixed: Unable to replace non-complex data for products with empty values during import +Fixed: "Wrong order ID" exception in PayPal Express module under heavy load +Fixed: Tax is applying on the order when creating it in the admin panel for a Customer Group with no taxes +Fixed: Issue with retrieving order statuses for array of states +Fixed: Wrong calculation product price with custom option type = Field and Fixed price +Fixed: Back ordered downloadable product is not available even when it is set to be be accessible when order status is Pending +Fixed: Missing column "position" at table catalog_category_anc_products_index_tmp +Fixed: Incorrect behavior of "Save in address book" option during admin Order creation for a new customer +- refactored Mage_Adminhtml_Model_Sales_Order_Create::_prepareCustomer() +Fixed: Terms and Conditions is named differently on different pages +Fixed: "Apply" and "Discount Amount" fields appear twice in the Catalog Price Rule +Fixed: Poll shows incorrect percentage +Fixed: Added validation ability for admin configuration forms +Fixed: UPS XML misprint +Fixed: Misprint in uploading files form +Fixed: Unnecessary check boxes for gift options +Fixed: Wrong resource section declaration in Mage_Tag module +Fixed: "Customers Submitted this Tag" section doesn't update when customer has deleted tag from his account +Fixed: Correct product in category position +Fixed: Unable to create folder in Media Storage +Fixed: Translation with single quotes breaks JavaScript +Fixed: Out of memory error with hundreds of thousands of coupons attached to a single sales rule +Fixed: Unable to translate buttons and tabs on the "Manage Category" page +Fixed: Product Categories Tree doesn't expand in Manage Products page +Fixed: Incorrect products qty returns to stock after refund for configurable product +Fixed: Swf Uploader problems with cross domain Flash Player Policy +Fixed: Unable to translate "Layout Updates" block on create/edit widget page +Fixed: IE7: "Remember Me" checkbox visible on billing information step +Fixed: CMS WYSIWYG Editor - widget is inserted as new while editing in IE8 +Fixed: Currency code doesn't correspond to the amount in reports +Fixed: Mage_Adminhtml_Block_Sales_Order_View_Tab_History::getFullHistory() doesn't use unique keys for each message +Fixed: Scope labels are shown without translate wrapper +Fixed: Wrong parameters handling in Core Helper formatDate() +Fixed: Apostrophe in store name breaks Google Analytics tracking +Fixed: Customer attribute prefix is not shown on frontend +Fixed: Incorrect rounding for product with custom options (percent price) +Fixed: Invoicing only part of products results in wrong totals calculation +Fixed: Incorrect Row Total Calculation in Refund +- fixed rounding issues for partial Invoice and Refund +- refactored delta rounding +Fixed: Filter by "Allow Countries" not working for Customer Address Form in the backend +- checking added for set country to be in available list +Fixed: There are sql-installs with empty string used as defaults for table columns, while column is not null able +Fixed: Unable to translate "Note" in "Product Stock Options" +Fixed: Various warning are displayed after creating shipment for 0 items +Fixed: Invalid content in Content-header in the top of page during scrolling during order creation +Fixed: "Online invoice" button present in backend when using Zero Subtotal Checkout +Fixed: String cast type in in_array function +Fixed: Newsletter template content should not disappear when "Show" / "Hide Editor" button was clicked +Fixed: Import feature doesn't validate whether super_products_sku is existing or not +Fixed: Cannot place order with downloadable product and discount code using Paypal Express payment method +Fixed: Product still out of stock after Stock Status reindex +Fixed: Save catalog price rule gives trace if full reindex has already started +Fixed: Reindex requires notification is not shown for Stock Status when stock is updated for several products using Mass Action +Fixed: Incorrect FedEx's shipping rates (in case with non-US country origin) +Fixed: After partial reindex MSRP value is not applied (not viewed) in catalog during mass update action +Fixed: Wrong stock reindex on catalog if partial reindex done after full reindex started +Fixed: In error message string "already exists." written twice, when trying to save Product Tax Class with the same name +Fixed: Slow checkout with non-flushed cache +Fixed: Bundle product total is incorrect in Customization block +Fixed: Special price isn't considered for bundle dynamic products in "Your Customization" block +Fixed: Situation when any amount of duplicate reindex process can be running at one time +Fixed: Error with Advanced Search (in case with Date Attribute) +Fixed: Product Flat Data index isn't marked as "Reindex Required" after importing products when Flat Catalog is enabled +Fixed: User can't change root category for the store +Fixed: JS error causes the overwrite of Title field in PayPal Advanced configuration +Fixed: Mass action doesn't partially reindex catalog for product name/description +Fixed: Remove hint about $1 auth amount from informational message text (PayflowLink configuration) +Fixed: Mass action doesn't partially reindex catalog for product prices +Fixed: PayPal Payments Advanced works with $0 Auth instead of Full Auth +Fixed: Impossible to place Order using "Pay with PayPal" button from PayPal Payments Advanced iframe +Fixed: Mass action doesn't partially reindex catalog search for product if searchable attribute was updated +Fixed: "Please wait" AJAX screen doesn't appear in the middle of the page +Fixed: Checkout link on frontend is always referenced as http +Fixed: GET request is incorrectly formed during category creation +- adjusted assertion to determine last viewed store +Fixed: Display of Tier Pricing with Configurable Products +- added functionality to dynamically update tier prices accordingly to chosen product configuration +Fixed: Google Analytics e-commerce tracking not working +Fixed: URL key isn't used when product is saved +Fixed: Added validation class to 'Qty increments' +Fixed: Entered from admin customer date 1970 (or less) is saved as 2070 (or less) +Fixed: cUrl resource must be closed after checking it for errors, not before +Fixed: Exception while products mass update attributes in backend +Fixed: No ability to reindex Catalog URL Rewrites, error is shown +Fixed: Package with Core dependency +Fixed: Stock Availability isn't updated if 1: Run Price Reindex 2: Update Stock Availability on product with mass action/single product +Fixed: Blank page instead shopping cart page when compilation and PSC are enabled +Fixed: Unable to save redirect URL with special characters in search terms +Fixed: Attribute Set field should have client-side validation and appropriate information message +Fixed: "Localhost" isn't a valid domain name for installation +Fixed: Iframe for PayPal Payments Advanced is not loaded +Fixed: Retain the selected tab on editing CMS page +Fixed: Payflow Link Express Checkout (pay with PayPal button) payment +Fixed: Wrong number of reindex options is displayed +Fixed: Wrong phpDocs for Varien_Db_Select +Fixed: JavaScript calendar date range +- fixed JS calendar behavior to use 4-digits year format +Fixed: Performance issue connected with sales rules on adding product to cart +Fixed: DHL same error message appears several times +Fixed: Item Status says "Mixed" when an order has been completed, should say "Shipped" +Fixed: Product option title is absent in backend order page +Fixed: Incorrect items number during multi shipping checkout +Fixed: User name displays differently in the unsuccessful message and in the text field label (log in form) +Fixed: If one or more indexers have Update Required = Yes and all Status = READY for all indexers than there is no notification for user to do reindex action +Fixed: No space between Address line 1 and line 2 in Shipping Label (in case with FedEx) +Fixed: JS works depends on the position attributes of the product +Fixed: Char set encoding is out-of-date in Settlement reports +Fixed: Settlement reports can't be downloaded if in merchant's account 'Settlement file' is set to 6.0 version +Fixed: Unable to login when secure and unsecure URLs are different +Fixed: Customer session lost when using different domain/subdomain names for secure and unsecure URLs +Fixed: "Most Viewed" reports ignore Store View switcher +Fixed: Long FPT name (and product name) doesn't fit into "My cart" block +Fixed: Paypal IPN post back failure +Fixed: Customer was unable to receive newsletters when it was created via backend +Fixed: Wrong Comments History in notification of order creation/cancellation +Fixed: Non escaped string causes javascript error +Fixed: Unable to view pictures during product editing +Fixed: Ampersand is saved incorrect in attribute label +Fixed: IE8: JS error appears after pressing 'Add new rule' in catalog price rules menu +Fixed: Exception after sorting newsletter queue +Fixed: Customer is not able to log in from URL without "www" in some cases +Fixed: SQL error on category view with enabled and configured FPT +Fixed: Automatic reindexing based on matched events doesn't change "Status" and "Last Run" columns at process list grid +Fixed: Performance issue with Magento Compiler + APC results in too many I/O calls +Fixed: Website Administrator is able to change default values +Fixed: Some of wishlist blocks and templates still treat the collection of wishlist items as collection of products +Fixed: Unnecessary comments in "Share Wishlist" email + + + ==== 1.7.0.0-rc1 ==== === Major Highlights === @@ -27,7 +612,7 @@ Provided logic to disable ACL resources through configuration files Added additional placeholders for extensions developers === Changes === -Added "Cache On Delivery" and "Bank Transfer" payment methods +Added "Cash On Delivery" and "Bank Transfer" payment methods Support for "memcached" PHP extension was added Library js/scriptaculous/dragdrop.js is upgraded to version 1.9.0 Image file of "jpg" type are allowed for favicon @@ -1364,7 +1949,6 @@ Fixed Import feature doesn't validate whether super_products_sku is existing or - ==== 1.6.x-devel-131783 ==== === Major Highlights === diff --git a/app/Mage.php b/app/Mage.php index 8736004b52..3dafad03a4 100644 --- a/app/Mage.php +++ b/app/Mage.php @@ -171,8 +171,8 @@ public static function getVersionInfo() 'minor' => '7', 'revision' => '0', 'patch' => '0', - 'stability' => 'rc', - 'number' => '1', + 'stability' => '', + 'number' => '', ); } diff --git a/app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.6.0.0-1.6.1.0.php b/app/code/core/Mage/Admin/sql/admin_setup/upgrade-1.6.0.0-1.6.1.0.php similarity index 100% rename from app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.6.0.0-1.6.1.0.php rename to app/code/core/Mage/Admin/sql/admin_setup/upgrade-1.6.0.0-1.6.1.0.php diff --git a/app/code/core/Mage/AdminNotification/Model/Resource/Inbox.php b/app/code/core/Mage/AdminNotification/Model/Resource/Inbox.php index 1ddb1b2f54..5c75cec142 100755 --- a/app/code/core/Mage/AdminNotification/Model/Resource/Inbox.php +++ b/app/code/core/Mage/AdminNotification/Model/Resource/Inbox.php @@ -101,7 +101,13 @@ public function parse(Mage_AdminNotification_Model_Inbox $object, array $data) foreach ($data as $item) { $select = $adapter->select() ->from($this->getMainTable()) - ->where('url=?', $item['url']); + ->where('title = ?', $item['title']); + + if (empty($item['url'])) { + $select->where('url IS NULL'); + } else { + $select->where('url = ?', $item['url']); + } if (isset($item['internal'])) { $row = false; diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php index 33de152188..bd7bf96474 100644 --- a/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php +++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php @@ -160,7 +160,7 @@ public function getElementLabelHtml() { $element = $this->getElement(); $label = $element->getLabel(); - if (empty($label)) { + if (!empty($label)) { $element->setLabel($this->__($label)); } return $element->getLabelHtml(); diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Totals/Shipping.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Totals/Shipping.php index b4be25c478..f014593d32 100644 --- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Totals/Shipping.php +++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Totals/Shipping.php @@ -30,12 +30,13 @@ * @author Magento Core Team */ -class Mage_Adminhtml_Block_Sales_Order_Create_Totals_Shipping extends Mage_Adminhtml_Block_Sales_Order_Create_Totals_Default +class Mage_Adminhtml_Block_Sales_Order_Create_Totals_Shipping + extends Mage_Adminhtml_Block_Sales_Order_Create_Totals_Default { protected $_template = 'sales/order/create/totals/shipping.phtml'; /** - * Check if we need display shipping include and exlude tax + * Check if we need display shipping include and exclude tax * * @return bool */ @@ -82,7 +83,7 @@ public function getShippingExcludeTax() */ public function getIncludeTaxLabel() { - return $this->helper('tax')->__('Shipping Incl. Tax (%s)', $this->getTotal()->getAddress()->getShippingDescription()); + return $this->helper('tax')->__('Shipping Incl. Tax (%s)', $this->escapeHtml($this->getTotal()->getAddress()->getShippingDescription())); } /** @@ -92,6 +93,6 @@ public function getIncludeTaxLabel() */ public function getExcludeTaxLabel() { - return $this->helper('tax')->__('Shipping Excl. Tax (%s)', $this->getTotal()->getAddress()->getShippingDescription()); + return $this->helper('tax')->__('Shipping Excl. Tax (%s)', $this->escapeHtml($this->getTotal()->getAddress()->getShippingDescription())); } } diff --git a/app/code/core/Mage/Adminhtml/controllers/Customer/GroupController.php b/app/code/core/Mage/Adminhtml/controllers/Customer/GroupController.php index 9f3eec68ea..2b0716ab12 100644 --- a/app/code/core/Mage/Adminhtml/controllers/Customer/GroupController.php +++ b/app/code/core/Mage/Adminhtml/controllers/Customer/GroupController.php @@ -102,14 +102,20 @@ public function saveAction() $customerGroup = Mage::getModel('customer/group'); $id = $this->getRequest()->getParam('id'); if (!is_null($id)) { - $customerGroup->load($id); + $customerGroup->load((int)$id); } - if ($taxClass = $this->getRequest()->getParam('tax_class')) { + $taxClass = (int)$this->getRequest()->getParam('tax_class'); + + if ($taxClass) { try { - $customerGroup->setCode($this->getRequest()->getParam('code')) - ->setTaxClassId($taxClass) - ->save(); + $customerGroupCode = (string)$this->getRequest()->getParam('code'); + + if (!empty($customerGroupCode)) { + $customerGroup->setCode($customerGroupCode); + } + + $customerGroup->setTaxClassId($taxClass)->save(); Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('customer')->__('The customer group has been saved.')); $this->getResponse()->setRedirect($this->getUrl('*/customer_group')); return; @@ -122,7 +128,6 @@ public function saveAction() } else { $this->_forward('new'); } - } /** diff --git a/app/code/core/Mage/Adminhtml/controllers/Permissions/UserController.php b/app/code/core/Mage/Adminhtml/controllers/Permissions/UserController.php index d2051269b2..b1cacfccae 100644 --- a/app/code/core/Mage/Adminhtml/controllers/Permissions/UserController.php +++ b/app/code/core/Mage/Adminhtml/controllers/Permissions/UserController.php @@ -87,19 +87,11 @@ public function editAction() $breadcrumb = $this->__('New User'); } $this->_initAction() - ->_addBreadcrumb($breadcrumb, $breadcrumb) - ->_addContent( - $this->getLayout() - ->createBlock('adminhtml/permissions_user_edit') - ->setData('action', $this->getUrl('*/permissions_user/save')) - ) - ->_addLeft($this->getLayout()->createBlock('adminhtml/permissions_user_edit_tabs')); - - $this->_addJs( - $this->getLayout() - ->createBlock('adminhtml/template') - ->setTemplate('permissions/user_roles_grid_js.phtml') - ); + ->_addBreadcrumb($breadcrumb, $breadcrumb); + + $this->getLayout()->getBlock('adminhtml.permissions.user.edit') + ->setData('action', $this->getUrl('*/permissions_user/save')); + $this->renderLayout(); } diff --git a/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php b/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php index abc69335bf..627bdd8f1c 100644 --- a/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php +++ b/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php @@ -64,7 +64,7 @@ public function getHandler() return $this->getData('handler'); } - /** + /** * Set webservice api controller * * @param Mage_Api_Controller_Action $controller @@ -103,12 +103,11 @@ public function getController() */ public function run() { - $apiConfigCharset = Mage::getStoreConfig("api/config/charset"); if ($this->getController()->getRequest()->getParam('wsdl') !== null) { // Generating wsdl content from template - $io = new Varien_Io_File(); + $io = new Varien_Io_File(); $io->open(array('path'=>Mage::getModuleDir('etc', 'Mage_Api'))); $wsdlContent = $io->read('wsdl.xml'); @@ -121,14 +120,11 @@ public function run() unset($queryParams['wsdl']); } - $wsdlConfig->setUrl( - htmlspecialchars(Mage::getUrl('*/*/*', array('_query'=>$queryParams) )) - ); + $wsdlConfig->setUrl(htmlspecialchars(Mage::getUrl('*/*/*', array('_query'=>$queryParams)))); $wsdlConfig->setName('Magento'); $wsdlConfig->setHandler($this->getHandler()); - $template->setVariables(array('wsdl'=>$wsdlConfig)); - + $template->setVariables(array('wsdl' => $wsdlConfig)); $this->getController()->getResponse() ->clearHeaders() @@ -188,9 +184,9 @@ public function fault($code, $message) } /** - * Check whether Soap extension is loaded + * Check whether Soap extension is loaded * - * @return boolean + * @return boolean */ protected function _extensionLoaded() { @@ -206,18 +202,18 @@ protected function _extensionLoaded() protected function getWsdlUrl($params = null, $withAuth = true) { $urlModel = Mage::getModel('core/url') - ->setUseSession(false); + ->setUseSession(false); $wsdlUrl = $params !== null - ? $urlModel->getUrl('*/*/*', array('_current' => true, '_query' => $params)) - : $urlModel->getUrl('*/*/*'); + ? $urlModel->getUrl('*/*/*', array('_current' => true, '_query' => $params)) + : $urlModel->getUrl('*/*/*'); if( $withAuth ) { $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false); $phpAuthPw = $this->getController()->getRequest()->getServer('PHP_AUTH_PW', false); if ($phpAuthUser && $phpAuthPw) { - $wsdlUrl = sprintf("http://%s:%s@%s", $phpAuthUser, $phpAuthPw, str_replace('http://', '', $wsdlUrl ) ); + $wsdlUrl = sprintf("http://%s:%s@%s", $phpAuthUser, $phpAuthPw, str_replace('http://', '', $wsdlUrl )); } } @@ -233,24 +229,31 @@ protected function getWsdlUrl($params = null, $withAuth = true) protected function _instantiateServer() { $apiConfigCharset = Mage::getStoreConfig('api/config/charset'); - ini_set('soap.wsdl_cache_enabled', '0'); + $wsdlCacheEnabled = (bool) Mage::getStoreConfig('api/config/wsdl_cache_enabled'); + + if ($wsdlCacheEnabled) { + ini_set('soap.wsdl_cache_enabled', '1'); + } else { + ini_set('soap.wsdl_cache_enabled', '0'); + } + $tries = 0; do { $retry = false; try { - $this->_soap = new Zend_Soap_Server( - $this->getWsdlUrl(array("wsdl" => 1)), array('encoding' => $apiConfigCharset) - ); + $this->_soap = new Zend_Soap_Server($this->getWsdlUrl(array("wsdl" => 1)), + array('encoding' => $apiConfigCharset)); } catch (SoapFault $e) { - $importMessage = "can't import schema from 'http://schemas.xmlsoap.org/soap/encoding/'"; - if (false !== strpos($e->getMessage(), $importMessage)) { + if (false !== strpos($e->getMessage(), + "can't import schema from 'http://schemas.xmlsoap.org/soap/encoding/'") + ) { $retry = true; sleep(1); } else { throw $e; } $tries++; - } + } } while ($retry && $tries < 5); use_soap_error_handler(false); $this->_soap diff --git a/app/code/core/Mage/Api/etc/config.xml b/app/code/core/Mage/Api/etc/config.xml index 695d6d6ae9..eceac462b9 100644 --- a/app/code/core/Mage/Api/etc/config.xml +++ b/app/code/core/Mage/Api/etc/config.xml @@ -123,6 +123,7 @@ UTF-8 3600 0 + 0 diff --git a/app/code/core/Mage/Api/etc/system.xml b/app/code/core/Mage/Api/etc/system.xml index 6e37ba6db0..0e1a2e80f5 100644 --- a/app/code/core/Mage/Api/etc/system.xml +++ b/app/code/core/Mage/Api/etc/system.xml @@ -70,6 +70,16 @@ 1 1 + + + select + adminhtml/system_config_source_yesno + adminhtml/system_config_backend_store + 40 + 1 + 1 + 1 + diff --git a/app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Edit/Form.php b/app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Edit/Form.php index b917c9340f..29973a1d7a 100644 --- a/app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Edit/Form.php +++ b/app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Edit/Form.php @@ -26,10 +26,10 @@ /** - * OAuth consumer edit form block + * Attribute edit form block * * @category Mage - * @package Mage_OAuth + * @package Mage_Api2 * @author Magento Core Team */ class Mage_Api2_Block_Adminhtml_Attribute_Edit_Form extends Mage_Adminhtml_Block_Widget_Form diff --git a/app/code/core/Mage/Api2/Block/Adminhtml/Roles.php b/app/code/core/Mage/Api2/Block/Adminhtml/Roles.php index 3e69348fd6..40cbd00050 100644 --- a/app/code/core/Mage/Api2/Block/Adminhtml/Roles.php +++ b/app/code/core/Mage/Api2/Block/Adminhtml/Roles.php @@ -25,10 +25,10 @@ */ /** - * OAuth consumers grid container block + * Roles grid container block * * @category Mage - * @package Mage_OAuth + * @package Mage_Api2 * @author Magento Core Team */ class Mage_Api2_Block_Adminhtml_Roles extends Mage_Adminhtml_Block_Widget_Grid_Container diff --git a/app/code/core/Mage/Api2/Block/Adminhtml/Roles/Grid.php b/app/code/core/Mage/Api2/Block/Adminhtml/Roles/Grid.php index 0807b6b9a2..c920b856c4 100644 --- a/app/code/core/Mage/Api2/Block/Adminhtml/Roles/Grid.php +++ b/app/code/core/Mage/Api2/Block/Adminhtml/Roles/Grid.php @@ -25,10 +25,10 @@ */ /** - * OAuth Consumer grid block + * Roles grid block * * @category Mage - * @package Mage_OAuth + * @package Mage_Api2 * @author Magento Core Team */ class Mage_Api2_Block_Adminhtml_Roles_Grid extends Mage_Adminhtml_Block_Widget_Grid @@ -126,7 +126,7 @@ public function getRowUrl($row) * Decorate 'User Type' column * * @param string $renderedValue Rendered value - * @param Mage_OAuth_Model_Token $row + * @param Mage_Api2_Model_Acl_Global_Role $row * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @param bool $isExport * @return string diff --git a/app/code/core/Mage/Api2/Model/Auth/Adapter/Oauth.php b/app/code/core/Mage/Api2/Model/Auth/Adapter/Oauth.php index c8a437bb26..feccb16ab9 100644 --- a/app/code/core/Mage/Api2/Model/Auth/Adapter/Oauth.php +++ b/app/code/core/Mage/Api2/Model/Auth/Adapter/Oauth.php @@ -43,15 +43,15 @@ class Mage_Api2_Model_Auth_Adapter_Oauth extends Mage_Api2_Model_Auth_Adapter_Ab */ public function getUserParams(Mage_Api2_Model_Request $request) { - /** @var $oauthServer Mage_OAuth_Model_Server */ - $oauthServer = Mage::getModel('oAuth/server', $request); + /** @var $oauthServer Mage_Oauth_Model_Server */ + $oauthServer = Mage::getModel('oauth/server', $request); $userParamsObj = (object) array('type' => null, 'id' => null); try { $token = $oauthServer->checkAccessRequest(); $userType = $token->getUserType(); - if (Mage_OAuth_Model_Token::USER_TYPE_ADMIN == $userType) { + if (Mage_Oauth_Model_Token::USER_TYPE_ADMIN == $userType) { $userParamsObj->id = $token->getAdminId(); } else { $userParamsObj->id = $token->getCustomerId(); diff --git a/app/code/core/Mage/Api2/Model/Config.php b/app/code/core/Mage/Api2/Model/Config.php index 89048609cc..76655459e1 100644 --- a/app/code/core/Mage/Api2/Model/Config.php +++ b/app/code/core/Mage/Api2/Model/Config.php @@ -232,7 +232,7 @@ public function getResource($node) public function getResourceAttributes($node) { $attributes = $this->getNode('resources/' . $node . '/attributes'); - return $attributes ? (array) $attributes : array(); + return $attributes ? $attributes->asCanonicalArray() : array(); } /** @@ -385,7 +385,7 @@ public function getResourceModel($node) public function getResourceUserPrivileges($resource, $userType) { $attributes = $this->getNode('resources/' . $resource . '/privileges/' . $userType); - return $attributes ? (array)$attributes : array(); + return $attributes ? $attributes->asCanonicalArray() : array(); } /** @@ -397,7 +397,7 @@ public function getResourceUserPrivileges($resource, $userType) public function getResourceSubresources($node) { $subresources = $this->getNode('resources/' . $node . '/subresources'); - return $subresources ? (array)$subresources : array(); + return $subresources ? $subresources->asCanonicalArray() : array(); } /** @@ -410,7 +410,7 @@ public function getResourceSubresources($node) public function getValidationConfig($resourceType, $validatorType) { $config = $this->getNode('resources/' . $resourceType . '/validators/' . $validatorType); - return $config ? $config->asArray() : array(); + return $config ? $config->asCanonicalArray() : array(); } /** diff --git a/app/code/core/Mage/Api2/Model/Resource/Validator/Eav.php b/app/code/core/Mage/Api2/Model/Resource/Validator/Eav.php index 91fac69963..36d0c8ff9a 100644 --- a/app/code/core/Mage/Api2/Model/Resource/Validator/Eav.php +++ b/app/code/core/Mage/Api2/Model/Resource/Validator/Eav.php @@ -118,6 +118,47 @@ public function __construct($options) ->ignoreInvisible(false); } + /** + * Validate attribute value for attributes with source models + * + * @param Mage_Eav_Model_Entity_Attribute_Abstract $attribute + * @param mixed $attrValue + * @return array|bool + */ + protected function _validateAttributeWithSource(Mage_Eav_Model_Entity_Attribute_Abstract $attribute, $attrValue) + { + $errors = array(); + + // validate attributes with source models + if (null !== $attrValue && $attribute->getSourceModel()) { + if ('multiselect' !== $attribute->getFrontendInput() && is_array($attrValue)) { + return array('Invalid value type for ' . $attribute->getAttributeCode()); + } + $possibleValues = $attribute->getSource()->getAllOptions(false); + + foreach ((array) $attrValue as $value) { + if (is_scalar($value)) { + $value = (string) $value; + $isValid = false; + foreach ($possibleValues as $optionData) { + // comparison without types check is performed only when both values are numeric + $useStrictMode = !(is_numeric($value) && is_numeric($optionData['value'])); + $isValid = $useStrictMode ? $value === $optionData['value'] : $value == $optionData['value']; + if ($isValid) { + break; + } + } + if (!$isValid) { + $errors[] = 'Invalid value "' . $value . '" for '. $attribute->getAttributeCode(); + } + } else { + $errors[] = 'Invalid value type for ' . $attribute->getAttributeCode(); + } + } + } + return $errors ? $errors : true; + } + /** * Filter request data. * @@ -151,22 +192,58 @@ public function isValidData(array $data, $partial = false) if ($this->_eavForm->ignoreInvisible() && !$attribute->getIsVisible()) { continue; } - if (!isset($data[$attribute->getAttributeCode()])) { - $data[$attribute->getAttributeCode()] = null; - } + $attrValue = isset($data[$attribute->getAttributeCode()]) ? $data[$attribute->getAttributeCode()] : null; $result = Mage_Eav_Model_Attribute_Data::factory($attribute, $this->_eavForm->getEntity()) - ->setExtractedData($data)->validateValue($data[$attribute->getAttributeCode()]); + ->setExtractedData($data) + ->validateValue($attrValue); + if ($result !== true) { $errors = array_merge($errors, $result); + } else { + $result = $this->_validateAttributeWithSource($attribute, $attrValue); + + if (true !== $result) { + $errors = array_merge($errors, $result); + } } } + $this->_setErrors($errors); - if (count($errors)) { - $this->_setErrors($errors); - return false; - } + return $errors ? false : true; + } - return true; + /** + * Returns an array of errors + * + * @return array + */ + public function getErrors() + { + // business asked to avoid additional validation message, so we filter it here + $errors = array(); + $helper = Mage::helper('eav'); + $requiredAttrs = array(); + $isRequiredRE = '/^' . str_replace('%s', '(.+)', preg_quote($helper->__('"%s" is a required value.'))). '$/'; + $greaterThanRE = '/^' . str_replace( + '%s', '(.+)', preg_quote($helper->__('"%s" length must be equal or greater than %s characters.')) + ) . '$/'; + + // find all required attributes labels + foreach ($this->_errors as $error) { + if (preg_match($isRequiredRE, $error, $matches)) { + $requiredAttrs[$matches[1]] = true; + } + } + // exclude additional messages for required attributes been failed + foreach ($this->_errors as $error) { + if (preg_match($isRequiredRE, $error) + || !preg_match($greaterThanRE, $error, $matches) + || !isset($requiredAttrs[$matches[1]]) + ) { + $errors[] = $error; + } + } + return $errors; } } diff --git a/app/code/core/Mage/Bundle/Model/Product/Type.php b/app/code/core/Mage/Bundle/Model/Product/Type.php index 04a37b8a71..2f718961d9 100644 --- a/app/code/core/Mage/Bundle/Model/Product/Type.php +++ b/app/code/core/Mage/Bundle/Model/Product/Type.php @@ -901,16 +901,6 @@ public function getForceChildItemQtyChanges($product = null) return true; } - /** - * Force apply discount for parent item - * - * @return bool - */ - public function getForceApplyDiscountToParentItem() - { - return true; - } - /** * Retrieve additional searchable data from type instance * Using based on product id and store_id data diff --git a/app/code/core/Mage/Captcha/Block/Captcha/Zend.php b/app/code/core/Mage/Captcha/Block/Captcha/Zend.php index cb17ea6d9b..31b03f6257 100755 --- a/app/code/core/Mage/Captcha/Block/Captcha/Zend.php +++ b/app/code/core/Mage/Captcha/Block/Captcha/Zend.php @@ -57,12 +57,9 @@ public function getTemplate() */ public function getRefreshUrl() { - $isSecure = Mage::app()->getStore()->isAdmin() - ? Mage::app()->getStore()->isAdminUrlSecure() - : Mage::getConfig()->shouldUrlBeSecure(Mage::app()->getRequest()->getPathInfo()); return Mage::getUrl( Mage::app()->getStore()->isAdmin() ? 'adminhtml/refresh/refresh' : 'captcha/refresh', - array('_secure' => $isSecure) + array('_secure' => Mage::app()->getStore()->isCurrentlySecure()) ); } diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php index badc3d7b75..850fa6cfd9 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php @@ -44,6 +44,7 @@ abstract class Mage_Catalog_Model_Api2_Product_Image_Rest extends Mage_Catalog_M * @var array */ protected $_mimeTypes = array( + 'image/jpg' => 'jpg', 'image/jpeg' => 'jpg', 'image/gif' => 'gif', 'image/png' => 'png' diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php index e0c3a82762..9109796eba 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php @@ -75,7 +75,8 @@ protected function _create(array $data) $this->_critical($e->getMessage(), Mage_Api2_Model_Server::HTTP_INTERNAL_ERROR); } $product = $this->_getProduct(); - $imageFileUri = $this->_getMediaGallery()->addImage($product, $apiTempDir . DS . $imageFileName); + $imageFileUri = $this->_getMediaGallery() + ->addImage($product, $apiTempDir . DS . $imageFileName, null, false, false); $ioAdapter->rmdir($apiTempDir, true); // updateImage() must be called to add image data that is missing after addImage() call $this->_getMediaGallery()->updateImage($product, $imageFileUri, $data); diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php index 3f7168d8f4..59d3cae02c 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php @@ -73,7 +73,7 @@ protected function _retrieveCollection() ->addPriceData($this->_getCustomerGroupId(), $store->getWebsiteId()) ->addAttributeToSelect(array_diff($availableAttributes, $entityOnlyAttributes)) ->addAttributeToFilter('visibility', array( - 'neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE)) + 'neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE)) ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)); $this->_applyCategoryFilter($collection); $this->_applyCollectionModifiers($collection); @@ -125,7 +125,7 @@ protected function _prepareProductForResponse(Mage_Catalog_Model_Product $produc $productData['final_price_without_tax'] = $this->_applyTaxToPrice($finalPrice, false); $productData['is_saleable'] = $product->getIsSalable(); - $productData['image_url'] = (string) Mage::helper('catalog/image')->init($product, 'image'); + $productData['image_url'] = (string)Mage::helper('catalog/image')->init($product, 'image'); if ($this->getActionType() == self::ACTION_TYPE_ENTITY) { // define URLs @@ -201,7 +201,7 @@ protected function _getProduct() $this->_critical(self::RESOURCE_NOT_FOUND); } // check if product belongs to website current - if ($this->getRequest()->getParam('store')) { + if ($this->_getStore()->getId()) { $isValidWebsite = in_array($this->_getStore()->getWebsiteId(), $product->getWebsiteIds()); if (!$isValidWebsite) { $this->_critical(self::RESOURCE_NOT_FOUND); @@ -211,7 +211,8 @@ protected function _getProduct() if ($this->getApiUser()->getType() != Mage_Api2_Model_Auth_User_Admin::USER_TYPE) { // check if product assigned to any website and can be shown if ((!Mage::app()->isSingleStoreMode() && !count($product->getWebsiteIds())) - || !$productHelper->canShow($product)) { + || !$productHelper->canShow($product) + ) { $this->_critical(self::RESOURCE_NOT_FOUND); } } @@ -254,8 +255,9 @@ protected function _getCategoryById($categoryId) * @see Mage_Tax_Helper_Data::getPrice() */ protected function _getPrice($price, $includingTax = null, $shippingAddress = null, - $billingAddress = null, $ctc = null, $priceIncludesTax = null - ) { + $billingAddress = null, $ctc = null, $priceIncludesTax = null + ) + { $product = $this->_getProduct(); $store = $this->_getStore(); diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php index 8d2dffa3b4..03e48edf18 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php @@ -160,6 +160,11 @@ protected function _create(array $data) ->setTypeId($type) ->setSku($sku); + foreach ($product->getMediaAttributes() as $mediaAttribute) { + $mediaAttrCode = $mediaAttribute->getAttributeCode(); + $product->setData($mediaAttrCode, 'no_selection'); + } + $this->_prepareDataForSave($product, $data); try { $product->validate(); @@ -201,6 +206,9 @@ protected function _update(array $data) if (isset($data['sku'])) { $product->setSku($data['sku']); } + // attribute set and product type cannot be updated + unset($data['attribute_set_id']); + unset($data['type_id']); $this->_prepareDataForSave($product, $data); try { $product->validate(); @@ -276,13 +284,13 @@ protected function _prepareDataForSave($product, $productData) } } if (isset($productData['use_config_gift_wrapping_available'])) { - $product->setData('use_config_gift_wrapping_available', - $productData['use_config_gift_wrapping_available']); + $product->setData('use_config_gift_wrapping_available', $productData['use_config_gift_wrapping_available']); if (!$productData['use_config_gift_wrapping_available'] && ($product->getData('gift_wrapping_available') === null) ) { - $product->setData('gift_wrapping_available', (int) Mage::getStoreConfig( - Enterprise_GiftWrapping_Helper_Data::XML_PATH_ALLOWED_FOR_ITEMS, $product->getStoreId())); + $xmlPathGiftWrappingAvailable = 'sales/gift_options/wrapping_allow_items'; + $product->setData('gift_wrapping_available', (int)Mage::getStoreConfig( + $xmlPathGiftWrappingAvailable, $product->getStoreId())); } } diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Validator/Product.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Validator/Product.php index 3dbbcd67ba..869d42dd6d 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Validator/Product.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Validator/Product.php @@ -178,10 +178,17 @@ protected function _validateAttributes($data, $productEntity) // skip check when field will be validated later as a required one && !(empty($value) && $attribute->getIsRequired())) { $allowedValues = $this->_getAttributeAllowedValues($attribute->getSource()->getAllOptions()); - $useStrictMode = !is_numeric($value); - if (!in_array($value, $allowedValues, $useStrictMode) - && !$this->_isConfigValueUsed($data, $attributeCode)) { - $this->_addError(sprintf('Invalid value for attribute "%s".', $attributeCode)); + if (!is_array($value)) { + // make validation of select and multiselect identical + $value = array($value); + } + foreach ($value as $selectValue) { + $useStrictMode = !is_numeric($selectValue); + if (!in_array($selectValue, $allowedValues, $useStrictMode) + && !$this->_isConfigValueUsed($data, $attributeCode)) { + $this->_addError(sprintf('Invalid value "%s" for attribute "%s".', + $selectValue, $attributeCode)); + } } } // Validate datetime attributes @@ -341,8 +348,9 @@ protected function _validateWebsiteIdForGroupPrice($data, $fieldSet) /** @var $catalogHelper Mage_Catalog_Helper_Data */ $catalogHelper = Mage::helper('catalog'); $website = Mage::getModel('core/website')->load($data['website_id']); - if (is_null($website->getId()) || ($data['website_id'] !== 0 - && $catalogHelper->getPriceScope() == Mage_Catalog_Helper_Data::PRICE_SCOPE_GLOBAL)) { + $isAllWebsitesValue = is_numeric($data['website_id']) && ($data['website_id'] == 0); + $isGlobalPriceScope = (int)$catalogHelper->getPriceScope() == Mage_Catalog_Helper_Data::PRICE_SCOPE_GLOBAL; + if (is_null($website->getId()) || ($isGlobalPriceScope && !$isAllWebsitesValue)) { $this->_addError(sprintf('Invalid "website_id" value in the "%s" set.', $fieldSet)); } } @@ -371,7 +379,7 @@ protected function _validateStockData($data) } $this->_validateBoolean($stockData, $fieldSet, 'enable_qty_increments', true); if (isset($stockData['enable_qty_increments']) && (bool) $stockData['enable_qty_increments'] == true) { - $this->_validatePositiveInteger($stockData, $fieldSet, 'qty_increments', false, true); + $this->_validatePositiveNumeric($stockData, $fieldSet, 'qty_increments', false, true); } if (Mage::helper('catalog')->isModuleEnabled('Mage_CatalogInventory')) { $this->_validateSource($stockData, $fieldSet, 'backorders', @@ -380,8 +388,8 @@ protected function _validateStockData($data) } } - $this->_validatePositiveInteger($stockData, $fieldSet, 'min_sale_qty', false, true); - $this->_validatePositiveInteger($stockData, $fieldSet, 'max_sale_qty', false, true); + $this->_validatePositiveNumeric($stockData, $fieldSet, 'min_sale_qty', false, true); + $this->_validatePositiveNumeric($stockData, $fieldSet, 'max_sale_qty', false, true); } } @@ -456,7 +464,7 @@ protected function _validatePositiveNumber($data, $fieldSet, $field, $required = } /** - * Validate field to be a positive integer + * Validate field to be a positive number * * @param array $data * @param string $fieldSet @@ -464,7 +472,7 @@ protected function _validatePositiveNumber($data, $fieldSet, $field, $required = * @param bool $required * @param bool $skipIfConfigValueUsed */ - protected function _validatePositiveInteger($data, $fieldSet, $field, $required = false, + protected function _validatePositiveNumeric($data, $fieldSet, $field, $required = false, $skipIfConfigValueUsed = false) { // in case when 'Use Config Settings' is selected no validation needed @@ -473,9 +481,9 @@ protected function _validatePositiveInteger($data, $fieldSet, $field, $required $this->_addError(sprintf('The "%s" value in the "%s" set is a required field.',$field, $fieldSet)); } - if (isset($data[$field]) && (!is_int($data[$field]) || $data[$field] < 0)) { + if (isset($data[$field]) && (!is_numeric($data[$field]) || $data[$field] < 0)) { $this->_addError(sprintf('Please use numbers only in the "%s" field in the "%s" set. ' . - 'Please avoid spaces or other characters such as dots or commas.', $field, $fieldSet)); + 'Please avoid spaces or other non numeric characters.', $field, $fieldSet)); } } } @@ -521,7 +529,8 @@ protected function _validateSource($data, $fieldSet, $field, $sourceModelName, $ $sourceModel = Mage::getSingleton($sourceModelName); if ($sourceModel) { $allowedValues = $this->_getAttributeAllowedValues($sourceModel->toOptionArray()); - if (!in_array($data[$field], $allowedValues, true)) { + $useStrictMode = !is_numeric($data[$field]); + if (!in_array($data[$field], $allowedValues, $useStrictMode)) { $this->_addError(sprintf('Invalid "%s" value in the "%s" set.', $field, $fieldSet)); } } @@ -544,7 +553,8 @@ protected function _validateBoolean($data, $fieldSet, $field, $skipIfConfigValue if (isset($data[$field])) { $allowedValues = $this->_getAttributeAllowedValues( Mage::getSingleton('eav/entity_attribute_source_boolean')->getAllOptions()); - if (!in_array($data[$field], $allowedValues, true)) { + $useStrictMode = !is_numeric($data[$field]); + if (!in_array($data[$field], $allowedValues, $useStrictMode)) { $this->_addError(sprintf('Invalid "%s" value in the "%s" set.', $field, $fieldSet)); } } diff --git a/app/code/core/Mage/Catalog/Model/Category.php b/app/code/core/Mage/Catalog/Model/Category.php index 90baa36883..835eca27e5 100644 --- a/app/code/core/Mage/Catalog/Model/Category.php +++ b/app/code/core/Mage/Catalog/Model/Category.php @@ -737,7 +737,7 @@ public function getRequestPath() } /** - * Retrieve Name data wraper + * Retrieve Name data wrapper * * @return string */ diff --git a/app/code/core/Mage/Catalog/Model/Category/Api.php b/app/code/core/Mage/Catalog/Model/Category/Api.php index 1ca5775e5e..673ce88e50 100644 --- a/app/code/core/Mage/Catalog/Model/Category/Api.php +++ b/app/code/core/Mage/Catalog/Model/Category/Api.php @@ -394,6 +394,10 @@ public function move($categoryId, $parentId, $afterId = null) */ public function delete($categoryId) { + if (Mage_Catalog_Model_Category::TREE_ROOT_ID == $categoryId) { + $this->_fault('not_deleted', 'Cannot remove the system category.'); + } + $category = $this->_initCategory($categoryId); try { diff --git a/app/code/core/Mage/Catalog/Model/Product.php b/app/code/core/Mage/Catalog/Model/Product.php index 418c502fad..2b6cecb7e6 100644 --- a/app/code/core/Mage/Catalog/Model/Product.php +++ b/app/code/core/Mage/Catalog/Model/Product.php @@ -1337,7 +1337,7 @@ public function getIsSalable() /** * Check is a virtual product - * Data helper wraper + * Data helper wrapper * * @return bool */ diff --git a/app/code/core/Mage/Catalog/Model/Product/Api.php b/app/code/core/Mage/Catalog/Model/Product/Api.php index 39dcdd1c24..43afdf4a49 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Api.php +++ b/app/code/core/Mage/Catalog/Model/Product/Api.php @@ -187,6 +187,11 @@ public function create($type, $set, $sku, $productData, $store = null) $product->setStockData(array('use_config_manage_stock' => 0)); } + foreach ($product->getMediaAttributes() as $mediaAttribute) { + $mediaAttrCode = $mediaAttribute->getAttributeCode(); + $product->setData($mediaAttrCode, 'no_selection'); + } + $this->_prepareDataForSave($product, $productData); try { diff --git a/app/code/core/Mage/Catalog/Model/Product/Api/V2.php b/app/code/core/Mage/Catalog/Model/Product/Api/V2.php index acdd0ca01b..239ccf724a 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Api/V2.php +++ b/app/code/core/Mage/Catalog/Model/Product/Api/V2.php @@ -182,6 +182,11 @@ public function create($type, $set, $sku, $productData, $store = null) $product->setStockData($_stockData); } + foreach ($product->getMediaAttributes() as $mediaAttribute) { + $mediaAttrCode = $mediaAttribute->getAttributeCode(); + $product->setData($mediaAttrCode, 'no_selection'); + } + $this->_prepareDataForSave($product, $productData); try { diff --git a/app/code/core/Mage/Catalog/Model/Product/Status.php b/app/code/core/Mage/Catalog/Model/Product/Status.php index 04fac9bdbe..a2f6175383 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Status.php +++ b/app/code/core/Mage/Catalog/Model/Product/Status.php @@ -63,7 +63,7 @@ protected function _construct() } /** - * Retrieve resource model wraper + * Retrieve resource model wrapper * * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Status */ diff --git a/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php b/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php index 5c9c4b06c4..329edc44cc 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php +++ b/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php @@ -863,16 +863,6 @@ public function getForceChildItemQtyChanges($product = null) return false; } - /** - * Force apply discount for parent item - * - * @return bool - */ - public function getForceApplyDiscountToParentItem() - { - return false; - } - /** * Prepare Quote Item Quantity * diff --git a/app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php b/app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php index 5de20a0f03..544c5494f8 100755 --- a/app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php +++ b/app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php @@ -285,7 +285,8 @@ public function getCount($filter, $range) */ public function applyFilterToCollection($filter, $range, $index) { - $priceExpr = $this->_getPriceExpression($filter); + $select = $filter->getLayer()->getProductCollection()->getSelect(); + $priceExpr = $this->_getPriceExpression($filter, $select); $filter->getLayer()->getProductCollection() ->getSelect() ->where($priceExpr . ' >= ' . $this->_getComparingValue(($range * ($index - 1)), $filter)) diff --git a/app/code/core/Mage/Catalog/controllers/Product/CompareController.php b/app/code/core/Mage/Catalog/controllers/Product/CompareController.php index 9354b2c2cc..5855daab76 100644 --- a/app/code/core/Mage/Catalog/controllers/Product/CompareController.php +++ b/app/code/core/Mage/Catalog/controllers/Product/CompareController.php @@ -74,7 +74,10 @@ public function indexAction() */ public function addAction() { - if ($productId = (int) $this->getRequest()->getParam('product')) { + $productId = (int) $this->getRequest()->getParam('product'); + if ($productId + && (Mage::getSingleton('log/visitor')->getId() || Mage::getSingleton('customer/session')->isLoggedIn()) + ) { $product = Mage::getModel('catalog/product') ->setStoreId(Mage::app()->getStore()->getId()) ->load($productId); diff --git a/app/code/core/Mage/Catalog/etc/api2.xml b/app/code/core/Mage/Catalog/etc/api2.xml index 950da09805..87d549a968 100644 --- a/app/code/core/Mage/Catalog/etc/api2.xml +++ b/app/code/core/Mage/Catalog/etc/api2.xml @@ -40,7 +40,7 @@ - + catalog_product catalog/api2_product catalog/product @@ -60,7 +60,7 @@ 1 - + Product ID Product Type Attribute Set @@ -210,7 +210,7 @@ 1 - + catalog_product catalog/api2_product_category catalog/category @@ -229,7 +229,7 @@ 1 - + Category ID @@ -246,7 +246,7 @@ 1 - + Int Please use numbers only in "category_id" field. @@ -255,7 +255,7 @@ 1 - + catalog_product catalog/api2_product_image Product Image @@ -274,7 +274,7 @@ 1 - + ID File Name File Content @@ -334,7 +334,7 @@ 1 - + catalog_product catalog/api2_product_website catalog/product_website diff --git a/app/code/core/Mage/CatalogInventory/Block/Qtyincrements.php b/app/code/core/Mage/CatalogInventory/Block/Qtyincrements.php index 9b31c74fb9..4fca1e8423 100644 --- a/app/code/core/Mage/CatalogInventory/Block/Qtyincrements.php +++ b/app/code/core/Mage/CatalogInventory/Block/Qtyincrements.php @@ -70,9 +70,6 @@ public function getProductQtyIncrements() { if ($this->_qtyIncrements === null) { $this->_qtyIncrements = $this->_getProduct()->getStockItem()->getQtyIncrements(); - if (!$this->_qtyIncrements) { - $this->_qtyIncrements = $this->_getProduct()->getStockItem()->getDefaultQtyIncrements(); - } if (!$this->_getProduct()->isSaleable()) { $this->_qtyIncrements = false; } diff --git a/app/code/core/Mage/CatalogInventory/Model/Stock/Item.php b/app/code/core/Mage/CatalogInventory/Model/Stock/Item.php index 5ed9d1cac0..0b7d017412 100644 --- a/app/code/core/Mage/CatalogInventory/Model/Stock/Item.php +++ b/app/code/core/Mage/CatalogInventory/Model/Stock/Item.php @@ -170,7 +170,7 @@ public function getStockId() } /** - * Retrieve Product Id data wraper + * Retrieve Product Id data wrapper * * @return int */ @@ -365,47 +365,44 @@ public function getNotifyStockQty() */ public function getEnableQtyIncrements() { - if ($this->getUseConfigEnableQtyIncrements()) { - return Mage::getStoreConfigFlag(self::XML_PATH_ENABLE_QTY_INCREMENTS); - } - return (bool) $this->getData('enable_qty_increments'); + return $this->getUseConfigEnableQtyIncrements() + ? Mage::getStoreConfigFlag(self::XML_PATH_ENABLE_QTY_INCREMENTS) + : (bool)$this->getData('enable_qty_increments'); } /** - * Retrieve Quantity Increments data wraper + * Retrieve Quantity Increments data wrapper * * @return float|false */ public function getQtyIncrements() { if ($this->_qtyIncrements === null) { - $this->_qtyIncrements = false; if ($this->getEnableQtyIncrements()) { - if ($this->getUseConfigQtyIncrements()) { - $this->_qtyIncrements = Mage::getStoreConfig(self::XML_PATH_QTY_INCREMENTS); - } else { - $this->_qtyIncrements = $this->getData('qty_increments'); - } - $this->_qtyIncrements = (float)$this->_qtyIncrements; + $this->_qtyIncrements = (float)($this->getUseConfigQtyIncrements() + ? Mage::getStoreConfig(self::XML_PATH_QTY_INCREMENTS) + : $this->getData('qty_increments')); if ($this->_qtyIncrements <= 0) { $this->_qtyIncrements = false; } + } else { + $this->_qtyIncrements = false; } } return $this->_qtyIncrements; } /** - * Retrieve Default Quantity Increments data wraper + * Retrieve Default Quantity Increments data wrapper * + * @deprecated since 1.7.0.0 * @return int|false */ public function getDefaultQtyIncrements() { - if (Mage::getStoreConfigFlag(self::XML_PATH_ENABLE_QTY_INCREMENTS)) { - return (int) Mage::getStoreConfig(self::XML_PATH_QTY_INCREMENTS); - } - return false; + return Mage::getStoreConfigFlag(self::XML_PATH_ENABLE_QTY_INCREMENTS) + ? (int)Mage::getStoreConfig(self::XML_PATH_QTY_INCREMENTS) + : false; } /** @@ -422,7 +419,7 @@ public function getBackorders() } /** - * Retrieve Manage Stock data wraper + * Retrieve Manage Stock data wrapper * * @return int */ @@ -572,7 +569,6 @@ public function checkQuoteItemQty($qty, $summaryQty, $origQty = 0) } $result->addData($this->checkQtyIncrements($qty)->getData()); - if ($result->getHasError()) { return $result; } @@ -639,7 +635,6 @@ public function checkQuoteItemQty($qty, $summaryQty, $origQty = 0) $this->setOrderedItems($qty + (int)$this->getOrderedItems()); } } - // no return intentionally } return $result; @@ -659,10 +654,6 @@ public function checkQtyIncrements($qty) } $qtyIncrements = $this->getQtyIncrements(); - if (!$qtyIncrements){ - $qtyIncrements = $this->getDefaultQtyIncrements(); - } - if ($qtyIncrements && (Mage::helper('core')->getExactDivision($qty, $qtyIncrements) != 0)) { $result->setHasError(true) ->setQuoteMessage( diff --git a/app/code/core/Mage/Checkout/Block/Cart/Shipping.php b/app/code/core/Mage/Checkout/Block/Cart/Shipping.php index ddf32624e0..51d2ee226a 100644 --- a/app/code/core/Mage/Checkout/Block/Cart/Shipping.php +++ b/app/code/core/Mage/Checkout/Block/Cart/Shipping.php @@ -257,7 +257,7 @@ public function isCityRequired() public function isZipCodeRequired() { foreach ($this->getCarriers() as $carrier) { - if ($carrier->isZipCodeRequired()) { + if ($carrier->isZipCodeRequired($this->getEstimateCountryId())) { return true; } } diff --git a/app/code/core/Mage/Checkout/Block/Onepage/Abstract.php b/app/code/core/Mage/Checkout/Block/Onepage/Abstract.php index 0ff811b2f3..c463b3254d 100644 --- a/app/code/core/Mage/Checkout/Block/Onepage/Abstract.php +++ b/app/code/core/Mage/Checkout/Block/Onepage/Abstract.php @@ -159,7 +159,7 @@ public function getCountryHtmlSelect($type) ->setValue($countryId) ->setOptions($this->getCountryOptions()); if ($type === 'shipping') { - $select->setExtraParams('onchange="shipping.setSameAsBilling(false);"'); + $select->setExtraParams('onchange="if(window.shipping)shipping.setSameAsBilling(false);"'); } return $select->getHtml(); diff --git a/app/code/core/Mage/Cms/data/cms_setup/data-upgrade-1.6.0.0.0-1.6.0.0.1.php b/app/code/core/Mage/Cms/data/cms_setup/data-upgrade-1.6.0.0.0-1.6.0.0.1.php index be88e876e5..32588aebdc 100644 --- a/app/code/core/Mage/Cms/data/cms_setup/data-upgrade-1.6.0.0.0-1.6.0.0.1.php +++ b/app/code/core/Mage/Cms/data/cms_setup/data-upgrade-1.6.0.0.0-1.6.0.0.1.php @@ -26,11 +26,9 @@ $pageContent = << - - Please replace this text with you Privacy Policy. - Please add any additional cookies your website uses below (e.g., Google Analytics) - +

+ Please replace this text with you Privacy Policy. + Please add any additional cookies your website uses below (e.g., Google Analytics)

This privacy policy sets out how {{config path="general/store_information/name"}} uses and protects any information @@ -170,6 +168,10 @@ CUSTOMER_INFO An encrypted version of the customer group you belong to. + + CUSTOMER_SEGMENT_IDS + Stores the Customer Segment ID + EXTERNAL_NO_CACHE A flag, which indicates whether caching is disabled or not. diff --git a/app/code/core/Mage/Core/Controller/Varien/Front.php b/app/code/core/Mage/Core/Controller/Varien/Front.php index a3c9fe933c..0bddf590e9 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Front.php +++ b/app/code/core/Mage/Core/Controller/Varien/Front.php @@ -310,7 +310,7 @@ protected function _checkBaseUrl($request) $baseUrl = Mage::getBaseUrl( Mage_Core_Model_Store::URL_TYPE_WEB, - Mage::getConfig()->shouldUrlBeSecure($request->getPathInfo()) + Mage::app()->getStore()->isCurrentlySecure() ); if (!$baseUrl) { return; @@ -322,12 +322,8 @@ protected function _checkBaseUrl($request) || isset($uri['host']) && $uri['host'] != $request->getHttpHost() || isset($uri['path']) && strpos($requestUri, $uri['path']) === false ) { - $redirectUrl = Mage::getSingleton('core/url')->getRedirectUrl( - Mage::getUrl(ltrim($request->getPathInfo(), '/'), array('_nosid' => true)) - ); - Mage::app()->getFrontController()->getResponse() - ->setRedirect($redirectUrl, $redirectCode) + ->setRedirect($baseUrl, $redirectCode) ->sendResponse(); exit; } diff --git a/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php b/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php index 11b587bbfa..54f7a59a4b 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php +++ b/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php @@ -95,11 +95,9 @@ protected function _noRouteShouldBeApplied() */ protected function _shouldBeSecure($path) { - $xmlPath = Mage::getStoreConfigFlag( - Mage_Core_Model_Store::XML_PATH_SECURE_IN_ADMINHTML, - Mage_Core_Model_App::ADMIN_STORE_ID - ) ? 'default/web/secure/base_url' : 'default/web/unsecure/base_url'; - return substr((string)Mage::getConfig()->getNode($xmlPath), 0, 5) === 'https'; + return substr((string)Mage::getConfig()->getNode('default/web/unsecure/base_url'), 0, 5) === 'https' + || Mage::getStoreConfigFlag('web/secure/use_in_adminhtml', Mage_Core_Model_App::ADMIN_STORE_ID) + && substr((string)Mage::getConfig()->getNode('default/web/secure/base_url'), 0, 5) === 'https'; } /** diff --git a/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php b/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php index d201d77382..99b98d415b 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php +++ b/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php @@ -460,9 +460,9 @@ protected function _getCurrentSecureUrl($request) */ protected function _shouldBeSecure($path) { - $xmlPath = Mage::getConfig()->shouldUrlBeSecure($path) - ? Mage_Core_Model_Store::XML_PATH_SECURE_BASE_URL - : Mage_Core_Model_Store::XML_PATH_UNSECURE_BASE_URL; - return substr(Mage::getStoreConfig($xmlPath), 0, 5) === 'https'; + return substr(Mage::getStoreConfig('web/unsecure/base_url'), 0, 5) === 'https' + || Mage::getStoreConfigFlag('web/secure/use_in_frontend') + && substr(Mage::getStoreConfig('web/secure/base_url'), 0, 5) == 'https' + && Mage::getConfig()->shouldUrlBeSecure($path); } } diff --git a/app/code/core/Mage/Core/Helper/Cookie.php b/app/code/core/Mage/Core/Helper/Cookie.php index cd28cea07f..17d5020a81 100644 --- a/app/code/core/Mage/Core/Helper/Cookie.php +++ b/app/code/core/Mage/Core/Helper/Cookie.php @@ -43,6 +43,11 @@ class Mage_Core_Helper_Cookie extends Mage_Core_Helper_Abstract */ const XML_PATH_COOKIE_RESTRICTION = 'web/cookie/cookie_restriction'; + /** + * Cookie restriction lifetime configuration path + */ + const XML_PATH_COOKIE_RESTRICTION_LIFETIME = 'web/cookie/cookie_restriction_lifetime'; + /** * Check if cookie restriction notice should be displayed * @@ -78,4 +83,14 @@ protected function _getAcceptedSaveCookiesWebsites() $unSerializedList = unserialize($serializedList); return is_array($unSerializedList) ? $unSerializedList : array(); } + + /** + * Get cookie restriction lifetime (in seconds) + * + * @return int + */ + public function getCookieRestrictionLifetime() + { + return (int)Mage::getStoreConfig(self::XML_PATH_COOKIE_RESTRICTION_LIFETIME); + } } diff --git a/app/code/core/Mage/Core/Model/File/Storage/Database.php b/app/code/core/Mage/Core/Model/File/Storage/Database.php index 9804c1ff68..415ebeaed9 100644 --- a/app/code/core/Mage/Core/Model/File/Storage/Database.php +++ b/app/code/core/Mage/Core/Model/File/Storage/Database.php @@ -289,6 +289,18 @@ public function renameFile($oldFilePath, $newFilePath) dirname($newFilePath) ); + $newPath = dirname($newFilePath); + $directory = Mage::getModel('core/file_storage_directory_database')->loadByPath($newPath); + + if (!$directory->getId()) { + $directory = $this->getDirectoryModel()->createRecursive($newPath); + } + + $this->loadByFilename($newFilePath); + if ($this->getId()) { + $this->setDirectoryId($directory->getId())->save(); + } + return $this; } diff --git a/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php b/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php index 06d061229d..93d5aff68d 100644 --- a/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php +++ b/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php @@ -624,7 +624,7 @@ protected function _prepareValueForSave($value, $type) /** * Check for unique values existence * - * @param Varien_Object $object + * @param Mage_Core_Model_Abstract $object * @return Mage_Core_Model_Resource_Db_Abstract * @throws Mage_Core_Exception */ @@ -656,7 +656,7 @@ protected function _checkUnique(Mage_Core_Model_Abstract $object) $select->where($unique['field'] . '=?', trim($data->getData($unique['field']))); } - if ($object->getId()) { + if ($object->getId() || $object->getId() === '0') { $select->where($this->getIdFieldName() . '!=?', $object->getId()); } diff --git a/app/code/core/Mage/Core/Model/Translate/Inline.php b/app/code/core/Mage/Core/Model/Translate/Inline.php index bdfe8e15a3..c5ebb2e8be 100644 --- a/app/code/core/Mage/Core/Model/Translate/Inline.php +++ b/app/code/core/Mage/Core/Model/Translate/Inline.php @@ -358,6 +358,16 @@ protected function _getTranslateData($regexp, &$text, $locationCallback, $option * */ protected function _tagAttributes() + { + $this->_prepareTagAttributesForContent($this->_content); + } + + /** + * Prepare tags inline translates for the content + * + * @param string $content + */ + protected function _prepareTagAttributesForContent(&$content) { if ($this->getIsJson()) { $quoteHtml = '\"'; @@ -368,7 +378,7 @@ protected function _tagAttributes() $tagMatch = array(); $nextTag = 0; $tagRegExp = '#<([a-z]+)\s*?[^>]+?((' . $this->_tokenRegex . ')[^>]*?)+/?>#i'; - while (preg_match($tagRegExp, $this->_content, $tagMatch, PREG_OFFSET_CAPTURE, $nextTag)) { + while (preg_match($tagRegExp, $content, $tagMatch, PREG_OFFSET_CAPTURE, $nextTag)) { $next = 0; $tagHtml = $tagMatch[0][0]; $m = array(); @@ -384,7 +394,7 @@ protected function _tagAttributes() $trAttr = ' translate=' . $quoteHtml . htmlspecialchars('[' . join(',', $trArr) . ']') . $quoteHtml; } - $this->_content = substr_replace($this->_content, $tagHtml, $tagMatch[0][1], strlen($tagMatch[0][0])); + $content = substr_replace($content, $tagHtml, $tagMatch[0][1], strlen($tagMatch[0][0])); } $nextTag = $tagMatch[0][1] + strlen($tagHtml); } @@ -492,7 +502,7 @@ protected function _translateTags(&$body, $tagsList, $formatCallback, $isNeedTra } if ($isNeedTranslateAttributes) { - $this->_tagAttributes($tagEnd); + $this->_prepareTagAttributesForContent($tagEnd); } $tagHtml .= $tagEnd; diff --git a/app/code/core/Mage/Core/etc/system.xml b/app/code/core/Mage/Core/etc/system.xml index aaadb7a248..37b31d4331 100644 --- a/app/code/core/Mage/Core/etc/system.xml +++ b/app/code/core/Mage/Core/etc/system.xml @@ -1149,7 +1149,7 @@ 1 1 - + select adminhtml/system_config_source_yesno @@ -1158,6 +1158,7 @@ 1 0 0 + Warning! When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third party services (e.g. PayPal etc.).]]> diff --git a/app/code/core/Mage/Customer/Model/Api2/Customer/Address.php b/app/code/core/Mage/Customer/Model/Api2/Customer/Address.php index e37c4936f0..582bf60f4c 100644 --- a/app/code/core/Mage/Customer/Model/Api2/Customer/Address.php +++ b/app/code/core/Mage/Customer/Model/Api2/Customer/Address.php @@ -80,15 +80,24 @@ protected function _isDefaultShippingAddress(Mage_Customer_Model_Address $addres * If id is not found then return passed $region * * @param string $region + * @param string $countryId * @return int|string */ - protected function _getRegionIdByNameOrCode($region) + protected function _getRegionIdByNameOrCode($region, $countryId) { - $id = Mage::getResourceModel('directory/region_collection') - ->addFieldToFilter(array('default_name', 'code'), array($region, $region)) - ->getFirstItem() - ->getId(); - return $id ? $id : $region; + /** @var $collection Mage_Directory_Model_Resource_Region_Collection */ + $collection = Mage::getResourceModel('directory/region_collection'); + + $collection->getSelect() + ->reset() // to avoid locale usage + ->from(array('main_table' => $collection->getMainTable()), 'region_id'); + + $collection->addCountryFilter($countryId) + ->addFieldToFilter(array('default_name', 'code'), array($region, $region)); + + $id = $collection->getResource()->getReadConnection()->fetchOne($collection->getSelect()); + + return $id ? (int)$id : $region; } /** diff --git a/app/code/core/Mage/Customer/Model/Api2/Customer/Address/Rest.php b/app/code/core/Mage/Customer/Model/Api2/Customer/Address/Rest.php index bbb54bfb4d..605de7eda6 100644 --- a/app/code/core/Mage/Customer/Model/Api2/Customer/Address/Rest.php +++ b/app/code/core/Mage/Customer/Model/Api2/Customer/Address/Rest.php @@ -54,7 +54,9 @@ protected function _create(array $data) $this->_critical(self::RESOURCE_DATA_PRE_VALIDATION_ERROR); } - $data['region'] = $this->_getRegionIdByNameOrCode($data['region']); + if (isset($data['region']) && isset($data['country_id'])) { + $data['region'] = $this->_getRegionIdByNameOrCode($data['region'], $data['country_id']); + } /* @var $address Mage_Customer_Model_Address */ $address = Mage::getModel('customer/address'); @@ -154,8 +156,12 @@ protected function _update(array $data) } $this->_critical(self::RESOURCE_DATA_PRE_VALIDATION_ERROR); } - - $data['region'] = isset($data['region']) ? $this->_getRegionIdByNameOrCode($data['region']) : null; + if (isset($data['region'])) { + $data['region'] = $this->_getRegionIdByNameOrCode( + $data['region'], isset($data['country_id']) ? $data['country_id'] : $address->getCountryId() + ); + $data['region_id'] = null; // to avoid overwrite region during update in address model _beforeSave() + } $address->addData($data); try { diff --git a/app/code/core/Mage/Customer/Model/Api2/Customer/Address/Validator.php b/app/code/core/Mage/Customer/Model/Api2/Customer/Address/Validator.php index c86db50d53..982ff09683 100644 --- a/app/code/core/Mage/Customer/Model/Api2/Customer/Address/Validator.php +++ b/app/code/core/Mage/Customer/Model/Api2/Customer/Address/Validator.php @@ -46,16 +46,22 @@ class Mage_Customer_Model_Api2_Customer_Address_Validator extends Mage_Api2_Mode */ public function filter(array $data) { - $data = parent::filter($data); + $filteredData = parent::filter($data); // If the array contains more than two elements, then combine the extra elements in a string - if (isset($data['street']) && is_array($data['street']) && count($data['street']) > 2) { - $data['street'][1] .= self::STREET_SEPARATOR - . implode(self::STREET_SEPARATOR, array_slice($data['street'], 2)); - $filteredData['street'] = array_slice($data['street'], 0, 2); + if (isset($filteredData['street']) && is_array($filteredData['street']) && count($filteredData['street']) > 2) { + $filteredData['street'][1] .= self::STREET_SEPARATOR + . implode(self::STREET_SEPARATOR, array_slice($filteredData['street'], 2)); + $filteredData['street'] = array_slice($filteredData['street'], 0, 2); } - - return $data; + // pass default addresses info + if (isset($data['is_default_billing'])) { + $filteredData['is_default_billing'] = $data['is_default_billing']; + } + if (isset($data['is_default_shipping'])) { + $filteredData['is_default_shipping'] = $data['is_default_shipping']; + } + return $filteredData; } /** @@ -66,15 +72,7 @@ public function filter(array $data) */ public function isValidDataForCreateAssociationWithCountry(array $data) { - // Check the country - $country = $this->_checkCountry($data); - if (false == $country) { - // break the validation if the country is not valid - return false; - } - - // Check the region - return $this->_checkRegion($data, $country); + return $this->_checkRegion($data, Mage::getModel('directory/country')->loadByCode($data['country_id'])); } /** @@ -89,62 +87,15 @@ public function isValidDataForChangeAssociationWithCountry(Mage_Customer_Model_A if (!isset($data['country_id']) && !isset($data['region'])) { return true; } - - // Check the country - if (array_key_exists('country_id', $data)) { - $country = $this->_checkCountry($data); - if (false == $country) { - // break the validation if the country is not valid - return false; - } + // If country is in data - it has been already validated. If no - load current country. + if (isset($data['country_id'])) { + $country = Mage::getModel('directory/country')->loadByCode($data['country_id']); } else { - // if the country is not passed load the current country $country = $address->getCountryModel(); } - - // Check the region return $this->_checkRegion($data, $country); } - /** - * Check country - * - * @param array $data - * @return bool|Mage_Directory_Model_Country - */ - protected function _checkCountry($data) - { - if (!array_key_exists('country_id', $data)) { - $this->_addError('"Country" is required.'); - return false; - } - - if (!is_string($data['country_id'])) { - $this->_addError('Invalid country identifier type.'); - return false; - } - - if ('' == trim($data['country_id'])) { - $this->_addError('"Country" is required.'); - return false; - } - - $validator = new Zend_Validate_StringLength(array('min' => 2, 'max' => 3)); - if (!$validator->isValid($data['country_id'])) { - $this->_addError("Country is not between '2' and '3' inclusively."); - return false; - } - - /* @var $country Mage_Directory_Model_Country */ - $country = Mage::getModel('directory/country')->loadByCode($data['country_id']); - if (!$country->getId()) { - $this->_addError('Country does not exist.'); - return false; - } - - return $country; - } - /** * Check region * diff --git a/app/code/core/Mage/Customer/Model/Api2/Customer/Rest.php b/app/code/core/Mage/Customer/Model/Api2/Customer/Rest.php index 772bb38c66..f6e971c4b4 100644 --- a/app/code/core/Mage/Customer/Model/Api2/Customer/Rest.php +++ b/app/code/core/Mage/Customer/Model/Api2/Customer/Rest.php @@ -42,10 +42,7 @@ abstract class Mage_Customer_Model_Api2_Customer_Rest extends Mage_Customer_Mode protected function _create(array $data) { /** @var $validator Mage_Api2_Model_Resource_Validator_Eav */ - $validator = Mage::getResourceModel('api2/validator_eav', array( - 'resource' => $this, - 'operation' => self::OPERATION_CREATE - )); + $validator = Mage::getResourceModel('api2/validator_eav', array('resource' => $this)); $data = $validator->filter($data); if (!$validator->isValidData($data)) { @@ -104,15 +101,14 @@ protected function _update(array $data) { /** @var $customer Mage_Customer_Model_Customer */ $customer = $this->_loadCustomerById($this->getRequest()->getParam('id')); - /** @var $validator Mage_Api2_Model_Resource_Validator_Eav */ - $validator = Mage::getResourceModel('api2/validator_eav', array( - 'resource' => $this, - 'operation' => self::OPERATION_UPDATE - )); + $validator = Mage::getResourceModel('api2/validator_eav', array('resource' => $this)); $data = $validator->filter($data); - if (!$validator->isValidData($data)) { + + unset($data['website_id']); // website is not allowed to change + + if (!$validator->isValidData($data, true)) { foreach ($validator->getErrors() as $error) { $this->_error($error, Mage_Api2_Model_Server::HTTP_BAD_REQUEST); } diff --git a/app/code/core/Mage/Downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php b/app/code/core/Mage/Downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php index 40001be7e8..5a7263e14f 100644 --- a/app/code/core/Mage/Downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php +++ b/app/code/core/Mage/Downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php @@ -47,86 +47,57 @@ public function draw() $page = $this->getPage(); $lines = array(); - $leftBound = 35; - $rightBound = 565; - - $x = $leftBound; // draw Product name $lines[0] = array(array( - 'text' => Mage::helper('core/string')->str_split($item->getName(), 60, true, true), - 'feed' => $x, + 'text' => Mage::helper('core/string')->str_split($item->getName(), 35, true, true), + 'feed' => 35, )); - $x += 220; // draw SKU $lines[0][] = array( - 'text' => Mage::helper('core/string')->str_split($this->getSku($item), 25), - 'feed' => $x + 'text' => Mage::helper('core/string')->str_split($this->getSku($item), 17), + 'feed' => 255, + 'align' => 'right' ); - $x += 100; // draw Total (ex) - $i = 0; - $prices = $this->getItemPricesForDisplay(); - foreach ($prices as $priceData){ - if (isset($priceData['label'])) { - // draw Subtotal label - $lines[$i][] = array( - 'text' => $priceData['label'], - 'feed' => $x, - 'align' => 'right', - 'width' => 50, - ); - $i++; - } - // draw Subtotal - $lines[$i][] = array( - 'text' => $priceData['subtotal'], - 'feed' => $x, - 'font' => 'bold', - 'align' => 'right', - 'width' => 50, - ); - $i++; - } + $lines[0][] = array( + 'text' => $order->formatPriceTxt($item->getRowTotal()), + 'feed' => 330, + 'font' => 'bold', + 'align' => 'right', + ); - $x += 50; // draw Discount $lines[0][] = array( 'text' => $order->formatPriceTxt(-$item->getDiscountAmount()), - 'feed' => $x, + 'feed' => 380, 'font' => 'bold', - 'align' => 'right', - 'width' => 50, + 'align' => 'right' ); - $x += 50; // draw QTY $lines[0][] = array( - 'text' => $item->getQty()*1, - 'feed' => $x, + 'text' => $item->getQty() * 1, + 'feed' => 445, 'font' => 'bold', - 'align' => 'center', - 'width' => 30, + 'align' => 'right', ); - $x += 30; // draw Tax $lines[0][] = array( 'text' => $order->formatPriceTxt($item->getTaxAmount()), - 'feed' => $x, + 'feed' => 495, 'font' => 'bold', - 'align' => 'right', - 'width' => 45, + 'align' => 'right' ); - $x += 45; - // draw Subtotal - $subtotal = $item->getRowTotal() - + $item->getTaxAmount() + $item->getHiddenTaxAmount() - $item->getDiscountAmount(); + // draw Total (inc) + $subtotal = $item->getRowTotal() + $item->getTaxAmount() + $item->getHiddenTaxAmount() + - $item->getDiscountAmount(); $lines[0][] = array( 'text' => $order->formatPriceTxt($subtotal), - 'feed' => $rightBound, + 'feed' => 565, 'font' => 'bold', 'align' => 'right' ); @@ -137,18 +108,16 @@ public function draw() foreach ($options as $option) { // draw options label $lines[][] = array( - 'text' => Mage::helper('core/string')->str_split(strip_tags($option['label']), 70, true, true), + 'text' => Mage::helper('core/string')->str_split(strip_tags($option['label']), 40, true, true), 'font' => 'italic', - 'feed' => $leftBound + 'feed' => 35 ); // draw options value - $_printValue = isset($option['print_value']) - ? $option['print_value'] - : strip_tags($option['value']); + $_printValue = isset($option['print_value']) ? $option['print_value'] : strip_tags($option['value']); $lines[][] = array( - 'text' => Mage::helper('core/string')->str_split($_printValue, 50, true, true), - 'feed' => $leftBound + 5 + 'text' => Mage::helper('core/string')->str_split($_printValue, 30, true, true), + 'feed' => 40 ); } } @@ -173,7 +142,7 @@ public function draw() $lineBlock = array( 'lines' => $lines, - 'height' => 10 + 'height' => 20 ); $page = $pdf->drawLineBlocks($page, array($lineBlock), array('table_header' => true)); diff --git a/app/code/core/Mage/Downloadable/Model/Sales/Order/Pdf/Items/Invoice.php b/app/code/core/Mage/Downloadable/Model/Sales/Order/Pdf/Items/Invoice.php index ea6190d212..f31bd27421 100644 --- a/app/code/core/Mage/Downloadable/Model/Sales/Order/Pdf/Items/Invoice.php +++ b/app/code/core/Mage/Downloadable/Model/Sales/Order/Pdf/Items/Invoice.php @@ -49,37 +49,41 @@ public function draw() // draw Product name $lines[0] = array(array( - 'text' => Mage::helper('core/string')->str_split($item->getName(), 64, true, true), + 'text' => Mage::helper('core/string')->str_split($item->getName(), 35, true, true), 'feed' => 35, )); // draw SKU $lines[0][] = array( - 'text' => Mage::helper('core/string')->str_split($this->getSku($item), 25), - 'feed' => 255 + 'text' => Mage::helper('core/string')->str_split($this->getSku($item), 17), + 'feed' => 290, + 'align' => 'right' ); // draw QTY $lines[0][] = array( - 'text' => $item->getQty()*1, - 'feed' => 435 + 'text' => $item->getQty() * 1, + 'feed' => 435, + 'align' => 'right' ); // draw item Prices $i = 0; $prices = $this->getItemPricesForDisplay(); + $feedPrice = 395; + $feedSubtotal = $feedPrice + 170; foreach ($prices as $priceData){ if (isset($priceData['label'])) { // draw Price label $lines[$i][] = array( 'text' => $priceData['label'], - 'feed' => 395, + 'feed' => $feedPrice, 'align' => 'right' ); // draw Subtotal label $lines[$i][] = array( 'text' => $priceData['label'], - 'feed' => 565, + 'feed' => $feedSubtotal, 'align' => 'right' ); $i++; @@ -87,14 +91,14 @@ public function draw() // draw Price $lines[$i][] = array( 'text' => $priceData['price'], - 'feed' => 395, + 'feed' => $feedPrice, 'font' => 'bold', 'align' => 'right' ); // draw Subtotal $lines[$i][] = array( 'text' => $priceData['subtotal'], - 'feed' => 565, + 'feed' => $feedSubtotal, 'font' => 'bold', 'align' => 'right' ); @@ -115,7 +119,7 @@ public function draw() foreach ($options as $option) { // draw options label $lines[][] = array( - 'text' => Mage::helper('core/string')->str_split(strip_tags($option['label']), 70, true, true), + 'text' => Mage::helper('core/string')->str_split(strip_tags($option['label']), 40, true, true), 'font' => 'italic', 'feed' => 35 ); @@ -129,7 +133,7 @@ public function draw() $values = explode(', ', $_printValue); foreach ($values as $value) { $lines[][] = array( - 'text' => Mage::helper('core/string')->str_split($value, 50, true, true), + 'text' => Mage::helper('core/string')->str_split($value, 30, true, true), 'feed' => 40 ); } @@ -157,7 +161,7 @@ public function draw() $lineBlock = array( 'lines' => $lines, - 'height' => 10 + 'height' => 20 ); $page = $pdf->drawLineBlocks($page, array($lineBlock), array('table_header' => true)); diff --git a/app/code/core/Mage/OAuth/Block/Authorize/Style.php b/app/code/core/Mage/OAuth/Block/Authorize/Style.php deleted file mode 100644 index 0f166479a1..0000000000 --- a/app/code/core/Mage/OAuth/Block/Authorize/Style.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ -class Mage_OAuth_Block_Authorize_Style extends Mage_OAuth_Block_Authorize_Abstract -{ - /** - * Set default data - */ - public function __construct() - { - parent::__construct(); - - //default load template from admin package - $this->setIsSimple(true); - } - -} diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Admin/Token.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Admin/Token.php similarity index 88% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Admin/Token.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Admin/Token.php index 8bbcee994a..39e4cd54c8 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Admin/Token.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Admin/Token.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth consumers grid container block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_Admin_Token extends Mage_Adminhtml_Block_Widget_Grid_Container +class Mage_Oauth_Block_Adminhtml_Oauth_Admin_Token extends Mage_Adminhtml_Block_Widget_Grid_Container { /** * Construct grid container @@ -41,7 +41,7 @@ public function __construct() parent::__construct(); $this->_blockGroup = 'oauth'; - $this->_controller = 'adminhtml_oAuth_admin_token'; + $this->_controller = 'adminhtml_oauth_admin_token'; $this->_headerText = Mage::helper('adminhtml')->__('My Applications'); $this->_removeButton('add'); } diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Admin/Token/Grid.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Admin/Token/Grid.php similarity index 90% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Admin/Token/Grid.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Admin/Token/Grid.php index c7bfbc6b19..5b31968f30 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Admin/Token/Grid.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Admin/Token/Grid.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth My Application grid block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_Admin_Token_Grid extends Mage_Adminhtml_Block_Widget_Grid +class Mage_Oauth_Block_Adminhtml_Oauth_Admin_Token_Grid extends Mage_Adminhtml_Block_Widget_Grid { /** * Construct grid block @@ -49,17 +49,17 @@ public function __construct() /** * Prepare collection * - * @return Mage_OAuth_Block_Adminhtml_OAuth_Admin_Token_Grid + * @return Mage_Oauth_Block_Adminhtml_Oauth_Admin_Token_Grid */ protected function _prepareCollection() { /** @var $user Mage_Admin_Model_User */ $user = Mage::getSingleton('admin/session')->getData('user'); - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS) + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS) ->addFilterByAdminId($user->getId()); $this->setCollection($collection); @@ -70,7 +70,7 @@ protected function _prepareCollection() /** * Prepare columns * - * @return Mage_OAuth_Block_Adminhtml_OAuth_Admin_Token_Grid + * @return Mage_Oauth_Block_Adminhtml_Oauth_Admin_Token_Grid */ protected function _prepareColumns() { @@ -105,7 +105,7 @@ protected function _prepareColumns() /** * Add mass-actions to grid * - * @return Mage_OAuth_Block_Adminhtml_OAuth_Admin_Token_Grid + * @return Mage_Oauth_Block_Adminhtml_Oauth_Admin_Token_Grid */ protected function _prepareMassaction() { diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Authorize.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Authorize.php similarity index 81% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Authorize.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Authorize.php index e3174c6e1e..6f1856d56c 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Authorize.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Authorize.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,11 +28,21 @@ * OAuth admin authorization block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_Authorize extends Mage_OAuth_Block_AuthorizeBaseAbstract +class Mage_Oauth_Block_Adminhtml_Oauth_Authorize extends Mage_Oauth_Block_AuthorizeBaseAbstract { + /** + * Retrieve Session Form Key + * + * @return string + */ + public function getFormKey() + { + return Mage::getSingleton('core/session')->getFormKey(); + } + /** * Retrieve admin form posting url * @@ -40,11 +50,7 @@ class Mage_OAuth_Block_Adminhtml_OAuth_Authorize extends Mage_OAuth_Block_Author */ public function getPostActionUrl() { - $params = array(); - if ($this->getIsSimple()) { - $params['simple'] = 1; - } - return $this->getUrl('adminhtml/index/login', $params); + return $this->getUrl('*/*/*'); } /** @@ -74,6 +80,6 @@ public function getFormTitle() */ public function getRejectUrlPath() { - return 'adminhtml/oAuth_authorize/reject'; + return 'adminhtml/oauth_authorize/reject'; } } diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Authorize/Button.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Authorize/Button.php similarity index 83% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Authorize/Button.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Authorize/Button.php index aa6e23537a..9a669327a3 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Authorize/Button.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Authorize/Button.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth authorization block with auth buttons * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_Authorize_Button extends Mage_OAuth_Block_Authorize_ButtonBaseAbstract +class Mage_Oauth_Block_Adminhtml_Oauth_Authorize_Button extends Mage_Oauth_Block_Authorize_ButtonBaseAbstract { /** * Retrieve confirm authorization url path @@ -40,7 +40,7 @@ class Mage_OAuth_Block_Adminhtml_OAuth_Authorize_Button extends Mage_OAuth_Block */ public function getConfirmUrlPath() { - return 'adminhtml/oAuth_authorize/confirm'; + return 'adminhtml/oauth_authorize/confirm'; } /** @@ -50,6 +50,6 @@ public function getConfirmUrlPath() */ public function getRejectUrlPath() { - return 'adminhtml/oAuth_authorize/reject'; + return 'adminhtml/oauth_authorize/reject'; } } diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/AuthorizedTokens.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/AuthorizedTokens.php similarity index 88% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/AuthorizedTokens.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/AuthorizedTokens.php index b307a59af9..24fcf69305 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/AuthorizedTokens.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/AuthorizedTokens.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth authorized tokens grid container block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_AuthorizedTokens extends Mage_Adminhtml_Block_Widget_Grid_Container +class Mage_Oauth_Block_Adminhtml_Oauth_AuthorizedTokens extends Mage_Adminhtml_Block_Widget_Grid_Container { /** * Construct grid container @@ -41,7 +41,7 @@ public function __construct() parent::__construct(); $this->_blockGroup = 'oauth'; - $this->_controller = 'adminhtml_oAuth_authorizedTokens'; + $this->_controller = 'adminhtml_oauth_authorizedTokens'; $this->_headerText = Mage::helper('adminhtml')->__('Authorized OAuth Tokens'); $this->_removeButton('add'); diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/AuthorizedTokens/Grid.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/AuthorizedTokens/Grid.php similarity index 90% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/AuthorizedTokens/Grid.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/AuthorizedTokens/Grid.php index 69e3d948ac..354b89b9e6 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/AuthorizedTokens/Grid.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/AuthorizedTokens/Grid.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth authorized tokens grid block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_AuthorizedTokens_Grid extends Mage_Adminhtml_Block_Widget_Grid +class Mage_Oauth_Block_Adminhtml_Oauth_AuthorizedTokens_Grid extends Mage_Adminhtml_Block_Widget_Grid { /** * Construct grid block @@ -49,14 +49,14 @@ public function __construct() /** * Prepare collection * - * @return Mage_OAuth_Block_Adminhtml_OAuth_AuthorizedTokens_Grid + * @return Mage_Oauth_Block_Adminhtml_Oauth_AuthorizedTokens_Grid */ protected function _prepareCollection() { - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS); + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS); $this->setCollection($collection); parent::_prepareCollection(); @@ -66,7 +66,7 @@ protected function _prepareCollection() /** * Prepare columns * - * @return Mage_OAuth_Block_Adminhtml_OAuth_AuthorizedTokens_Grid + * @return Mage_Oauth_Block_Adminhtml_Oauth_AuthorizedTokens_Grid */ protected function _prepareColumns() { @@ -125,7 +125,7 @@ public function getGridUrl() /** * Get revoke URL * - * @param Mage_OAuth_Model_Token $row + * @param Mage_Oauth_Model_Token $row * @return string|null */ public function getRevokeUrl($row) @@ -136,7 +136,7 @@ public function getRevokeUrl($row) /** * Get delete URL * - * @param Mage_OAuth_Model_Token $row + * @param Mage_Oauth_Model_Token $row * @return string|null */ public function getDeleteUrl($row) @@ -147,7 +147,7 @@ public function getDeleteUrl($row) /** * Add mass-actions to grid * - * @return Mage_OAuth_Block_Adminhtml_OAuth_AuthorizedTokens_Grid + * @return Mage_Oauth_Block_Adminhtml_Oauth_AuthorizedTokens_Grid */ protected function _prepareMassaction() { @@ -179,7 +179,7 @@ protected function _prepareMassaction() * Decorate user type column * * @param string $value - * @param Mage_OAuth_Model_Token $row + * @param Mage_Oauth_Model_Token $row * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @param bool $isExport * @return mixed @@ -198,7 +198,7 @@ public function decorateUserType($value, $row, $column, $isExport) * Decorate user type column * * @param string $value - * @param Mage_OAuth_Model_Token $row + * @param Mage_Oauth_Model_Token $row * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @param bool $isExport * @return mixed diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer.php similarity index 90% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer.php index b4c9dca891..a862047a64 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth consumers grid container block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_Consumer extends Mage_Adminhtml_Block_Widget_Grid_Container +class Mage_Oauth_Block_Adminhtml_Oauth_Consumer extends Mage_Adminhtml_Block_Widget_Grid_Container { /** * Construct grid container @@ -41,7 +41,7 @@ public function __construct() parent::__construct(); $this->_blockGroup = 'oauth'; - $this->_controller = 'adminhtml_oAuth_consumer'; + $this->_controller = 'adminhtml_oauth_consumer'; $this->_headerText = Mage::helper('adminhtml')->__('OAuth Consumers'); //check allow edit diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Edit.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Edit.php similarity index 91% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Edit.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Edit.php index de7eb17b4b..e57262b304 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Edit.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Edit.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -29,22 +29,22 @@ * OAuth Consumer Edit Block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_Consumer_Edit extends Mage_Adminhtml_Block_Widget_Form_Container +class Mage_Oauth_Block_Adminhtml_Oauth_Consumer_Edit extends Mage_Adminhtml_Block_Widget_Form_Container { /** * Consumer model * - * @var Mage_OAuth_Model_Consumer + * @var Mage_Oauth_Model_Consumer */ protected $_model; /** * Get consumer model * - * @return Mage_OAuth_Model_Consumer + * @return Mage_Oauth_Model_Consumer */ public function getModel() { @@ -61,7 +61,7 @@ public function __construct() { parent::__construct(); $this->_blockGroup = 'oauth'; - $this->_controller = 'adminhtml_oAuth_consumer'; + $this->_controller = 'adminhtml_oauth_consumer'; $this->_mode = 'edit'; $this->_addButton('save_and_continue', array( diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Edit/Form.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Edit/Form.php similarity index 93% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Edit/Form.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Edit/Form.php index 8d27f2a1c4..79283044aa 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Edit/Form.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Edit/Form.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -29,22 +29,22 @@ * OAuth consumer edit form block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_Consumer_Edit_Form extends Mage_Adminhtml_Block_Widget_Form +class Mage_Oauth_Block_Adminhtml_Oauth_Consumer_Edit_Form extends Mage_Adminhtml_Block_Widget_Form { /** * Consumer model * - * @var Mage_OAuth_Model_Consumer + * @var Mage_Oauth_Model_Consumer */ protected $_model; /** * Get consumer model * - * @return Mage_OAuth_Model_Consumer + * @return Mage_Oauth_Model_Consumer */ public function getModel() { @@ -57,7 +57,7 @@ public function getModel() /** * Prepare form before rendering HTML * - * @return Mage_OAuth_Block_Adminhtml_OAuth_Consumer_Edit_Form + * @return Mage_Oauth_Block_Adminhtml_Oauth_Consumer_Edit_Form */ protected function _prepareForm() { diff --git a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Grid.php b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Grid.php similarity index 91% rename from app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Grid.php rename to app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Grid.php index b97e0aee5b..f27d8b18c1 100644 --- a/app/code/core/Mage/OAuth/Block/Adminhtml/OAuth/Consumer/Grid.php +++ b/app/code/core/Mage/Oauth/Block/Adminhtml/Oauth/Consumer/Grid.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth Consumer grid block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Adminhtml_OAuth_Consumer_Grid extends Mage_Adminhtml_Block_Widget_Grid +class Mage_Oauth_Block_Adminhtml_Oauth_Consumer_Grid extends Mage_Adminhtml_Block_Widget_Grid { /** * Allow edit status @@ -60,7 +60,7 @@ public function __construct() /** * Prepare collection * - * @return Mage_OAuth_Block_Adminhtml_OAuth_Consumer_Grid + * @return Mage_Oauth_Block_Adminhtml_Oauth_Consumer_Grid */ protected function _prepareCollection() { @@ -73,7 +73,7 @@ protected function _prepareCollection() /** * Prepare columns * - * @return Mage_OAuth_Block_Adminhtml_OAuth_Consumer_Grid + * @return Mage_Oauth_Block_Adminhtml_Oauth_Consumer_Grid */ protected function _prepareColumns() { @@ -105,7 +105,7 @@ public function getGridUrl() /** * Get row URL * - * @param Mage_OAuth_Model_Consumer $row + * @param Mage_Oauth_Model_Consumer $row * @return string|null */ public function getRowUrl($row) diff --git a/app/code/core/Mage/OAuth/Block/Authorize.php b/app/code/core/Mage/Oauth/Block/Authorize.php similarity index 87% rename from app/code/core/Mage/OAuth/Block/Authorize.php rename to app/code/core/Mage/Oauth/Block/Authorize.php index 5aa0c78fd4..b22b4ad7fe 100644 --- a/app/code/core/Mage/OAuth/Block/Authorize.php +++ b/app/code/core/Mage/Oauth/Block/Authorize.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth authorization block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Authorize extends Mage_OAuth_Block_AuthorizeBaseAbstract +class Mage_Oauth_Block_Authorize extends Mage_Oauth_Block_AuthorizeBaseAbstract { /** * Retrieve customer form posting url @@ -44,7 +44,11 @@ public function getPostActionUrl() $helper = $this->helper('customer'); $url = $helper->getLoginPostUrl(); if ($this->getIsSimple()) { - $url = rtrim($url, '/') . '/simple/1'; + if (strstr($url, '?')) { + $url .= '&simple=1'; + } else { + $url = rtrim($url, '/') . '/simple/1'; + } } return $url; } diff --git a/app/code/core/Mage/OAuth/Block/Authorize/Abstract.php b/app/code/core/Mage/Oauth/Block/Authorize/Abstract.php similarity index 81% rename from app/code/core/Mage/OAuth/Block/Authorize/Abstract.php rename to app/code/core/Mage/Oauth/Block/Authorize/Abstract.php index 96ec2e751a..632077b585 100644 --- a/app/code/core/Mage/OAuth/Block/Authorize/Abstract.php +++ b/app/code/core/Mage/Oauth/Block/Authorize/Abstract.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,32 +28,32 @@ * OAuth abstract authorization block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team * @method string getToken() - * @method Mage_OAuth_Block_AuthorizeBaseAbstract setToken() setToken(string $token) + * @method Mage_Oauth_Block_AuthorizeBaseAbstract setToken() setToken(string $token) * @method boolean getIsSimple() - * @method Mage_OAuth_Block_Authorize_Button setIsSimple() setIsSimple(boolean $flag) + * @method Mage_Oauth_Block_Authorize_Button setIsSimple() setIsSimple(boolean $flag) * @method boolean getHasException() - * @method Mage_OAuth_Block_AuthorizeBaseAbstract setIsException() setHasException(boolean $flag) + * @method Mage_Oauth_Block_AuthorizeBaseAbstract setIsException() setHasException(boolean $flag) * @method boolean getVerifier() - * @method Mage_OAuth_Block_AuthorizeBaseAbstract setVerifier() setVerifier(string $verifier) + * @method Mage_Oauth_Block_AuthorizeBaseAbstract setVerifier() setVerifier(string $verifier) * @method boolean getIsLogged() - * @method Mage_OAuth_Block_AuthorizeBaseAbstract setIsLogged() setIsLogged(boolean $flag) + * @method Mage_Oauth_Block_AuthorizeBaseAbstract setIsLogged() setIsLogged(boolean $flag) */ -abstract class Mage_OAuth_Block_Authorize_Abstract extends Mage_Core_Block_Template +abstract class Mage_Oauth_Block_Authorize_Abstract extends Mage_Core_Block_Template { /** * Helper * - * @var Mage_OAuth_Helper_Data + * @var Mage_Oauth_Helper_Data */ protected $_helper; /** * Consumer model * - * @var Mage_OAuth_Model_Consumer + * @var Mage_Oauth_Model_Consumer */ protected $_consumer; @@ -69,12 +69,12 @@ public function __construct() /** * Get consumer instance by token value * - * @return Mage_OAuth_Model_Consumer + * @return Mage_Oauth_Model_Consumer */ public function getConsumer() { if (null === $this->_consumer) { - /** @var $token Mage_OAuth_Model_Token */ + /** @var $token Mage_Oauth_Model_Token */ $token = Mage::getModel('oauth/token'); $token->load($this->getToken(), 'token'); $this->_consumer = $token->getConsumer(); diff --git a/app/code/core/Mage/OAuth/Block/Authorize/Button.php b/app/code/core/Mage/Oauth/Block/Authorize/Button.php similarity index 92% rename from app/code/core/Mage/OAuth/Block/Authorize/Button.php rename to app/code/core/Mage/Oauth/Block/Authorize/Button.php index 82eda40c7d..41838886c7 100644 --- a/app/code/core/Mage/OAuth/Block/Authorize/Button.php +++ b/app/code/core/Mage/Oauth/Block/Authorize/Button.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth authorization block with auth buttons * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Authorize_Button extends Mage_OAuth_Block_Authorize_ButtonBaseAbstract +class Mage_Oauth_Block_Authorize_Button extends Mage_Oauth_Block_Authorize_ButtonBaseAbstract { /** * Retrieve confirm authorization url path diff --git a/app/code/core/Mage/OAuth/Block/Authorize/ButtonBaseAbstract.php b/app/code/core/Mage/Oauth/Block/Authorize/ButtonBaseAbstract.php similarity index 91% rename from app/code/core/Mage/OAuth/Block/Authorize/ButtonBaseAbstract.php rename to app/code/core/Mage/Oauth/Block/Authorize/ButtonBaseAbstract.php index 27199bed54..84efda93a0 100644 --- a/app/code/core/Mage/OAuth/Block/Authorize/ButtonBaseAbstract.php +++ b/app/code/core/Mage/Oauth/Block/Authorize/ButtonBaseAbstract.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth authorization base abstract block with auth buttons * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -abstract class Mage_OAuth_Block_Authorize_ButtonBaseAbstract extends Mage_OAuth_Block_Authorize_Abstract +abstract class Mage_Oauth_Block_Authorize_ButtonBaseAbstract extends Mage_Oauth_Block_Authorize_Abstract { /** * Get confirm url path diff --git a/app/code/core/Mage/OAuth/Block/AuthorizeBaseAbstract.php b/app/code/core/Mage/Oauth/Block/AuthorizeBaseAbstract.php similarity index 92% rename from app/code/core/Mage/OAuth/Block/AuthorizeBaseAbstract.php rename to app/code/core/Mage/Oauth/Block/AuthorizeBaseAbstract.php index 44d9e60b5a..926dcf2239 100644 --- a/app/code/core/Mage/OAuth/Block/AuthorizeBaseAbstract.php +++ b/app/code/core/Mage/Oauth/Block/AuthorizeBaseAbstract.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth authorization block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -abstract class Mage_OAuth_Block_AuthorizeBaseAbstract extends Mage_OAuth_Block_Authorize_Abstract +abstract class Mage_Oauth_Block_AuthorizeBaseAbstract extends Mage_Oauth_Block_Authorize_Abstract { /** * Retrieve user authorize form posting url diff --git a/app/code/core/Mage/OAuth/Block/Customer/Token/List.php b/app/code/core/Mage/Oauth/Block/Customer/Token/List.php similarity index 86% rename from app/code/core/Mage/OAuth/Block/Customer/Token/List.php rename to app/code/core/Mage/Oauth/Block/Customer/Token/List.php index d1cc4f04da..9f56424f9a 100644 --- a/app/code/core/Mage/OAuth/Block/Customer/Token/List.php +++ b/app/code/core/Mage/Oauth/Block/Customer/Token/List.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -29,15 +29,15 @@ * Customer My Applications list block * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Block_Customer_Token_List extends Mage_Customer_Block_Account_Dashboard +class Mage_Oauth_Block_Customer_Token_List extends Mage_Customer_Block_Account_Dashboard { /** * Collection model * - * @var Mage_OAuth_Model_Resource_Token_Collection + * @var Mage_Oauth_Model_Resource_Token_Collection */ protected $_collection; @@ -49,10 +49,10 @@ protected function _construct() /** @var $session Mage_Customer_Model_Session */ $session = Mage::getSingleton('customer/session'); - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS) + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS) ->addFilterByCustomerId($session->getCustomerId()); $this->_collection = $collection; } @@ -80,7 +80,7 @@ public function getToolbarHtml() /** * Prepare layout * - * @return Mage_OAuth_Block_Customer_Token_List + * @return Mage_Oauth_Block_Customer_Token_List */ protected function _prepareLayout() { @@ -95,7 +95,7 @@ protected function _prepareLayout() /** * Get collection * - * @return Mage_OAuth_Model_Resource_Token_Collection + * @return Mage_Oauth_Model_Resource_Token_Collection */ public function getCollection() { @@ -105,10 +105,10 @@ public function getCollection() /** * Get link for update revoke status * - * @param Mage_OAuth_Model_Token $model + * @param Mage_Oauth_Model_Token $model * @return string */ - public function getUpdateRevokeLink(Mage_OAuth_Model_Token $model) + public function getUpdateRevokeLink(Mage_Oauth_Model_Token $model) { return Mage::getUrl('oauth/customer_token/revoke/', array('id' => $model->getId(), 'status' => (int) !$model->getRevoked())); @@ -117,10 +117,10 @@ public function getUpdateRevokeLink(Mage_OAuth_Model_Token $model) /** * Get delete link * - * @param Mage_OAuth_Model_Token $model + * @param Mage_Oauth_Model_Token $model * @return string */ - public function getDeleteLink(Mage_OAuth_Model_Token $model) + public function getDeleteLink(Mage_Oauth_Model_Token $model) { return Mage::getUrl('oauth/customer_token/delete/', array('id' => $model->getId())); } diff --git a/app/code/core/Mage/OAuth/Exception.php b/app/code/core/Mage/Oauth/Exception.php similarity index 90% rename from app/code/core/Mage/OAuth/Exception.php rename to app/code/core/Mage/Oauth/Exception.php index 972d05bc52..ebbfb6eeb3 100644 --- a/app/code/core/Mage/OAuth/Exception.php +++ b/app/code/core/Mage/Oauth/Exception.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,9 +28,9 @@ * oAuth Exception * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Exception extends Zend_Exception +class Mage_Oauth_Exception extends Zend_Exception { } diff --git a/app/code/core/Mage/OAuth/Helper/Data.php b/app/code/core/Mage/Oauth/Helper/Data.php similarity index 74% rename from app/code/core/Mage/OAuth/Helper/Data.php rename to app/code/core/Mage/Oauth/Helper/Data.php index 6443d9156a..fa6b71aab7 100644 --- a/app/code/core/Mage/OAuth/Helper/Data.php +++ b/app/code/core/Mage/Oauth/Helper/Data.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,18 +28,18 @@ * OAuth Helper * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Helper_Data extends Mage_Core_Helper_Abstract +class Mage_Oauth_Helper_Data extends Mage_Core_Helper_Abstract { /**#@+ * Endpoint types with appropriate routes */ const ENDPOINT_AUTHORIZE_CUSTOMER = 'oauth/authorize'; - const ENDPOINT_AUTHORIZE_ADMIN = 'adminhtml/oAuth_authorize'; + const ENDPOINT_AUTHORIZE_ADMIN = 'adminhtml/oauth_authorize'; const ENDPOINT_AUTHORIZE_CUSTOMER_SIMPLE = 'oauth/authorize/simple'; - const ENDPOINT_AUTHORIZE_ADMIN_SIMPLE = 'adminhtml/oAuth_authorize/simple'; + const ENDPOINT_AUTHORIZE_ADMIN_SIMPLE = 'adminhtml/oauth_authorize/simple'; const ENDPOINT_INITIATE = 'oauth/initiate'; const ENDPOINT_TOKEN = 'oauth/token'; /**#@-*/ @@ -88,6 +88,7 @@ class Mage_OAuth_Helper_Data extends Mage_Core_Helper_Abstract */ protected function _generateRandomString($length) { + /** @var $helper Mage_Core_Helper_Data */ $helper = Mage::helper('core'); @@ -103,7 +104,7 @@ protected function _generateRandomString($length) */ public function generateToken() { - return $this->_generateRandomString(Mage_OAuth_Model_Token::LENGTH_TOKEN); + return $this->_generateRandomString(Mage_Oauth_Model_Token::LENGTH_TOKEN); } /** @@ -113,7 +114,7 @@ public function generateToken() */ public function generateTokenSecret() { - return $this->_generateRandomString(Mage_OAuth_Model_Token::LENGTH_SECRET); + return $this->_generateRandomString(Mage_Oauth_Model_Token::LENGTH_SECRET); } /** @@ -123,7 +124,7 @@ public function generateTokenSecret() */ public function generateVerifier() { - return $this->_generateRandomString(Mage_OAuth_Model_Token::LENGTH_VERIFIER); + return $this->_generateRandomString(Mage_Oauth_Model_Token::LENGTH_VERIFIER); } /** @@ -133,7 +134,7 @@ public function generateVerifier() */ public function generateConsumerKey() { - return $this->_generateRandomString(Mage_OAuth_Model_Consumer::KEY_LENGTH); + return $this->_generateRandomString(Mage_Oauth_Model_Consumer::KEY_LENGTH); } /** @@ -143,25 +144,25 @@ public function generateConsumerKey() */ public function generateConsumerSecret() { - return $this->_generateRandomString(Mage_OAuth_Model_Consumer::SECRET_LENGTH); + return $this->_generateRandomString(Mage_Oauth_Model_Consumer::SECRET_LENGTH); } /** * Return complete callback URL or boolean FALSE if no callback provided * - * @param Mage_OAuth_Model_Token $token Token object + * @param Mage_Oauth_Model_Token $token Token object * @param bool $rejected OPTIONAL Add user reject sign * @return bool|string */ - public function getFullCallbackUrl(Mage_OAuth_Model_Token $token, $rejected = false) + public function getFullCallbackUrl(Mage_Oauth_Model_Token $token, $rejected = false) { $callbackUrl = $token->getCallbackUrl(); - if (Mage_OAuth_Model_Server::CALLBACK_ESTABLISHED == $callbackUrl) { + if (Mage_Oauth_Model_Server::CALLBACK_ESTABLISHED == $callbackUrl) { return false; } if ($rejected) { - /** @var $consumer Mage_OAuth_Model_Consumer */ + /** @var $consumer Mage_Oauth_Model_Consumer */ $consumer = Mage::getModel('oauth/consumer')->load($token->getConsumerId()); if ($consumer->getId() && $consumer->getRejectedCallbackUrl()) { @@ -242,4 +243,60 @@ public function sendNotificationOnTokenStatusChange($userEmail, $userName, $appl ) ); } + + /** + * Is current authorize page is simple + * + * @return boolean + */ + protected function _getIsSimple() + { + $simple = false; + if (stristr($this->_getRequest()->getActionName(), 'simple') + || !is_null($this->_getRequest()->getParam('simple', null)) + ) { + $simple = true; + } + + return $simple; + } + + /** + * Get authorize endpoint url + * + * @param string $userType + * @return string + */ + public function getAuthorizeUrl($userType) + { + $simple = $this->_getIsSimple(); + + if (Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER == $userType) { + if ($simple) { + $route = self::ENDPOINT_AUTHORIZE_CUSTOMER_SIMPLE; + } else { + $route = self::ENDPOINT_AUTHORIZE_CUSTOMER; + } + } elseif (Mage_Oauth_Model_Token::USER_TYPE_ADMIN == $userType) { + if ($simple) { + $route = self::ENDPOINT_AUTHORIZE_ADMIN_SIMPLE; + } else { + $route = self::ENDPOINT_AUTHORIZE_ADMIN; + } + } else { + throw new Exception('Invalid user type.'); + } + + return $this->_getUrl($route, array('_query' => array('oauth_token' => $this->getOauthToken()))); + } + + /** + * Retrieve oauth_token param from request + * + * @return string|null + */ + public function getOauthToken() + { + return $this->_getRequest()->getParam('oauth_token', null); + } } diff --git a/app/code/core/Mage/OAuth/Model/Consumer.php b/app/code/core/Mage/Oauth/Model/Consumer.php similarity index 76% rename from app/code/core/Mage/OAuth/Model/Consumer.php rename to app/code/core/Mage/Oauth/Model/Consumer.php index c67a336ef1..7fce3a9589 100644 --- a/app/code/core/Mage/OAuth/Model/Consumer.php +++ b/app/code/core/Mage/Oauth/Model/Consumer.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,28 +28,28 @@ * Application model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team - * @method Mage_OAuth_Model_Resource_Consumer _getResource() - * @method Mage_OAuth_Model_Resource_Consumer getResource() - * @method Mage_OAuth_Model_Resource_Consumer_Collection getCollection() - * @method Mage_OAuth_Model_Resource_Consumer_Collection getResourceCollection() + * @method Mage_Oauth_Model_Resource_Consumer _getResource() + * @method Mage_Oauth_Model_Resource_Consumer getResource() + * @method Mage_Oauth_Model_Resource_Consumer_Collection getCollection() + * @method Mage_Oauth_Model_Resource_Consumer_Collection getResourceCollection() * @method string getName() - * @method Mage_OAuth_Model_Consumer setName() setName(string $name) + * @method Mage_Oauth_Model_Consumer setName() setName(string $name) * @method string getKey() - * @method Mage_OAuth_Model_Consumer setKey() setKey(string $key) + * @method Mage_Oauth_Model_Consumer setKey() setKey(string $key) * @method string getSecret() - * @method Mage_OAuth_Model_Consumer setSecret() setSecret(string $secret) + * @method Mage_Oauth_Model_Consumer setSecret() setSecret(string $secret) * @method string getCallbackUrl() - * @method Mage_OAuth_Model_Consumer setCallbackUrl() setCallbackUrl(string $url) + * @method Mage_Oauth_Model_Consumer setCallbackUrl() setCallbackUrl(string $url) * @method string getCreatedAt() - * @method Mage_OAuth_Model_Consumer setCreatedAt() setCreatedAt(string $date) + * @method Mage_Oauth_Model_Consumer setCreatedAt() setCreatedAt(string $date) * @method string getUpdatedAt() - * @method Mage_OAuth_Model_Consumer setUpdatedAt() setUpdatedAt(string $date) + * @method Mage_Oauth_Model_Consumer setUpdatedAt() setUpdatedAt(string $date) * @method string getRejectedCallbackUrl() - * @method Mage_OAuth_Model_Consumer setRejectedCallbackUrl() setRejectedCallbackUrl(string $rejectedCallbackUrl) + * @method Mage_Oauth_Model_Consumer setRejectedCallbackUrl() setRejectedCallbackUrl(string $rejectedCallbackUrl) */ -class Mage_OAuth_Model_Consumer extends Mage_Core_Model_Abstract +class Mage_Oauth_Model_Consumer extends Mage_Core_Model_Abstract { /** * Key hash length @@ -74,7 +74,7 @@ protected function _construct() /** * BeforeSave actions * - * @return Mage_OAuth_Model_Consumer + * @return Mage_Oauth_Model_Consumer */ protected function _beforeSave() { @@ -109,10 +109,8 @@ public function validate() } } - /** @var $validatorLength Mage_OAuth_Model_Consumer_Validator_KeyLength */ - $validatorLength = Mage::getModel( - 'oauth/consumer_validator_keyLength', - array('length' => self::KEY_LENGTH)); + /** @var $validatorLength Mage_Oauth_Model_Consumer_Validator_KeyLength */ + $validatorLength = Mage::getModel('oauth/consumer_validator_keyLength', array('length' => self::KEY_LENGTH)); $validatorLength->setName('Consumer Key'); if (!$validatorLength->isValid($this->getKey())) { diff --git a/app/code/core/Mage/OAuth/Model/Consumer/Validator/KeyLength.php b/app/code/core/Mage/Oauth/Model/Consumer/Validator/KeyLength.php similarity index 92% rename from app/code/core/Mage/OAuth/Model/Consumer/Validator/KeyLength.php rename to app/code/core/Mage/Oauth/Model/Consumer/Validator/KeyLength.php index bee2243f84..b1fc2345d0 100644 --- a/app/code/core/Mage/OAuth/Model/Consumer/Validator/KeyLength.php +++ b/app/code/core/Mage/Oauth/Model/Consumer/Validator/KeyLength.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * Validate OAuth keys * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Consumer_Validator_KeyLength extends Zend_Validate_StringLength +class Mage_Oauth_Model_Consumer_Validator_KeyLength extends Zend_Validate_StringLength { /** * Key name @@ -69,7 +69,7 @@ public function __construct($options = array()) /** * Init validation failure message template definitions * - * @return Mage_OAuth_Model_Consumer_Validator_KeyLength + * @return Mage_Oauth_Model_Consumer_Validator_KeyLength */ protected function _initMessageTemplates() { @@ -96,7 +96,7 @@ protected function _initMessageTemplates() * Set length * * @param $length - * @return Mage_OAuth_Model_Consumer_Validator_KeyLength + * @return Mage_Oauth_Model_Consumer_Validator_KeyLength */ public function setLength($length) { @@ -137,7 +137,7 @@ public function isValid($value) * Set key name * * @param string $name - * @return Mage_OAuth_Model_Consumer_Validator_KeyLength + * @return Mage_Oauth_Model_Consumer_Validator_KeyLength */ public function setName($name) { diff --git a/app/code/core/Mage/OAuth/Model/Nonce.php b/app/code/core/Mage/Oauth/Model/Nonce.php similarity index 78% rename from app/code/core/Mage/OAuth/Model/Nonce.php rename to app/code/core/Mage/Oauth/Model/Nonce.php index ce92f848c3..7bb84d2b59 100644 --- a/app/code/core/Mage/OAuth/Model/Nonce.php +++ b/app/code/core/Mage/Oauth/Model/Nonce.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -29,16 +29,16 @@ * oAuth nonce model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team * @method string getNonce() - * @method Mage_OAuth_Model_Nonce setNonce() setNonce(string $nonce) + * @method Mage_Oauth_Model_Nonce setNonce() setNonce(string $nonce) * @method string getTimestamp() - * @method Mage_OAuth_Model_Nonce setTimestamp() setTimestamp(string $timestamp) - * @method Mage_OAuth_Model_Resource_Nonce getResource() - * @method Mage_OAuth_Model_Resource_Nonce _getResource() + * @method Mage_Oauth_Model_Nonce setTimestamp() setTimestamp(string $timestamp) + * @method Mage_Oauth_Model_Resource_Nonce getResource() + * @method Mage_Oauth_Model_Resource_Nonce _getResource() */ -class Mage_OAuth_Model_Nonce extends Mage_Core_Model_Abstract +class Mage_Oauth_Model_Nonce extends Mage_Core_Model_Abstract { /** * Initialize resource model @@ -53,14 +53,14 @@ protected function _construct() /** * "After save" actions * - * @return Mage_OAuth_Model_Nonce + * @return Mage_Oauth_Model_Nonce */ protected function _afterSave() { parent::_afterSave(); //Cleanup old entries - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); if ($helper->isCleanupProbability()) { $this->_getResource()->deleteOldEntries($helper->getCleanupExpirationPeriod()); diff --git a/app/code/core/Mage/OAuth/Model/Observer.php b/app/code/core/Mage/Oauth/Model/Observer.php similarity index 53% rename from app/code/core/Mage/OAuth/Model/Observer.php rename to app/code/core/Mage/Oauth/Model/Observer.php index 6232a69b2c..05ae5c2195 100644 --- a/app/code/core/Mage/OAuth/Model/Observer.php +++ b/app/code/core/Mage/Oauth/Model/Observer.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,40 +28,11 @@ * OAuth observer * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Observer +class Mage_Oauth_Model_Observer { - /** - * Get callback url - * - * @param string $userType - * @return string - */ - protected function _getAfterAuthUrl($userType) - { - $simple = Mage::app()->getRequest()->getParam('simple'); - - if (Mage_OAuth_Model_Token::USER_TYPE_CUSTOMER == $userType) { - if ($simple) { - $route = Mage_OAuth_Helper_Data::ENDPOINT_AUTHORIZE_CUSTOMER_SIMPLE; - } else { - $route = Mage_OAuth_Helper_Data::ENDPOINT_AUTHORIZE_CUSTOMER; - } - } elseif (Mage_OAuth_Model_Token::USER_TYPE_ADMIN == $userType) { - if ($simple) { - $route = Mage_OAuth_Helper_Data::ENDPOINT_AUTHORIZE_ADMIN_SIMPLE; - } else { - $route = Mage_OAuth_Helper_Data::ENDPOINT_AUTHORIZE_ADMIN; - } - } else { - throw new Exception('Invalid user type.'); - } - - return Mage::getUrl($route, array('_query' => array('oauth_token' => $this->_getOauthToken()))); - } - /** * Retrieve oauth_token param from request * @@ -69,21 +40,24 @@ protected function _getAfterAuthUrl($userType) */ protected function _getOauthToken() { - return Mage::app()->getRequest()->getParam('oauth_token', null); + return Mage::helper('oauth')->getOauthToken(); } /** - * Redirect customer to callback page after login success + * Redirect customer to callback page after login * * @param Varien_Event_Observer $observer - * @return void */ public function afterCustomerLogin(Varien_Event_Observer $observer) { if (null !== $this->_getOauthToken()) { - /** @var $session Mage_Customer_Model_Session */ - $session = Mage::getSingleton('customer/session'); - $session->setAfterAuthUrl($this->_getAfterAuthUrl(Mage_OAuth_Model_Token::USER_TYPE_CUSTOMER)); + $userType = Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER; + $url = Mage::helper('oauth')->getAuthorizeUrl($userType); + Mage::app()->getResponse() + ->setRedirect($url) + ->sendHeaders() + ->sendResponse(); + exit(); } } @@ -91,21 +65,25 @@ public function afterCustomerLogin(Varien_Event_Observer $observer) * Redirect admin to authorize controller after login success * * @param Varien_Event_Observer $observer - * @return void */ public function afterAdminLogin(Varien_Event_Observer $observer) { if (null !== $this->_getOauthToken()) { - $userType = Mage_OAuth_Model_Token::USER_TYPE_ADMIN; - - $url = $this->_getAfterAuthUrl($userType); + $userType = Mage_Oauth_Model_Token::USER_TYPE_ADMIN; + $url = Mage::helper('oauth')->getAuthorizeUrl($userType); Mage::app()->getResponse() ->setRedirect($url) ->sendHeaders() ->sendResponse(); + exit(); } } + /** + * Redirect admin to authorize controller after login fail + * + * @param Varien_Event_Observer $observer + */ public function afterAdminLoginFailed(Varien_Event_Observer $observer) { if (null !== $this->_getOauthToken()) { @@ -113,19 +91,13 @@ public function afterAdminLoginFailed(Varien_Event_Observer $observer) $session = Mage::getSingleton('admin/session'); $session->addError($observer->getException()->getMessage()); - $params = array('oauth_token' => $this->_getOauthToken()); - - if (Mage::app()->getRequest()->getParam('simple')) { - $route = Mage_OAuth_Helper_Data::ENDPOINT_AUTHORIZE_ADMIN_SIMPLE; - } else { - $route = Mage_OAuth_Helper_Data::ENDPOINT_AUTHORIZE_ADMIN; - } - $url = Mage::getUrl($route, array('_query' => $params)); - + $userType = Mage_Oauth_Model_Token::USER_TYPE_ADMIN; + $url = Mage::helper('oauth')->getAuthorizeUrl($userType); Mage::app()->getResponse() ->setRedirect($url) ->sendHeaders() ->sendResponse(); + exit(); } } } diff --git a/app/code/core/Mage/OAuth/Model/Resource/Consumer.php b/app/code/core/Mage/Oauth/Model/Resource/Consumer.php similarity index 91% rename from app/code/core/Mage/OAuth/Model/Resource/Consumer.php rename to app/code/core/Mage/Oauth/Model/Resource/Consumer.php index ade3cad2af..0327282a98 100644 --- a/app/code/core/Mage/OAuth/Model/Resource/Consumer.php +++ b/app/code/core/Mage/Oauth/Model/Resource/Consumer.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth Application resource model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Resource_Consumer extends Mage_Core_Model_Resource_Db_Abstract +class Mage_Oauth_Model_Resource_Consumer extends Mage_Core_Model_Resource_Db_Abstract { /** * Initialize resource model diff --git a/app/code/core/Mage/OAuth/Model/Resource/Consumer/Collection.php b/app/code/core/Mage/Oauth/Model/Resource/Consumer/Collection.php similarity index 91% rename from app/code/core/Mage/OAuth/Model/Resource/Consumer/Collection.php rename to app/code/core/Mage/Oauth/Model/Resource/Consumer/Collection.php index b9e5859e86..7f08303b98 100644 --- a/app/code/core/Mage/OAuth/Model/Resource/Consumer/Collection.php +++ b/app/code/core/Mage/Oauth/Model/Resource/Consumer/Collection.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth Application resource collection model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Resource_Consumer_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract +class Mage_Oauth_Model_Resource_Consumer_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract { /** * Initialize collection model diff --git a/app/code/core/Mage/OAuth/Model/Resource/Nonce.php b/app/code/core/Mage/Oauth/Model/Resource/Nonce.php similarity index 93% rename from app/code/core/Mage/OAuth/Model/Resource/Nonce.php rename to app/code/core/Mage/Oauth/Model/Resource/Nonce.php index eaa744df57..d3b2051eb9 100644 --- a/app/code/core/Mage/OAuth/Model/Resource/Nonce.php +++ b/app/code/core/Mage/Oauth/Model/Resource/Nonce.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * oAuth nonce resource model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Resource_Nonce extends Mage_Core_Model_Resource_Db_Abstract +class Mage_Oauth_Model_Resource_Nonce extends Mage_Core_Model_Resource_Db_Abstract { /** * Initialize resource model diff --git a/app/code/core/Mage/OAuth/Model/Resource/Nonce/Collection.php b/app/code/core/Mage/Oauth/Model/Resource/Nonce/Collection.php similarity index 91% rename from app/code/core/Mage/OAuth/Model/Resource/Nonce/Collection.php rename to app/code/core/Mage/Oauth/Model/Resource/Nonce/Collection.php index 542e113448..02ff3da628 100644 --- a/app/code/core/Mage/OAuth/Model/Resource/Nonce/Collection.php +++ b/app/code/core/Mage/Oauth/Model/Resource/Nonce/Collection.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth nonce resource collection model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Resource_Nonce_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract +class Mage_Oauth_Model_Resource_Nonce_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract { /** * Initialize collection model diff --git a/app/code/core/Mage/OAuth/Model/Resource/Setup.php b/app/code/core/Mage/Oauth/Model/Resource/Setup.php similarity index 90% rename from app/code/core/Mage/OAuth/Model/Resource/Setup.php rename to app/code/core/Mage/Oauth/Model/Resource/Setup.php index facf382388..4c74e7cf15 100644 --- a/app/code/core/Mage/OAuth/Model/Resource/Setup.php +++ b/app/code/core/Mage/Oauth/Model/Resource/Setup.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,9 +28,9 @@ * OAuth setup model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup +class Mage_Oauth_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup { } diff --git a/app/code/core/Mage/OAuth/Model/Resource/Token.php b/app/code/core/Mage/Oauth/Model/Resource/Token.php similarity index 90% rename from app/code/core/Mage/OAuth/Model/Resource/Token.php rename to app/code/core/Mage/Oauth/Model/Resource/Token.php index 9c16fcfc98..1afeb5a7b0 100644 --- a/app/code/core/Mage/OAuth/Model/Resource/Token.php +++ b/app/code/core/Mage/Oauth/Model/Resource/Token.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth token resource model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Resource_Token extends Mage_Core_Model_Resource_Db_Abstract +class Mage_Oauth_Model_Resource_Token extends Mage_Core_Model_Resource_Db_Abstract { /** * Initialize resource model @@ -46,10 +46,10 @@ protected function _construct() /** * Clean up old authorized tokens for specified consumer-user pairs * - * @param Mage_OAuth_Model_Token $exceptToken Token just created to exclude from delete + * @param Mage_Oauth_Model_Token $exceptToken Token just created to exclude from delete * @return int The number of affected rows */ - public function cleanOldAuthorizedTokensExcept(Mage_OAuth_Model_Token $exceptToken) + public function cleanOldAuthorizedTokensExcept(Mage_Oauth_Model_Token $exceptToken) { if (!$exceptToken->getId() || !$exceptToken->getAuthorized()) { Mage::throwException('Invalid token to except'); @@ -84,7 +84,7 @@ public function deleteOldEntries($minutes) return $adapter->delete( $this->getMainTable(), $adapter->quoteInto( - 'type = "' . Mage_OAuth_Model_Token::TYPE_REQUEST . '" AND created_at <= ?', + 'type = "' . Mage_Oauth_Model_Token::TYPE_REQUEST . '" AND created_at <= ?', Varien_Date::formatDate(time() - $minutes * 60) ) ); diff --git a/app/code/core/Mage/OAuth/Model/Resource/Token/Collection.php b/app/code/core/Mage/Oauth/Model/Resource/Token/Collection.php similarity index 85% rename from app/code/core/Mage/OAuth/Model/Resource/Token/Collection.php rename to app/code/core/Mage/Oauth/Model/Resource/Token/Collection.php index 418941f8e6..67974a1866 100644 --- a/app/code/core/Mage/OAuth/Model/Resource/Token/Collection.php +++ b/app/code/core/Mage/Oauth/Model/Resource/Token/Collection.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * OAuth token resource collection model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Resource_Token_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract +class Mage_Oauth_Model_Resource_Token_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract { /** * Initialize collection model @@ -48,7 +48,7 @@ protected function _construct() * * Method use for show applications list (token-consumer) * - * @return Mage_OAuth_Model_Resource_Token_Collection + * @return Mage_Oauth_Model_Resource_Token_Collection */ public function joinConsumerAsApplication() { @@ -66,7 +66,7 @@ public function joinConsumerAsApplication() * Add filter by admin ID * * @param int $adminId - * @return Mage_OAuth_Model_Resource_Token_Collection + * @return Mage_Oauth_Model_Resource_Token_Collection */ public function addFilterByAdminId($adminId) { @@ -78,7 +78,7 @@ public function addFilterByAdminId($adminId) * Add filter by customer ID * * @param int $customerId - * @return Mage_OAuth_Model_Resource_Token_Collection + * @return Mage_Oauth_Model_Resource_Token_Collection */ public function addFilterByCustomerId($customerId) { @@ -90,7 +90,7 @@ public function addFilterByCustomerId($customerId) * Add filter by consumer ID * * @param int $consumerId - * @return Mage_OAuth_Model_Resource_Token_Collection + * @return Mage_Oauth_Model_Resource_Token_Collection */ public function addFilterByConsumerId($consumerId) { @@ -102,7 +102,7 @@ public function addFilterByConsumerId($consumerId) * Add filter by type * * @param string $type - * @return Mage_OAuth_Model_Resource_Token_Collection + * @return Mage_Oauth_Model_Resource_Token_Collection */ public function addFilterByType($type) { @@ -114,7 +114,7 @@ public function addFilterByType($type) * Add filter by ID * * @param array|int $id - * @return Mage_OAuth_Model_Resource_Token_Collection + * @return Mage_Oauth_Model_Resource_Token_Collection */ public function addFilterById($id) { @@ -126,7 +126,7 @@ public function addFilterById($id) * Add filter by "Is Revoked" status * * @param bool|int $flag - * @return Mage_OAuth_Model_Resource_Token_Collection + * @return Mage_Oauth_Model_Resource_Token_Collection */ public function addFilterByRevoked($flag) { diff --git a/app/code/core/Mage/OAuth/Model/Server.php b/app/code/core/Mage/Oauth/Model/Server.php similarity index 95% rename from app/code/core/Mage/OAuth/Model/Server.php rename to app/code/core/Mage/Oauth/Model/Server.php index 892260ad37..b5fdb2c2f1 100644 --- a/app/code/core/Mage/OAuth/Model/Server.php +++ b/app/code/core/Mage/Oauth/Model/Server.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * oAuth Server * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Model_Server +class Mage_Oauth_Model_Server { /**#@+ * OAuth result statuses @@ -95,7 +95,7 @@ class Mage_OAuth_Model_Server /** * Consumer object * - * @var Mage_OAuth_Model_Consumer + * @var Mage_Oauth_Model_Consumer */ protected $_consumer; @@ -183,7 +183,7 @@ class Mage_OAuth_Model_Server /** * Token object * - * @var Mage_OAuth_Model_Token + * @var Mage_Oauth_Model_Token */ protected $_token; @@ -209,7 +209,7 @@ public function __construct($request = null) * Retrieve protocol and request parameters from request object * * @link http://tools.ietf.org/html/rfc5849#section-3.5 - * @return Mage_OAuth_Model_Server + * @return Mage_Oauth_Model_Server */ protected function _fetchParams() { @@ -266,7 +266,7 @@ protected function _fetchParams() /** * Retrieve protocol parameters from query string * - * @return Mage_OAuth_Model_Server + * @return Mage_Oauth_Model_Server */ protected function _fetchProtocolParamsFromQuery() { @@ -294,7 +294,7 @@ protected function _getResponse() /** * Initialize consumer * - * @throws Mage_OAuth_Exception + * @throws Mage_Oauth_Exception */ protected function _initConsumer() { @@ -310,8 +310,8 @@ protected function _initConsumer() /** * Load token object, validate it depending on request type, set access data and save * - * @return Mage_OAuth_Model_Server - * @throws Mage_OAuth_Exception + * @return Mage_Oauth_Model_Server + * @throws Mage_Oauth_Exception */ protected function _initToken() { @@ -334,7 +334,7 @@ protected function _initToken() if ($this->_token->getConsumerId() != $this->_consumer->getId()) { $this->_throwException('', self::ERR_TOKEN_REJECTED); } - if (Mage_OAuth_Model_Token::TYPE_REQUEST != $this->_token->getType()) { + if (Mage_Oauth_Model_Token::TYPE_REQUEST != $this->_token->getType()) { $this->_throwException('', self::ERR_TOKEN_USED); } } elseif (self::REQUEST_AUTHORIZE == $this->_requestType) { @@ -342,7 +342,7 @@ protected function _initToken() $this->_throwException('', self::ERR_TOKEN_USED); } } elseif (self::REQUEST_RESOURCE == $this->_requestType) { - if (Mage_OAuth_Model_Token::TYPE_ACCESS != $this->_token->getType()) { + if (Mage_Oauth_Model_Token::TYPE_ACCESS != $this->_token->getType()) { $this->_throwException('', self::ERR_TOKEN_REJECTED); } if ($this->_token->getRevoked()) { @@ -371,7 +371,7 @@ protected function _isProtocolParameter($attrName) * Extract parameters from sources (GET, FormBody, Authorization header), decode them and validate * * @param string $requestType Request type - one of REQUEST_... class constant - * @return Mage_OAuth_Model_Server + * @return Mage_Oauth_Model_Server * @throws Mage_Core_Exception */ protected function _processRequest($requestType) @@ -429,11 +429,11 @@ protected function _saveToken() * * @param string $message Exception message * @param int $code Exception code - * @throws Mage_OAuth_Exception + * @throws Mage_Oauth_Exception */ protected function _throwException($message = '', $code = 0) { - throw Mage::exception('Mage_OAuth', $message, $code); + throw Mage::exception('Mage_Oauth', $message, $code); } /** @@ -467,7 +467,7 @@ protected function _validateNonce($nonce, $timestamp) if ($timestamp <= 0 || $timestamp > (time() + self::TIME_DEVIATION)) { $this->_throwException('', self::ERR_TIMESTAMP_REFUSED); } - /** @var $nonceObj Mage_OAuth_Model_Nonce */ + /** @var $nonceObj Mage_Oauth_Model_Nonce */ $nonceObj = Mage::getModel('oauth/nonce'); $nonceObj->load($nonce, 'nonce'); @@ -483,7 +483,7 @@ protected function _validateNonce($nonce, $timestamp) /** * Validate protocol parameters * - * @throws Mage_OAuth_Exception + * @throws Mage_Oauth_Exception */ protected function _validateProtocolParams() { @@ -504,7 +504,7 @@ protected function _validateProtocolParams() } } // validate consumer key length - if (strlen($this->_protocolParams['oauth_consumer_key']) != Mage_OAuth_Model_Consumer::KEY_LENGTH) { + if (strlen($this->_protocolParams['oauth_consumer_key']) != Mage_Oauth_Model_Consumer::KEY_LENGTH) { $this->_throwException('', self::ERR_CONSUMER_KEY_REJECTED); } // validate signature method @@ -526,7 +526,7 @@ protected function _validateProtocolParams() /** * Validate signature * - * @throws Mage_OAuth_Exception + * @throws Mage_Oauth_Exception */ protected function _validateSignature() { @@ -557,7 +557,7 @@ protected function _validateTokenParam() if (!is_string($this->_protocolParams['oauth_token'])) { $this->_throwException('', self::ERR_TOKEN_REJECTED); } - if (strlen($this->_protocolParams['oauth_token']) != Mage_OAuth_Model_Token::LENGTH_TOKEN) { + if (strlen($this->_protocolParams['oauth_token']) != Mage_Oauth_Model_Token::LENGTH_TOKEN) { $this->_throwException('', self::ERR_TOKEN_REJECTED); } } @@ -573,7 +573,7 @@ protected function _validateVerifierParam() if (!is_string($this->_protocolParams['oauth_verifier'])) { $this->_throwException('', self::ERR_VERIFIER_INVALID); } - if (strlen($this->_protocolParams['oauth_verifier']) != Mage_OAuth_Model_Token::LENGTH_VERIFIER) { + if (strlen($this->_protocolParams['oauth_verifier']) != Mage_Oauth_Model_Token::LENGTH_VERIFIER) { $this->_throwException('', self::ERR_VERIFIER_INVALID); } } @@ -598,7 +598,7 @@ public function accessToken() * * @param int $userId Authorization user identifier * @param string $userType Authorization user type - * @return Mage_OAuth_Model_Token + * @return Mage_Oauth_Model_Token */ public function authorizeToken($userId, $userType) { @@ -612,7 +612,7 @@ public function authorizeToken($userId, $userType) /** * Validate request with access token for specified URL * - * @return Mage_OAuth_Model_Token + * @return Mage_Oauth_Model_Token */ public function checkAccessRequest() { @@ -624,7 +624,7 @@ public function checkAccessRequest() /** * Check authorize request for validity and return token * - * @return Mage_OAuth_Model_Token + * @return Mage_Oauth_Model_Token */ public function checkAuthorizeRequest() { @@ -675,7 +675,7 @@ public function reportProblem(Exception $e, Zend_Controller_Response_Http $respo { $eMsg = $e->getMessage(); - if ($e instanceof Mage_OAuth_Exception) { + if ($e instanceof Mage_Oauth_Exception) { $eCode = $e->getCode(); if (isset($this->_errors[$eCode])) { @@ -708,7 +708,7 @@ public function reportProblem(Exception $e, Zend_Controller_Response_Http $respo * Set response object * * @param Zend_Controller_Response_Http $response - * @return Mage_OAuth_Model_Server + * @return Mage_Oauth_Model_Server */ public function setResponse(Zend_Controller_Response_Http $response) { diff --git a/app/code/core/Mage/OAuth/Model/Token.php b/app/code/core/Mage/Oauth/Model/Token.php similarity index 81% rename from app/code/core/Mage/OAuth/Model/Token.php rename to app/code/core/Mage/Oauth/Model/Token.php index 404e9cb00a..4f190eb0f5 100644 --- a/app/code/core/Mage/OAuth/Model/Token.php +++ b/app/code/core/Mage/Oauth/Model/Token.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,37 +28,37 @@ * oAuth token model * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team * @method string getName() Consumer name (joined from consumer table) - * @method Mage_OAuth_Model_Resource_Token_Collection getCollection() - * @method Mage_OAuth_Model_Resource_Token_Collection getResourceCollection() - * @method Mage_OAuth_Model_Resource_Token getResource() - * @method Mage_OAuth_Model_Resource_Token _getResource() + * @method Mage_Oauth_Model_Resource_Token_Collection getCollection() + * @method Mage_Oauth_Model_Resource_Token_Collection getResourceCollection() + * @method Mage_Oauth_Model_Resource_Token getResource() + * @method Mage_Oauth_Model_Resource_Token _getResource() * @method int getConsumerId() - * @method Mage_OAuth_Model_Token setConsumerId() setConsumerId(int $consumerId) + * @method Mage_Oauth_Model_Token setConsumerId() setConsumerId(int $consumerId) * @method int getAdminId() - * @method Mage_OAuth_Model_Token setAdminId() setAdminId(int $adminId) + * @method Mage_Oauth_Model_Token setAdminId() setAdminId(int $adminId) * @method int getCustomerId() - * @method Mage_OAuth_Model_Token setCustomerId() setCustomerId(int $customerId) + * @method Mage_Oauth_Model_Token setCustomerId() setCustomerId(int $customerId) * @method string getType() - * @method Mage_OAuth_Model_Token setType() setType(string $type) + * @method Mage_Oauth_Model_Token setType() setType(string $type) * @method string getVerifier() - * @method Mage_OAuth_Model_Token setVerifier() setVerifier(string $verifier) + * @method Mage_Oauth_Model_Token setVerifier() setVerifier(string $verifier) * @method string getCallbackUrl() - * @method Mage_OAuth_Model_Token setCallbackUrl() setCallbackUrl(string $callbackUrl) + * @method Mage_Oauth_Model_Token setCallbackUrl() setCallbackUrl(string $callbackUrl) * @method string getCreatedAt() - * @method Mage_OAuth_Model_Token setCreatedAt() setCreatedAt(string $createdAt) + * @method Mage_Oauth_Model_Token setCreatedAt() setCreatedAt(string $createdAt) * @method string getToken() - * @method Mage_OAuth_Model_Token setToken() setToken(string $token) + * @method Mage_Oauth_Model_Token setToken() setToken(string $token) * @method string getSecret() - * @method Mage_OAuth_Model_Token setSecret() setSecret(string $tokenSecret) + * @method Mage_Oauth_Model_Token setSecret() setSecret(string $tokenSecret) * @method int getRevoked() - * @method Mage_OAuth_Model_Token setRevoked() setRevoked(int $revoked) + * @method Mage_Oauth_Model_Token setRevoked() setRevoked(int $revoked) * @method int getAuthorized() - * @method Mage_OAuth_Model_Token setAuthorized() setAuthorized(int $authorized) + * @method Mage_Oauth_Model_Token setAuthorized() setAuthorized(int $authorized) */ -class Mage_OAuth_Model_Token extends Mage_Core_Model_Abstract +class Mage_Oauth_Model_Token extends Mage_Core_Model_Abstract { /**#@+ * Token types @@ -95,14 +95,14 @@ protected function _construct() /** * "After save" actions * - * @return Mage_OAuth_Model_Token + * @return Mage_Oauth_Model_Token */ protected function _afterSave() { parent::_afterSave(); //Cleanup old entries - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); if ($helper->isCleanupProbability()) { $this->_getResource()->deleteOldEntries($helper->getCleanupExpirationPeriod()); @@ -115,7 +115,7 @@ protected function _afterSave() * * @param int $userId Authorization user identifier * @param string $userType Authorization user type - * @return Mage_OAuth_Model_Token + * @return Mage_Oauth_Model_Token */ public function authorize($userId, $userType) { @@ -132,7 +132,7 @@ public function authorize($userId, $userType) } else { Mage::throwException('User type is unknown'); } - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); $this->setVerifier($helper->generateVerifier()); @@ -147,14 +147,14 @@ public function authorize($userId, $userType) /** * Convert token to access type * - * @return Mage_OAuth_Model_Token + * @return Mage_Oauth_Model_Token */ public function convertToAccess() { - if (Mage_OAuth_Model_Token::TYPE_REQUEST != $this->getType()) { + if (Mage_Oauth_Model_Token::TYPE_REQUEST != $this->getType()) { Mage::throwException('Can not convert due to token is not request type'); } - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); $this->setType(self::TYPE_ACCESS); @@ -170,11 +170,11 @@ public function convertToAccess() * * @param int $consumerId Consumer identifier * @param string $callbackUrl Callback URL - * @return Mage_OAuth_Model_Token + * @return Mage_Oauth_Model_Token */ public function createRequestToken($consumerId, $callbackUrl) { - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); $this->setData(array( @@ -220,7 +220,7 @@ public function toString($format = '') /** * Before save actions * - * @return Mage_OAuth_Model_Consumer + * @return Mage_Oauth_Model_Consumer */ protected function _beforeSave() { @@ -243,14 +243,14 @@ public function validate() { /** @var $validatorUrl Mage_Core_Model_Url_Validator */ $validatorUrl = Mage::getSingleton('core/url_validator'); - if (Mage_OAuth_Model_Server::CALLBACK_ESTABLISHED != $this->getCallbackUrl() + if (Mage_Oauth_Model_Server::CALLBACK_ESTABLISHED != $this->getCallbackUrl() && !$validatorUrl->isValid($this->getCallbackUrl()) ) { $messages = $validatorUrl->getMessages(); Mage::throwException(array_shift($messages)); } - /** @var $validatorLength Mage_OAuth_Model_Consumer_Validator_KeyLength */ + /** @var $validatorLength Mage_Oauth_Model_Consumer_Validator_KeyLength */ $validatorLength = Mage::getModel( 'oauth/consumer_validator_keyLength'); $validatorLength->setLength(self::LENGTH_SECRET); @@ -281,12 +281,12 @@ public function validate() /** * Get Token Consumer * - * @return Mage_OAuth_Model_Consumer + * @return Mage_Oauth_Model_Consumer */ public function getConsumer() { if (!$this->getData('consumer')) { - /** @var $consumer Mage_OAuth_Model_Consumer */ + /** @var $consumer Mage_Oauth_Model_Consumer */ $consumer = Mage::getModel('oauth/consumer'); $consumer->load($this->getConsumerId()); $this->setData('consumer', $consumer); diff --git a/app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/Admin/TokenController.php b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/Admin/TokenController.php similarity index 90% rename from app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/Admin/TokenController.php rename to app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/Admin/TokenController.php index 4e6a080454..3d1ddbf811 100644 --- a/app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/Admin/TokenController.php +++ b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/Admin/TokenController.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -30,15 +30,15 @@ * Applications for logged admin user * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Adminhtml_OAuth_Admin_TokenController extends Mage_Adminhtml_Controller_Action +class Mage_Oauth_Adminhtml_Oauth_Admin_TokenController extends Mage_Adminhtml_Controller_Action { /** * Init titles * - * @return Mage_OAuth_Adminhtml_OAuth_Admin_TokenController + * @return Mage_Oauth_Adminhtml_Oauth_Admin_TokenController */ public function preDispatch() { @@ -93,15 +93,15 @@ public function revokeAction() /** @var $user Mage_Admin_Model_User */ $user = Mage::getSingleton('admin/session')->getData('user'); - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() ->addFilterByAdminId($user->getId()) - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS) + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS) ->addFilterById($ids) ->addFilterByRevoked(!$status); - /** @var $item Mage_OAuth_Model_Token */ + /** @var $item Mage_Oauth_Model_Token */ foreach ($collection as $item) { $item->load($item->getId()); $item->setRevoked($status)->save(); @@ -139,14 +139,14 @@ public function deleteAction() /** @var $user Mage_Admin_Model_User */ $user = Mage::getSingleton('admin/session')->getData('user'); - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() ->addFilterByAdminId($user->getId()) - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS) + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS) ->addFilterById($ids); - /** @var $item Mage_OAuth_Model_Token */ + /** @var $item Mage_Oauth_Model_Token */ foreach ($collection as $item) { $item->delete(); } diff --git a/app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/AuthorizeController.php b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php similarity index 69% rename from app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/AuthorizeController.php rename to app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php index 0fad0ac13e..833ab13eca 100644 --- a/app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/AuthorizeController.php +++ b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * oAuth authorize controller * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Adminhtml_OAuth_AuthorizeController extends Mage_Adminhtml_Controller_Action +class Mage_Oauth_Adminhtml_Oauth_AuthorizeController extends Mage_Adminhtml_Controller_Action { /** * Session name @@ -56,7 +56,22 @@ class Mage_OAuth_Adminhtml_OAuth_AuthorizeController extends Mage_Adminhtml_Cont public function preDispatch() { $this->getRequest()->setParam('forwarded', true); + + // check login data before it set null in Mage_Admin_Model_Observer::actionPreDispatchAdmin + $loginError = $this->_checkLoginIsEmpty(); + parent::preDispatch(); + + // call after parent::preDispatch(); to get session started + if ($loginError) { + Mage::getSingleton('adminhtml/session') + ->addError(Mage::helper('adminhtml')->__('Invalid User Name or Password.')); + $params = array('_query' => array('oauth_token' => $this->getRequest()->getParam('oauth_token', null))); + $this->setFlag('', self::FLAG_NO_DISPATCH, true); + $this->setFlag('', self::FLAG_NO_POST_DISPATCH, true); + $params = array('_query' => array('oauth_token' => $this->getRequest()->getParam('oauth_token', null))); + $this->_redirect('*/*/*', $params); + } } /** @@ -88,11 +103,11 @@ public function simpleAction() * Init authorize page * * @param bool $simple - * @return Mage_OAuth_Adminhtml_OAuth_AuthorizeController + * @return Mage_Oauth_Adminhtml_Oauth_AuthorizeController */ protected function _initForm($simple = false) { - /** @var $server Mage_OAuth_Model_Server */ + /** @var $server Mage_Oauth_Model_Server */ $server = Mage::getModel('oauth/server'); /** @var $session Mage_Admin_Model_Session */ $session = Mage::getSingleton($this->_sessionName); @@ -102,7 +117,7 @@ protected function _initForm($simple = false) $server->checkAuthorizeRequest(); } catch (Mage_Core_Exception $e) { $session->addError($e->getMessage()); - } catch (Mage_OAuth_Exception $e) { + } catch (Mage_Oauth_Exception $e) { $isException = true; $session->addException($e, $this->__('An error occurred. Your authorization request is invalid.')); } catch (Exception $e) { @@ -117,20 +132,14 @@ protected function _initForm($simple = false) $contentBlock = $layout->getBlock('content'); if ($logged) { $contentBlock->unsetChild('oauth.authorize.form'); - /** @var $block Mage_OAuth_Block_Adminhtml_OAuth_Authorize_Button */ + /** @var $block Mage_Oauth_Block_Adminhtml_Oauth_Authorize_Button */ $block = $contentBlock->getChild('oauth.authorize.button'); } else { $contentBlock->unsetChild('oauth.authorize.button'); - /** @var $block Mage_OAuth_Block_Adminhtml_OAuth_Authorize */ + /** @var $block Mage_Oauth_Block_Adminhtml_Oauth_Authorize */ $block = $contentBlock->getChild('oauth.authorize.form'); } - if ($simple) { - /** @var $style Mage_OAuth_Block_Authorize_Style */ - $style = $layout->getBlock('oauth.authorize.style'); - $style->setIsLogged($logged); - } - $block->setIsSimple($simple) ->setToken($this->getRequest()->getQuery('oauth_token')) ->setHasException($isException); @@ -141,36 +150,43 @@ protected function _initForm($simple = false) * Init confirm page * * @param bool $simple - * @return Mage_OAuth_Adminhtml_OAuth_AuthorizeController + * @return Mage_Oauth_Adminhtml_Oauth_AuthorizeController */ protected function _initConfirmPage($simple = false) { + /** @var $helper Mage_Oauth_Helper_Data */ + $helper = Mage::helper('oauth'); + /** @var $session Mage_Admin_Model_Session */ $session = Mage::getSingleton($this->_sessionName); - /** @var $server Mage_OAuth_Model_Server */ - $server = Mage::getModel('oauth/server'); + /** @var $user Mage_Admin_Model_User */ + $user = $session->getData('user'); + if (!$user) { + $session->addError($this->__('Please login to proceed authorization.')); + $url = $helper->getAuthorizeUrl(Mage_Oauth_Model_Token::USER_TYPE_ADMIN); + $this->_redirectUrl($url); + return $this; + } $this->loadLayout(); - /** @var $block Mage_OAuth_Block_Adminhtml_OAuth_Authorize */ + /** @var $block Mage_Oauth_Block_Adminhtml_Oauth_Authorize */ $block = $this->getLayout()->getBlock('content')->getChild('oauth.authorize.confirm'); $block->setIsSimple($simple); try { - /** @var $user Mage_Admin_Model_User */ - $user = $session->getData('user'); - $token = $server->authorizeToken($user->getId(), Mage_OAuth_Model_Token::USER_TYPE_ADMIN); + /** @var $server Mage_Oauth_Model_Server */ + $server = Mage::getModel('oauth/server'); - /** @var $helper Mage_OAuth_Helper_Data */ - $helper = Mage::helper('oauth'); + $token = $server->authorizeToken($user->getId(), Mage_Oauth_Model_Token::USER_TYPE_ADMIN); if (($callback = $helper->getFullCallbackUrl($token))) { //false in case of OOB $this->getResponse()->setRedirect($callback . ($simple ? '&simple=1' : '')); return $this; } else { - $session->addSuccess($this->__('Authorization confirmed.')); $block->setVerifier($token->getVerifier()); + $session->addSuccess($this->__('Authorization confirmed.')); } } catch (Mage_Core_Exception $e) { $block->setHasException(true); @@ -190,11 +206,11 @@ protected function _initConfirmPage($simple = false) * Init reject page * * @param bool $simple - * @return Mage_OAuth_AuthorizeController + * @return Mage_Oauth_AuthorizeController */ protected function _initRejectPage($simple = false) { - /** @var $server Mage_OAuth_Model_Server */ + /** @var $server Mage_Oauth_Model_Server */ $server = Mage::getModel('oauth/server'); /** @var $session Mage_Admin_Model_Session */ @@ -202,13 +218,13 @@ protected function _initRejectPage($simple = false) $this->loadLayout(); - /** @var $block Mage_OAuth_Block_Authorize */ + /** @var $block Mage_Oauth_Block_Authorize */ $block = $this->getLayout()->getBlock('oauth.authorize.reject'); $block->setIsSimple($simple); try { $token = $server->checkAuthorizeRequest(); - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); if (($callback = $helper->getFullCallbackUrl($token, true))) { @@ -230,6 +246,27 @@ protected function _initRejectPage($simple = false) return $this; } + /** + * Check is login data has empty login or pass + * See Mage_Admin_Model_Session: there is no any error message if login or password is empty + * + * @return boolean + */ + protected function _checkLoginIsEmpty() + { + $error = false; + $action = $this->getRequest()->getActionName(); + if (($action == 'index' || $action == 'simple') && $this->getRequest()->getPost('login')) { + $postLogin = $this->getRequest()->getPost('login'); + $username = isset($postLogin['username']) ? $postLogin['username'] : ''; + $password = isset($postLogin['password']) ? $postLogin['password'] : ''; + if (empty($username) || empty($password)) { + $error = true; + } + } + return $error; + } + /** * Confirm token authorization action */ diff --git a/app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/AuthorizedTokensController.php b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizedTokensController.php similarity index 90% rename from app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/AuthorizedTokensController.php rename to app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizedTokensController.php index 3252bf0ddd..04f32c2b9a 100644 --- a/app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/AuthorizedTokensController.php +++ b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizedTokensController.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,15 +28,15 @@ * Manage authorized tokens controller * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Adminhtml_OAuth_AuthorizedTokensController extends Mage_Adminhtml_Controller_Action +class Mage_Oauth_Adminhtml_Oauth_AuthorizedTokensController extends Mage_Adminhtml_Controller_Action { /** * Init titles * - * @return Mage_OAuth_Adminhtml_OAuth_AuthorizedTokensController + * @return Mage_Oauth_Adminhtml_Oauth_AuthorizedTokensController */ public function preDispatch() { @@ -88,14 +88,14 @@ public function revokeAction() } try { - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS) + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS) ->addFilterById($ids) ->addFilterByRevoked(!$status); - /** @var $item Mage_OAuth_Model_Token */ + /** @var $item Mage_Oauth_Model_Token */ foreach ($collection as $item) { $item->load($item->getId()); $item->setRevoked($status)->save(); @@ -132,13 +132,13 @@ public function deleteAction() } try { - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS) + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS) ->addFilterById($ids); - /** @var $item Mage_OAuth_Model_Token */ + /** @var $item Mage_Oauth_Model_Token */ foreach ($collection as $item) { $item->delete(); @@ -169,7 +169,7 @@ protected function _isAllowed() /** * Send email notification to user about token status change * - * @param Mage_OAuth_Model_Token $token Token object + * @param Mage_Oauth_Model_Token $token Token object * @param string $newStatus Name of new token status */ protected function _sendTokenStatusChangeNotification($token, $newStatus) @@ -195,7 +195,7 @@ protected function _sendTokenStatusChangeNotification($token, $newStatus) $email = $customer->getEmail(); $name = $customer->getName(); } - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); $helper->sendNotificationOnTokenStatusChange($email, $name, $token->getConsumer()->getName(), $newStatus); diff --git a/app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/ConsumerController.php b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/ConsumerController.php similarity index 93% rename from app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/ConsumerController.php rename to app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/ConsumerController.php index f1760c205f..31fa0e2b0d 100644 --- a/app/code/core/Mage/OAuth/controllers/Adminhtml/OAuth/ConsumerController.php +++ b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/ConsumerController.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * Manage consumers controller * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Adminhtml_OAuth_ConsumerController extends Mage_Adminhtml_Controller_Action +class Mage_Oauth_Adminhtml_Oauth_ConsumerController extends Mage_Adminhtml_Controller_Action { /** * Unset unused data from request @@ -53,7 +53,7 @@ protected function _filter(array $data) /** * Init titles * - * @return Mage_OAuth_Adminhtml_OAuth_ConsumerController + * @return Mage_Oauth_Adminhtml_Oauth_ConsumerController */ public function preDispatch() { @@ -87,7 +87,7 @@ public function gridAction() */ public function newAction() { - /** @var $model Mage_OAuth_Model_Consumer */ + /** @var $model Mage_Oauth_Model_Consumer */ $model = Mage::getModel('oauth/consumer'); $formData = $this->_getFormData(); @@ -95,7 +95,7 @@ public function newAction() $this->_setFormData($formData); $model->addData($formData); } else { - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); $model->setKey($helper->generateConsumerKey()); $model->setSecret($helper->generateConsumerSecret()); @@ -121,7 +121,7 @@ public function editAction() return; } - /** @var $model Mage_OAuth_Model_Consumer */ + /** @var $model Mage_Oauth_Model_Consumer */ $model = Mage::getModel('oauth/consumer'); $model->load($id); @@ -155,7 +155,7 @@ public function saveAction() $data = $this->_filter($this->getRequest()->getParams()); - /** @var $model Mage_OAuth_Model_Consumer */ + /** @var $model Mage_Oauth_Model_Consumer */ $model = Mage::getModel('oauth/consumer'); if ($id) { @@ -181,7 +181,7 @@ public function saveAction() } else { // If an admin was started create a new consumer and at this moment he has been edited an existing // consumer, we save the new consumer with a new key-secret pair - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); $data['key'] = $helper->generateConsumerKey(); @@ -250,7 +250,7 @@ protected function _getFormData() * Set form data * * @param $data - * @return Mage_OAuth_Adminhtml_OAuth_ConsumerController + * @return Mage_Oauth_Adminhtml_Oauth_ConsumerController */ protected function _setFormData($data) { @@ -266,7 +266,7 @@ public function deleteAction() $consumerId = (int) $this->getRequest()->getParam('id'); if ($consumerId) { try { - /** @var $consumer Mage_OAuth_Model_Consumer */ + /** @var $consumer Mage_Oauth_Model_Consumer */ $consumer = Mage::getModel('oauth/consumer')->load($consumerId); if (!$consumer->getId()) { Mage::throwException(Mage::helper('oauth')->__('Unable to find a consumer.')); diff --git a/app/code/core/Mage/OAuth/controllers/AuthorizeController.php b/app/code/core/Mage/Oauth/controllers/AuthorizeController.php similarity index 80% rename from app/code/core/Mage/OAuth/controllers/AuthorizeController.php rename to app/code/core/Mage/Oauth/controllers/AuthorizeController.php index 955a8f5f40..9c4ee558d7 100644 --- a/app/code/core/Mage/OAuth/controllers/AuthorizeController.php +++ b/app/code/core/Mage/Oauth/controllers/AuthorizeController.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * oAuth authorize controller * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_AuthorizeController extends Mage_Core_Controller_Front_Action +class Mage_Oauth_AuthorizeController extends Mage_Core_Controller_Front_Action { /** * Session name @@ -44,11 +44,11 @@ class Mage_OAuth_AuthorizeController extends Mage_Core_Controller_Front_Action * Init authorize page * * @param bool $simple Is simple page? - * @return Mage_OAuth_AuthorizeController + * @return Mage_Oauth_AuthorizeController */ protected function _initForm($simple = false) { - /** @var $server Mage_OAuth_Model_Server */ + /** @var $server Mage_Oauth_Model_Server */ $server = Mage::getModel('oauth/server'); /** @var $session Mage_Customer_Model_Session */ $session = Mage::getSingleton($this->_sessionName); @@ -58,7 +58,7 @@ protected function _initForm($simple = false) $server->checkAuthorizeRequest(); } catch (Mage_Core_Exception $e) { $session->addError($e->getMessage()); - } catch (Mage_OAuth_Exception $e) { + } catch (Mage_Oauth_Exception $e) { $isException = true; $session->addException($e, $this->__('An error occurred. Your authorization request is invalid.')); } catch (Exception $e) { @@ -73,18 +73,14 @@ protected function _initForm($simple = false) $contentBlock = $layout->getBlock('content'); if ($logged) { $contentBlock->unsetChild('oauth.authorize.form'); - /** @var $block Mage_OAuth_Block_Authorize_Button */ + /** @var $block Mage_Oauth_Block_Authorize_Button */ $block = $contentBlock->getChild('oauth.authorize.button'); } else { $contentBlock->unsetChild('oauth.authorize.button'); - /** @var $block Mage_OAuth_Block_Authorize */ + /** @var $block Mage_Oauth_Block_Authorize */ $block = $contentBlock->getChild('oauth.authorize.form'); } - if ($simple) { - $layout->getBlock('oauth.authorize.style')->setData('is_logged', $logged); - } - /** @var $helper Mage_Core_Helper_Url */ $helper = Mage::helper('core/url'); $session->setAfterAuthUrl(Mage::getUrl('customer/account/login', array('_nosid' => true))) @@ -100,26 +96,34 @@ protected function _initForm($simple = false) * Init confirm page * * @param bool $simple Is simple page? - * @return Mage_OAuth_AuthorizeController + * @return Mage_Oauth_AuthorizeController */ protected function _initConfirmPage($simple = false) { + /** @var $helper Mage_Oauth_Helper_Data */ + $helper = Mage::helper('oauth'); + + /** @var $session Mage_Customer_Model_Session */ + $session = Mage::getSingleton($this->_sessionName); + if (!$session->getCustomerId()) { + $session->addError($this->__('Please login to proceed authorization.')); + $url = $helper->getAuthorizeUrl(Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER); + $this->_redirectUrl($url); + return $this; + } + $this->loadLayout(); - try { - /** @var $session Mage_Customer_Model_Session */ - $session = Mage::getSingleton($this->_sessionName); - /** @var $server Mage_OAuth_Model_Server */ - $server = Mage::getModel('oauth/server'); - /** @var $block Mage_OAuth_Block_Authorize */ - $block = $this->getLayout()->getBlock('oauth.authorize.confirm'); - $block->setIsSimple($simple); + /** @var $block Mage_Oauth_Block_Authorize */ + $block = $this->getLayout()->getBlock('oauth.authorize.confirm'); + $block->setIsSimple($simple); - /** @var $token Mage_OAuth_Model_Token */ - $token = $server->authorizeToken($session->getCustomerId(), Mage_OAuth_Model_Token::USER_TYPE_CUSTOMER); + try { + /** @var $server Mage_Oauth_Model_Server */ + $server = Mage::getModel('oauth/server'); - /** @var $helper Mage_OAuth_Helper_Data */ - $helper = Mage::helper('oauth'); + /** @var $token Mage_Oauth_Model_Token */ + $token = $server->authorizeToken($session->getCustomerId(), Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER); if (($callback = $helper->getFullCallbackUrl($token))) { //false in case of OOB $this->_redirectUrl($callback . ($simple ? '&simple=1' : '')); @@ -130,7 +134,7 @@ protected function _initConfirmPage($simple = false) } } catch (Mage_Core_Exception $e) { $session->addError($e->getMessage()); - } catch (Mage_OAuth_Exception $e) { + } catch (Mage_Oauth_Exception $e) { $session->addException($e, $this->__('An error occurred. Your authorization request is invalid.')); } catch (Exception $e) { $session->addException($e, $this->__('An error occurred on confirm authorize.')); @@ -146,7 +150,7 @@ protected function _initConfirmPage($simple = false) * Init reject page * * @param bool $simple Is simple page? - * @return Mage_OAuth_AuthorizeController + * @return Mage_Oauth_AuthorizeController */ protected function _initRejectPage($simple = false) { @@ -155,16 +159,16 @@ protected function _initRejectPage($simple = false) /** @var $session Mage_Customer_Model_Session */ $session = Mage::getSingleton($this->_sessionName); try { - /** @var $server Mage_OAuth_Model_Server */ + /** @var $server Mage_Oauth_Model_Server */ $server = Mage::getModel('oauth/server'); - /** @var $block Mage_OAuth_Block_Authorize */ + /** @var $block Mage_Oauth_Block_Authorize */ $block = $this->getLayout()->getBlock('oauth.authorize.reject'); - $block->setIsSimple($simple . ($simple ? '&simple=1' : '')); + $block->setIsSimple($simple); - /** @var $token Mage_OAuth_Model_Token */ + /** @var $token Mage_Oauth_Model_Token */ $token = $server->checkAuthorizeRequest(); - /** @var $helper Mage_OAuth_Helper_Data */ + /** @var $helper Mage_Oauth_Helper_Data */ $helper = Mage::helper('oauth'); if (($callback = $helper->getFullCallbackUrl($token, true))) { diff --git a/app/code/core/Mage/OAuth/controllers/Customer/TokenController.php b/app/code/core/Mage/Oauth/controllers/Customer/TokenController.php similarity index 91% rename from app/code/core/Mage/OAuth/controllers/Customer/TokenController.php rename to app/code/core/Mage/Oauth/controllers/Customer/TokenController.php index bf12802a6c..e729e041ab 100644 --- a/app/code/core/Mage/OAuth/controllers/Customer/TokenController.php +++ b/app/code/core/Mage/Oauth/controllers/Customer/TokenController.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -30,10 +30,10 @@ * Tab "My Applications" in the Customer Account * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_Customer_TokenController extends Mage_Core_Controller_Front_Action +class Mage_Oauth_Customer_TokenController extends Mage_Core_Controller_Front_Action { /** * Customer session model @@ -77,7 +77,7 @@ public function indexAction() /** * Redirect to referrer URL or otherwise to index page without params * - * @return Mage_OAuth_Customer_TokenController + * @return Mage_Oauth_Customer_TokenController */ protected function _redirectBack() { @@ -112,16 +112,16 @@ public function revokeAction() } try { - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() ->addFilterByCustomerId($this->_session->getCustomerId()) ->addFilterById($id) - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS) + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS) ->addFilterByRevoked(!$status); //here is can be load from model, but used from collection for get consumer name - /** @var $model Mage_OAuth_Model_Token */ + /** @var $model Mage_Oauth_Model_Token */ $model = $collection->getFirstItem(); if ($model->getId()) { $name = $model->getName(); @@ -160,14 +160,14 @@ public function deleteAction() } try { - /** @var $collection Mage_OAuth_Model_Resource_Token_Collection */ + /** @var $collection Mage_Oauth_Model_Resource_Token_Collection */ $collection = Mage::getModel('oauth/token')->getCollection(); $collection->joinConsumerAsApplication() ->addFilterByCustomerId($this->_session->getCustomerId()) - ->addFilterByType(Mage_OAuth_Model_Token::TYPE_ACCESS) + ->addFilterByType(Mage_Oauth_Model_Token::TYPE_ACCESS) ->addFilterById($id); - /** @var $model Mage_OAuth_Model_Token */ + /** @var $model Mage_Oauth_Model_Token */ $model = $collection->getFirstItem(); if ($model->getId()) { $name = $model->getName(); diff --git a/app/code/core/Mage/OAuth/controllers/InitiateController.php b/app/code/core/Mage/Oauth/controllers/InitiateController.php similarity index 90% rename from app/code/core/Mage/OAuth/controllers/InitiateController.php rename to app/code/core/Mage/Oauth/controllers/InitiateController.php index 58b6700eb7..53939598bd 100644 --- a/app/code/core/Mage/OAuth/controllers/InitiateController.php +++ b/app/code/core/Mage/Oauth/controllers/InitiateController.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * oAuth initiate controller * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_InitiateController extends Mage_Core_Controller_Front_Action +class Mage_Oauth_InitiateController extends Mage_Core_Controller_Front_Action { /** * Dispatch event before action @@ -53,7 +53,7 @@ public function preDispatch() */ public function indexAction() { - /** @var $server Mage_OAuth_Model_Server */ + /** @var $server Mage_Oauth_Model_Server */ $server = Mage::getModel('oauth/server'); $server->initiateToken(); diff --git a/app/code/core/Mage/OAuth/controllers/TokenController.php b/app/code/core/Mage/Oauth/controllers/TokenController.php similarity index 90% rename from app/code/core/Mage/OAuth/controllers/TokenController.php rename to app/code/core/Mage/Oauth/controllers/TokenController.php index c85f979b2a..43e49a6026 100644 --- a/app/code/core/Mage/OAuth/controllers/TokenController.php +++ b/app/code/core/Mage/Oauth/controllers/TokenController.php @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,10 +28,10 @@ * oAuth token controller * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @author Magento Core Team */ -class Mage_OAuth_TokenController extends Mage_Core_Controller_Front_Action +class Mage_Oauth_TokenController extends Mage_Core_Controller_Front_Action { /** * Dispatch event before action @@ -53,7 +53,7 @@ public function preDispatch() */ public function indexAction() { - /** @var $server Mage_OAuth_Model_Server */ + /** @var $server Mage_Oauth_Model_Server */ $server = Mage::getModel('oauth/server'); $server->accessToken(); diff --git a/app/code/core/Mage/OAuth/etc/adminhtml.xml b/app/code/core/Mage/Oauth/etc/adminhtml.xml similarity index 95% rename from app/code/core/Mage/OAuth/etc/adminhtml.xml rename to app/code/core/Mage/Oauth/etc/adminhtml.xml index 3528286afc..ee47e8cd1d 100644 --- a/app/code/core/Mage/OAuth/etc/adminhtml.xml +++ b/app/code/core/Mage/Oauth/etc/adminhtml.xml @@ -20,7 +20,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ @@ -80,17 +80,17 @@ REST - OAuth Consumers 50 - adminhtml/oAuth_consumer + adminhtml/oauth_consumer REST - OAuth Authorized Tokens 60 - adminhtml/oAuth_authorizedTokens + adminhtml/oauth_authorizedTokens REST - My Apps 70 - adminhtml/oAuth_admin_token + adminhtml/oauth_admin_token diff --git a/app/code/core/Mage/OAuth/etc/config.xml b/app/code/core/Mage/Oauth/etc/config.xml similarity index 85% rename from app/code/core/Mage/OAuth/etc/config.xml rename to app/code/core/Mage/Oauth/etc/config.xml index 28f3a54870..e85a546c8e 100644 --- a/app/code/core/Mage/OAuth/etc/config.xml +++ b/app/code/core/Mage/Oauth/etc/config.xml @@ -20,25 +20,25 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ --> - + 1.0.0.0 - + - Mage_OAuth_Model + Mage_Oauth_Model oauth_resource - Mage_OAuth_Model_Resource + Mage_Oauth_Model_Resource oauth_consumer
@@ -54,31 +54,31 @@
- Mage_OAuth_Block + Mage_Oauth_Block - Mage_OAuth_Helper + Mage_Oauth_Helper - Mage_OAuth - Mage_OAuth_Model_Resource_Setup + Mage_Oauth + Mage_Oauth_Model_Resource_Setup - + oauth/observer afterCustomerLogin - + @@ -111,7 +111,7 @@ - Mage_OAuth_Adminhtml + Mage_Oauth_Adminhtml @@ -120,11 +120,11 @@ - + - Mage_OAuth.csv + Mage_Oauth.csv - + @@ -140,7 +140,7 @@ standard - Mage_OAuth + Mage_Oauth oauth @@ -154,11 +154,11 @@ - + - Mage_OAuth.csv + Mage_Oauth.csv - + diff --git a/app/code/core/Mage/OAuth/etc/system.xml b/app/code/core/Mage/Oauth/etc/system.xml similarity index 99% rename from app/code/core/Mage/OAuth/etc/system.xml rename to app/code/core/Mage/Oauth/etc/system.xml index 66e678d067..112690c73b 100644 --- a/app/code/core/Mage/OAuth/etc/system.xml +++ b/app/code/core/Mage/Oauth/etc/system.xml @@ -20,7 +20,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/code/core/Mage/OAuth/sql/oauth_setup/install-1.0.0.0.php b/app/code/core/Mage/Oauth/sql/oauth_setup/install-1.0.0.0.php similarity index 96% rename from app/code/core/Mage/OAuth/sql/oauth_setup/install-1.0.0.0.php rename to app/code/core/Mage/Oauth/sql/oauth_setup/install-1.0.0.0.php index 508beb3e4b..08d435fc39 100644 --- a/app/code/core/Mage/OAuth/sql/oauth_setup/install-1.0.0.0.php +++ b/app/code/core/Mage/Oauth/sql/oauth_setup/install-1.0.0.0.php @@ -19,14 +19,14 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category Mage - * @package Mage_OAuth + * @package Mage_Oauth * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Installation of OAuth module tables */ -/** @var $install Mage_OAuth_Model_Resource_Setup */ +/** @var $install Mage_Oauth_Model_Resource_Setup */ $installer = $this; $installer->startSetup(); @@ -54,10 +54,10 @@ ->addColumn('name', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( 'nullable' => false ), 'Name of consumer') - ->addColumn('key', Varien_Db_Ddl_Table::TYPE_VARCHAR, Mage_OAuth_Model_Consumer::KEY_LENGTH, array( + ->addColumn('key', Varien_Db_Ddl_Table::TYPE_VARCHAR, Mage_Oauth_Model_Consumer::KEY_LENGTH, array( 'nullable' => false ), 'Key code') - ->addColumn('secret', Varien_Db_Ddl_Table::TYPE_VARCHAR, Mage_OAuth_Model_Consumer::SECRET_LENGTH, array( + ->addColumn('secret', Varien_Db_Ddl_Table::TYPE_VARCHAR, Mage_Oauth_Model_Consumer::SECRET_LENGTH, array( 'nullable' => false ), 'Secret code') ->addColumn('callback_url', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array(), 'Callback URL') @@ -107,13 +107,13 @@ ->addColumn('type', Varien_Db_Ddl_Table::TYPE_TEXT, 16, array( 'nullable' => false ), 'Token Type') - ->addColumn('token', Varien_Db_Ddl_Table::TYPE_TEXT, Mage_OAuth_Model_Token::LENGTH_TOKEN, array( + ->addColumn('token', Varien_Db_Ddl_Table::TYPE_TEXT, Mage_Oauth_Model_Token::LENGTH_TOKEN, array( 'nullable' => false ), 'Token') - ->addColumn('secret', Varien_Db_Ddl_Table::TYPE_TEXT, Mage_OAuth_Model_Token::LENGTH_SECRET, array( + ->addColumn('secret', Varien_Db_Ddl_Table::TYPE_TEXT, Mage_Oauth_Model_Token::LENGTH_SECRET, array( 'nullable' => false ), 'Token Secret') - ->addColumn('verifier', Varien_Db_Ddl_Table::TYPE_TEXT, Mage_OAuth_Model_Token::LENGTH_VERIFIER, array( + ->addColumn('verifier', Varien_Db_Ddl_Table::TYPE_TEXT, Mage_Oauth_Model_Token::LENGTH_VERIFIER, array( 'nullable' => true ), 'Token Verifier') ->addColumn('callback_url', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array( diff --git a/app/code/core/Mage/Page/Block/Html/Notices.php b/app/code/core/Mage/Page/Block/Html/Notices.php index 43207bbb4a..0ee78c2d25 100644 --- a/app/code/core/Mage/Page/Block/Html/Notices.php +++ b/app/code/core/Mage/Page/Block/Html/Notices.php @@ -33,13 +33,6 @@ */ class Mage_Page_Block_Html_Notices extends Mage_Core_Block_Template { - - /** - * Cookie restriction lifetime configuration path - */ - const XML_PATH_COOKIE_RESTRICTION_LIFETIME = 'web/cookie/cookie_restriction_lifetime'; - - /** * Check if noscript notice should be displayed * @@ -60,28 +53,6 @@ public function displayDemoNotice() return Mage::getStoreConfig('design/head/demonotice'); } - /** - * Get cookie restriction lifetime (in seconds) - * - * @return int - */ - public function getCookieRestrictionLifetime() - { - return (int)Mage::getStoreConfig(self::XML_PATH_COOKIE_RESTRICTION_LIFETIME); - } - - /** - * Check if cookie restriction notice should be displayed - * - * @return bool - */ - public function displayCookieRestrictionNotice() - { - $acceptedSaveCookiesWebsites = $this->_getAcceptedSaveCookiesWebsites(); - return Mage::getStoreConfig(self::XML_PATH_COOKIE_RESTRICTION) && - empty($acceptedSaveCookiesWebsites[Mage::app()->getWebsite()->getId()]); - } - /** * Get Link to cookie restriction privacy policy page * diff --git a/app/code/core/Mage/Page/Block/Template/Links.php b/app/code/core/Mage/Page/Block/Template/Links.php index 5982224128..a7f4b09add 100644 --- a/app/code/core/Mage/Page/Block/Template/Links.php +++ b/app/code/core/Mage/Page/Block/Template/Links.php @@ -115,7 +115,9 @@ public function addLink($label, $url='', $title='', $prepare=false, $urlParams=a public function addLinkBlock($blockName) { $block = $this->getLayout()->getBlock($blockName); - $this->_links[$this->_getNewPosition((int)$block->getPosition())] = $block; + if ($block) { + $this->_links[$this->_getNewPosition((int)$block->getPosition())] = $block; + } return $this; } diff --git a/app/code/core/Mage/Page/etc/config.xml b/app/code/core/Mage/Page/etc/config.xml index 06bf6fd2ff..eb075a4fd8 100644 --- a/app/code/core/Mage/Page/etc/config.xml +++ b/app/code/core/Mage/Page/etc/config.xml @@ -129,7 +129,7 @@ Default welcome msg!

- &copy; 2008 Magento Demo Store. All Rights Reserved. + &copy; 2012 Magento Demo Store. All Rights Reserved.
diff --git a/app/code/core/Mage/Paygate/Block/Authorizenet/Form/Cc.php b/app/code/core/Mage/Paygate/Block/Authorizenet/Form/Cc.php index 2c78280062..db856895a5 100644 --- a/app/code/core/Mage/Paygate/Block/Authorizenet/Form/Cc.php +++ b/app/code/core/Mage/Paygate/Block/Authorizenet/Form/Cc.php @@ -67,7 +67,7 @@ public function getCardsBlock() */ public function getCancelUrl() { - return $this->getUrl('paygate/authorizenet_payment/cancel', array('_secure' => true)); + return $this->getUrl('paygate/authorizenet_payment/cancel'); } /** diff --git a/app/code/core/Mage/Paygate/etc/config.xml b/app/code/core/Mage/Paygate/etc/config.xml index 180e02b21d..7e244cd959 100644 --- a/app/code/core/Mage/Paygate/etc/config.xml +++ b/app/code/core/Mage/Paygate/etc/config.xml @@ -67,6 +67,9 @@ + + /paygate/authorizenet_payment + diff --git a/app/code/core/Mage/Payment/Block/Form/Container.php b/app/code/core/Mage/Payment/Block/Form/Container.php index 665f092bb8..9d15385732 100644 --- a/app/code/core/Mage/Payment/Block/Form/Container.php +++ b/app/code/core/Mage/Payment/Block/Form/Container.php @@ -57,7 +57,7 @@ protected function _canUseMethod($method) return false; } - if (!$method->canUseForCurrency(Mage::app()->getStore()->getBaseCurrencyCode())) { + if (!$method->canUseForCurrency($this->getQuote()->getStore()->getBaseCurrencyCode())) { return false; } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order.php b/app/code/core/Mage/Sales/Model/Api2/Order.php index 6fe913a042..590e1b8bb5 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order.php @@ -117,9 +117,9 @@ protected function _getAddresses(array $orderIds) { $addresses = array(); - if ($this->_isSubCallAllowed('order_addresses')) { + if ($this->_isSubCallAllowed('order_address')) { /** @var $addressesFilter Mage_Api2_Model_Acl_Filter */ - $addressesFilter = $this->_getSubModel('order_addresses', array())->getFilter(); + $addressesFilter = $this->_getSubModel('order_address', array())->getFilter(); // do addresses request if at least one attribute allowed if ($addressesFilter->getAllowedAttributes()) { /* @var $collection Mage_Sales_Model_Resource_Order_Address_Collection */ @@ -174,9 +174,9 @@ protected function _getComments(array $orderIds) { $comments = array(); - if ($this->_isOrderCommentsAllowed() && $this->_isSubCallAllowed('order_comments')) { + if ($this->_isOrderCommentsAllowed() && $this->_isSubCallAllowed('order_comment')) { /** @var $commentsFilter Mage_Api2_Model_Acl_Filter */ - $commentsFilter = $this->_getSubModel('order_comments', array())->getFilter(); + $commentsFilter = $this->_getSubModel('order_comment', array())->getFilter(); // do comments request if at least one attribute allowed if ($commentsFilter->getAllowedAttributes()) { foreach ($this->_getCommentsCollection($orderIds)->getItems() as $item) { @@ -212,9 +212,9 @@ protected function _getItems(array $orderIds) { $items = array(); - if ($this->_isSubCallAllowed('order_items')) { + if ($this->_isSubCallAllowed('order_item')) { /** @var $itemsFilter Mage_Api2_Model_Acl_Filter */ - $itemsFilter = $this->_getSubModel('order_items', array())->getFilter(); + $itemsFilter = $this->_getSubModel('order_item', array())->getFilter(); // do items request if at least one attribute allowed if ($itemsFilter->getAllowedAttributes()) { /* @var $collection Mage_Sales_Model_Resource_Order_Item_Collection */ diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Comments.php b/app/code/core/Mage/Sales/Model/Api2/Order/Comment.php similarity index 93% rename from app/code/core/Mage/Sales/Model/Api2/Order/Comments.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Comment.php index b7b1ddfd59..1aefe36b0c 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Comments.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Comment.php @@ -31,6 +31,6 @@ * @package Mage_Sales * @author Magento Core Team */ -class Mage_Sales_Model_Api2_Order_Comments extends Mage_Api2_Model_Resource +class Mage_Sales_Model_Api2_Order_Comment extends Mage_Api2_Model_Resource { } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest.php b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest.php similarity index 96% rename from app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest.php index bfdf308cf4..d7149d12da 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest.php @@ -31,7 +31,7 @@ * @package Mage_Sales * @author Magento Core Team */ -abstract class Mage_Sales_Model_Api2_Order_Comments_Rest extends Mage_Sales_Model_Api2_Order_Comments +abstract class Mage_Sales_Model_Api2_Order_Comment_Rest extends Mage_Sales_Model_Api2_Order_Comment { /**#@+ * Parameters in request used in model (usually specified in route mask) diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Admin/V1.php b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Admin/V1.php similarity index 91% rename from app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Admin/V1.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Admin/V1.php index e6e6b45aab..22656cb0a1 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Admin/V1.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Admin/V1.php @@ -31,6 +31,6 @@ * @package Mage_Sales * @author Magento Core Team */ -class Mage_Sales_Model_Api2_Order_Comments_Rest_Admin_V1 extends Mage_Sales_Model_Api2_Order_Comments_Rest +class Mage_Sales_Model_Api2_Order_Comment_Rest_Admin_V1 extends Mage_Sales_Model_Api2_Order_Comment_Rest { } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Customer/V1.php b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Customer/V1.php similarity index 94% rename from app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Customer/V1.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Customer/V1.php index 203d6614ae..4c4ede2df5 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Customer/V1.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Customer/V1.php @@ -31,7 +31,7 @@ * @package Mage_Sales * @author Magento Core Team */ -class Mage_Sales_Model_Api2_Order_Comments_Rest_Customer_V1 extends Mage_Sales_Model_Api2_Order_Comments_Rest +class Mage_Sales_Model_Api2_Order_Comment_Rest_Customer_V1 extends Mage_Sales_Model_Api2_Order_Comment_Rest { /** * Load order by id diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Items.php b/app/code/core/Mage/Sales/Model/Api2/Order/Item.php similarity index 93% rename from app/code/core/Mage/Sales/Model/Api2/Order/Items.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Item.php index 4497003ba3..25428ab0a5 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Items.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Item.php @@ -31,6 +31,6 @@ * @package Mage_Sales * @author Magento Core Team */ -class Mage_Sales_Model_Api2_Order_Items extends Mage_Api2_Model_Resource +class Mage_Sales_Model_Api2_Order_Item extends Mage_Api2_Model_Resource { } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest.php b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest.php similarity index 96% rename from app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest.php index 24b3a18e04..724724aa67 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest.php @@ -31,7 +31,7 @@ * @package Mage_Sales * @author Magento Core Team */ -abstract class Mage_Sales_Model_Api2_Order_Items_Rest extends Mage_Sales_Model_Api2_Order_Items +abstract class Mage_Sales_Model_Api2_Order_Item_Rest extends Mage_Sales_Model_Api2_Order_Item { /**#@+ * Parameters in request used in model (usually specified in route) diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Admin/V1.php b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Admin/V1.php similarity index 91% rename from app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Admin/V1.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Admin/V1.php index eb76e98c6b..5006d7cfa9 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Admin/V1.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Admin/V1.php @@ -31,6 +31,6 @@ * @package Mage_Sales * @author Magento Core Team */ -class Mage_Sales_Model_Api2_Order_Items_Rest_Admin_V1 extends Mage_Sales_Model_Api2_Order_Items_Rest +class Mage_Sales_Model_Api2_Order_Item_Rest_Admin_V1 extends Mage_Sales_Model_Api2_Order_Item_Rest { } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Customer/V1.php b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Customer/V1.php similarity index 94% rename from app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Customer/V1.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Customer/V1.php index 87404efadd..765faec03a 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Customer/V1.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Customer/V1.php @@ -31,7 +31,7 @@ * @package Mage_Sales * @author Magento Core Team */ -class Mage_Sales_Model_Api2_Order_Items_Rest_Customer_V1 extends Mage_Sales_Model_Api2_Order_Items_Rest +class Mage_Sales_Model_Api2_Order_Item_Rest_Customer_V1 extends Mage_Sales_Model_Api2_Order_Item_Rest { /** * Load order by id diff --git a/app/code/core/Mage/Sales/Model/Order/Invoice/Total/Discount.php b/app/code/core/Mage/Sales/Model/Order/Invoice/Total/Discount.php index da63378919..fafd10decb 100644 --- a/app/code/core/Mage/Sales/Model/Order/Invoice/Total/Discount.php +++ b/app/code/core/Mage/Sales/Model/Order/Invoice/Total/Discount.php @@ -55,10 +55,7 @@ public function collect(Mage_Sales_Model_Order_Invoice $invoice) /** @var $item Mage_Sales_Model_Order_Invoice_Item */ foreach ($invoice->getAllItems() as $item) { $orderItem = $item->getOrderItem(); - $parentOrderItem = $orderItem->getParentItem(); - if (($orderItem->isDummy() && !$orderItem->getForceApplyDiscountToParentItem()) - || ($parentOrderItem && $orderItem->getForceApplyDiscountToParentItem()) - ) { + if ($orderItem->isDummy()) { continue; } diff --git a/app/code/core/Mage/Sales/Model/Order/Pdf/Items/Creditmemo/Default.php b/app/code/core/Mage/Sales/Model/Order/Pdf/Items/Creditmemo/Default.php index 8109869768..8fa03f39f8 100644 --- a/app/code/core/Mage/Sales/Model/Order/Pdf/Items/Creditmemo/Default.php +++ b/app/code/core/Mage/Sales/Model/Order/Pdf/Items/Creditmemo/Default.php @@ -58,28 +58,12 @@ public function draw() ); // draw Total (ex) - $i = 0; - $prices = $this->getItemPricesForDisplay(); - foreach ($prices as $priceData){ - if (isset($priceData['label'])) { - // draw Subtotal label - $lines[$i][] = array( - 'text' => $priceData['label'], - 'feed' => 330, - 'align' => 'right', - 'width' => 50, - ); - $i++; - } - // draw Subtotal - $lines[$i][] = array( - 'text' => $priceData['subtotal'], - 'feed' => 330, - 'font' => 'bold', - 'align' => 'right', - ); - $i++; - } + $lines[0][] = array( + 'text' => $order->formatPriceTxt($item->getRowTotal()), + 'feed' => 330, + 'font' => 'bold', + 'align' => 'right', + ); // draw Discount $lines[0][] = array( @@ -105,9 +89,9 @@ public function draw() 'align' => 'right' ); - // draw Subtotal - $subtotal = $item->getRowTotal() - + $item->getTaxAmount() + $item->getHiddenTaxAmount() - $item->getDiscountAmount(); + // draw Total (inc) + $subtotal = $item->getRowTotal() + $item->getTaxAmount() + $item->getHiddenTaxAmount() + - $item->getDiscountAmount(); $lines[0][] = array( 'text' => $order->formatPriceTxt($subtotal), 'feed' => 565, diff --git a/app/code/core/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php b/app/code/core/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php index 54e94d14ae..4052f59e62 100644 --- a/app/code/core/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php +++ b/app/code/core/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php @@ -67,18 +67,20 @@ public function draw() // draw item Prices $i = 0; $prices = $this->getItemPricesForDisplay(); + $feedPrice = 395; + $feedSubtotal = $feedPrice + 170; foreach ($prices as $priceData){ if (isset($priceData['label'])) { // draw Price label $lines[$i][] = array( 'text' => $priceData['label'], - 'feed' => 360, + 'feed' => $feedPrice, 'align' => 'right' ); // draw Subtotal label $lines[$i][] = array( 'text' => $priceData['label'], - 'feed' => 530, + 'feed' => $feedSubtotal, 'align' => 'right' ); $i++; @@ -86,14 +88,14 @@ public function draw() // draw Price $lines[$i][] = array( 'text' => $priceData['price'], - 'feed' => 360, + 'feed' => $feedPrice, 'font' => 'bold', 'align' => 'right' ); // draw Subtotal $lines[$i][] = array( 'text' => $priceData['subtotal'], - 'feed' => 530, + 'feed' => $feedSubtotal, 'font' => 'bold', 'align' => 'right' ); diff --git a/app/code/core/Mage/Sales/Model/Quote.php b/app/code/core/Mage/Sales/Model/Quote.php index b60891b2dc..8325c20144 100644 --- a/app/code/core/Mage/Sales/Model/Quote.php +++ b/app/code/core/Mage/Sales/Model/Quote.php @@ -933,7 +933,7 @@ public function addProductAdvanced(Mage_Catalog_Model_Product $product, $request if (!$parentItem) { $parentItem = $item; } - if ($parentItem && $candidate->getParentProductId() && !$item->getId()) { + if ($parentItem && $candidate->getParentProductId()) { $item->setParentItem($parentItem); } diff --git a/app/code/core/Mage/Sales/Model/Quote/Item/Abstract.php b/app/code/core/Mage/Sales/Model/Quote/Item/Abstract.php index 4aa20f19e6..eeab9d5c41 100644 --- a/app/code/core/Mage/Sales/Model/Quote/Item/Abstract.php +++ b/app/code/core/Mage/Sales/Model/Quote/Item/Abstract.php @@ -559,22 +559,6 @@ public function isChildrenCalculated() return false; } - /** - * Check if force discount apply to parent item - * - * @return bool - */ - public function getForceApplyDiscountToParentItem() - { - if ($this->getParentItem()) { - $product = $this->getParentItem()->getProduct(); - } else { - $product = $this->getProduct(); - } - - return $product->getTypeInstance()->getForceApplyDiscountToParentItem(); - } - /** * Checking can we ship product separatelly (each child separately) * or each parent product item can be shipped only like one item diff --git a/app/code/core/Mage/Sales/etc/api2.xml b/app/code/core/Mage/Sales/etc/api2.xml index 3fceda27f6..84c3458934 100644 --- a/app/code/core/Mage/Sales/etc/api2.xml +++ b/app/code/core/Mage/Sales/etc/api2.xml @@ -31,10 +31,16 @@ Sales 130 + + + Order + 150 + + - + sales 10 sales/api2_order @@ -154,11 +160,11 @@ 1 - - - orders + + + sales_order 30 - sales/api2_order_items + sales/api2_order_item sales/order_item Order Items @@ -221,9 +227,9 @@ 1 - - - orders + + + sales_order 40 sales/api2_order_address sales/order_address @@ -263,11 +269,11 @@ Address Type Email - - - orders + + + sales_order 60 - sales/api2_order_comments + sales/api2_order_comment sales/order_status_history Order Comments @@ -298,7 +304,7 @@ 1 - + diff --git a/app/code/core/Mage/SalesRule/Model/Quote/Discount.php b/app/code/core/Mage/SalesRule/Model/Quote/Discount.php index fb51963241..7b3f68eb1a 100644 --- a/app/code/core/Mage/SalesRule/Model/Quote/Discount.php +++ b/app/code/core/Mage/SalesRule/Model/Quote/Discount.php @@ -85,9 +85,7 @@ public function collect(Mage_Sales_Model_Quote_Address $address) $eventArgs['item'] = $item; Mage::dispatchEvent('sales_quote_address_discount_item', $eventArgs); - if ($item->getHasChildren() && $item->isChildrenCalculated() - && !$item->getForceApplyDiscountToParentItem() - ) { + if ($item->getHasChildren() && $item->isChildrenCalculated()) { foreach ($item->getChildren() as $child) { $this->_calculator->process($child); $eventArgs['item'] = $child; diff --git a/app/code/core/Mage/Shipping/Model/Carrier/Abstract.php b/app/code/core/Mage/Shipping/Model/Carrier/Abstract.php index d69cf15f09..619b323fef 100644 --- a/app/code/core/Mage/Shipping/Model/Carrier/Abstract.php +++ b/app/code/core/Mage/Shipping/Model/Carrier/Abstract.php @@ -523,10 +523,10 @@ public function isCityRequired() /** * Determine whether zip-code is required for the country of destination * - * @param Mage_Shipping_Model_Rate_Request|null $request + * @param string|null $countryId * @return bool */ - public function isZipCodeRequired(Mage_Shipping_Model_Rate_Request $request = null) + public function isZipCodeRequired($countryId = null) { return false; } diff --git a/app/code/core/Mage/Tax/Block/Checkout/Shipping.php b/app/code/core/Mage/Tax/Block/Checkout/Shipping.php index d580fd9edc..9e5daabf44 100644 --- a/app/code/core/Mage/Tax/Block/Checkout/Shipping.php +++ b/app/code/core/Mage/Tax/Block/Checkout/Shipping.php @@ -35,7 +35,7 @@ class Mage_Tax_Block_Checkout_Shipping extends Mage_Checkout_Block_Total_Default protected $_template = 'tax/checkout/shipping.phtml'; /** - * Check if we need display shipping include and exlude tax + * Check if we need display shipping include and exclude tax * * @return bool */ @@ -81,7 +81,7 @@ public function getShippingExcludeTax() */ public function getIncludeTaxLabel() { - return $this->helper('tax')->__('Shipping Incl. Tax (%s)', $this->getTotal()->getAddress()->getShippingDescription()); + return $this->helper('tax')->__('Shipping Incl. Tax (%s)', $this->escapeHtml($this->getTotal()->getAddress()->getShippingDescription())); } /** @@ -91,6 +91,6 @@ public function getIncludeTaxLabel() */ public function getExcludeTaxLabel() { - return $this->helper('tax')->__('Shipping Excl. Tax (%s)', $this->getTotal()->getAddress()->getShippingDescription()); + return $this->helper('tax')->__('Shipping Excl. Tax (%s)', $this->escapeHtml($this->getTotal()->getAddress()->getShippingDescription())); } } diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract.php index fb202e190d..a6f3871b79 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract.php @@ -110,13 +110,13 @@ public function isCityRequired() /** * Determine whether zip-code is required for the country of destination * - * @param Mage_Shipping_Model_Rate_Request|null $request + * @param string|null $countryId * @return bool */ - public function isZipCodeRequired(Mage_Shipping_Model_Rate_Request $request = null) + public function isZipCodeRequired($countryId = null) { - if ($request instanceof Mage_Shipping_Model_Rate_Request) { - return !Mage::helper('directory')->isZipCodeOptional($request->getDestCountryId()); + if ($countryId != null) { + return !Mage::helper('directory')->isZipCodeOptional($countryId); } return true; } @@ -207,7 +207,7 @@ public function proccessAdditionalValidation(Mage_Shipping_Model_Rate_Request $r } } - if (!$errorMsg && !$request->getDestPostcode() && $this->isZipCodeRequired($request)) { + if (!$errorMsg && !$request->getDestPostcode() && $this->isZipCodeRequired($request->getDestCountryId())) { $errorMsg = Mage::helper('shipping')->__('This shipping method is not available, please specify ZIP-code'); } diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php index 6aed24fbd4..06bf2f55c1 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php @@ -101,13 +101,6 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl_International */ protected $_rates = array(); - /** - * Store Id - * - * @var int|null - */ - protected $_storeId = null; - /** * Carrier's code * @@ -184,7 +177,7 @@ protected function _getDefaultValue($origValue, $pathToValue) if (!$origValue) { $origValue = Mage::getStoreConfig( $pathToValue, - $this->_storeId + $this->getStore() ); } @@ -204,7 +197,7 @@ public function collectRates(Mage_Shipping_Model_Rate_Request $request) } $requestDhl = clone $request; - $this->_storeId = $requestDhl->getStoreId(); + $this->setStore($requestDhl->getStoreId()); $origCompanyName = $this->_getDefaultValue( $requestDhl->getOrigCompanyName(), @@ -290,7 +283,7 @@ protected function _addParams($requestObject) public function setRequest(Varien_Object $request) { $this->_request = $request; - $this->_storeId = $request->getStoreId(); + $this->setStore($request->getStoreId()); $requestObject = new Varien_Object(); @@ -916,7 +909,10 @@ protected function _parseResponse($response) $result->setTrackingNumber((string)$xml->AirwayBillNumber); try { /* @var $pdf Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf */ - $pdf = Mage::getModel('usa/shipping_carrier_dhl_label_pdf', array('info' => $xml)); + $pdf = Mage::getModel( + 'usa/shipping_carrier_dhl_label_pdf', + array('info' => $xml, 'request' => $this->_request) + ); $result->setShippingLabelContent($pdf->render()); } catch (Exception $e) { Mage::throwException(Mage::helper('usa')->__($e->getMessage())); @@ -1105,7 +1101,7 @@ public function proccessAdditionalValidation(Mage_Shipping_Model_Rate_Request $r } $countryParams = $this->getCountryParams( - Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $this->getStore()) + Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $request->getStoreId()) ); if (!$countryParams->getData()) { $this->_errors[] = Mage::helper('usa')->__('Please, specify origin country'); @@ -1412,7 +1408,7 @@ protected function _shipmentDetails($xml, $rawRequest, $originRegion = '') $i = 0; foreach ($rawRequest->getPackages() as $package) { $nodePiece = $nodePieces->addChild('Piece', '', ''); - $packageType = 'DC'; + $packageType = 'EE'; if ($package['params']['container'] == self::DHL_CONTENT_TYPE_NON_DOC) { $packageType = 'CP'; } @@ -1447,7 +1443,7 @@ protected function _shipmentDetails($xml, $rawRequest, $originRegion = '') $nodeShipmentDetails->addChild('LocalProductCode', $rawRequest->getShippingMethod()); $nodeShipmentDetails->addChild('Date', Mage::getModel('core/date')->date('Y-m-d')); - $nodeShipmentDetails->addChild('Contents', 'DHL Parcel TEST'); + $nodeShipmentDetails->addChild('Contents', 'DHL Parcel'); /* * The DoorTo Element defines the type of delivery service that applies to the shipment. * The valid values are DD (Door to Door), DA (Door to Airport) , AA and DC (Door to @@ -1485,7 +1481,7 @@ protected function _shipmentDetails($xml, $rawRequest, $originRegion = '') */ $nodeShipmentDetails->addChild('DoorTo', 'DD'); $nodeShipmentDetails->addChild('Date', Mage::getModel('core/date')->date('Y-m-d')); - $nodeShipmentDetails->addChild('Contents', 'DHL Parcel TEST'); + $nodeShipmentDetails->addChild('Contents', 'DHL Parcel'); } } diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf.php index f4582b44bc..3157c1abf5 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf.php @@ -34,10 +34,19 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf { /** + * Label Information + * * @var SimpleXMLElement */ protected $_info; + /** + * Shipment Request + * + * @var Mage_Shipping_Model_Shipment_Request + */ + protected $_request; + /** * Dhl International Label Creation Class constructor * @@ -45,7 +54,8 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf */ public function __construct(array $arguments) { - $this->_info = $arguments['info']; + $this->_info = $arguments['info']; + $this->_request = $arguments['request']; } /** @@ -77,7 +87,7 @@ public function render() ) ->addServiceFeaturesCodes() ->addDeliveryDateCode() - ->addShipmentInformation() + ->addShipmentInformation($this->_request->getOrderShipment()) ->addDateInfo($this->_info->ShipmentDate) ->addWeightInfo((string)$this->_info->ChargeableWeight, (string)$this->_info->WeightUnit) ->addWaybillBarcode((string)$this->_info->AirwayBillNumber, (string)$this->_info->Barcodes->AWBBarCode) @@ -88,16 +98,20 @@ public function render() ) ->addBorder(); + $packages = array_values($this->_request->getPackages()); + $i = 0; foreach ($this->_info->Pieces->Piece as $piece) { $page = new Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf_Page($template); $pdfBuilder->setPage($page) ->addPieceNumber((int)$piece->PieceNumber, (int)$this->_info->Piece) + ->addContentInfo($packages[$i]) ->addPieceIdBarcode( (string)$piece->DataIdentifier, (string)$piece->LicensePlate, (string)$piece->LicensePlateBarCode ); array_push($pdf->pages, $page); + $i++; } return $pdf->render(); } diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf/PageBuilder.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf/PageBuilder.php index de9ca8bf1c..6c7c34a9c9 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf/PageBuilder.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf/PageBuilder.php @@ -190,7 +190,8 @@ public function addProductContentCode($code) $this->_page->saveGS(); $codes = array( 'TDK' => 0, 'TDE' => 1, 'TDL' => 0, 'TDM' => 1, 'TDT' => 0, - 'TDY' => 1, 'XPD' => 0, 'DOX' => 0, 'WPX' => 1, 'DOM' => 0 + 'TDY' => 1, 'XPD' => 0, 'DOX' => 0, 'WPX' => 1, 'ECX' => 0, + 'DOM' => 0 ); if (!key_exists($code, $codes)) { throw new InvalidArgumentException(Mage::helper('usa')->__('Product content code is invalid')); @@ -454,12 +455,22 @@ public function addDeliveryDateCode() /** * Add Shipment Information * - * @return Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf_PageBuilder + * @param Mage_Sales_Model_Order_Shipment $data + * @return Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf_Page + * @throws Exception */ - public function addShipmentInformation() + public function addShipmentInformation($data) { $this->_page->saveGS(); + $this->_page->setFont($this->_fontNormal, 6); + $refCode = $data->getOrder()->getIncrementId(); + if (!$refCode) { + throw new InvalidArgumentException(Mage::helper('usa')->__('Reference code is missing')); + } + $this->_page->drawText('Ref Code: ' . Mage::helper('usa')->__('Order #%s', $refCode), $this->_x(8), + $this->_y(224) + ); $this->_page->restoreGS(); return $this; } @@ -510,6 +521,36 @@ public function addWeightInfo($weight, $unit) return $this; } + /** + * Add Content: Shipment Description + * + * @param array $package + * @return Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf_PageBuilder + * @throws Exception + */ + public function addContentInfo($package) + { + $this->_page->saveGS(); + $this->_page->setFont($this->_fontNormal, 6); + if (empty($package)) { + throw new InvalidArgumentException(Mage::helper('usa')->__('Package content is missing')); + } + + $x = 225; + $y = 300; + $this->_page->drawText('Content: ', $this->_x($x), $this->_y($y)); + $i = 0; + foreach ($package['items'] as $item) { + $i++; + $this->_page->drawText(substr($item['name'], 0, 20), $this->_x($x), $this->_y($y += 6)); + if ($i == 12) { + break; + } + } + $this->_page->restoreGS(); + return $this; + } + /** * Add Waybill Barcode * diff --git a/app/code/core/Mage/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Settings.php b/app/code/core/Mage/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Settings.php index 82918d606c..ef409e9d78 100644 --- a/app/code/core/Mage/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Settings.php +++ b/app/code/core/Mage/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Settings.php @@ -112,18 +112,18 @@ protected function _prepareForm() $this->_addElementTypes($fieldset); $fieldset->addField('type', 'select', array( - 'name' => 'type', - 'label' => Mage::helper('widget')->__('Type'), - 'title' => Mage::helper('widget')->__('Type'), - 'class' => '', - 'values' => $this->getTypesOptionsArray() + 'name' => 'type', + 'label' => Mage::helper('widget')->__('Type'), + 'title' => Mage::helper('widget')->__('Type'), + 'required' => true, + 'values' => $this->getTypesOptionsArray() )); $fieldset->addField('package_theme', 'select', array( - 'name' => 'package_theme', - 'label' => Mage::helper('widget')->__('Design Package/Theme'), - 'title' => Mage::helper('widget')->__('Design Package/Theme'), - 'required' => false, + 'name' => 'package_theme', + 'label' => Mage::helper('widget')->__('Design Package/Theme'), + 'title' => Mage::helper('widget')->__('Design Package/Theme'), + 'required' => true, 'values' => $this->getPackegeThemeOptionsArray() )); $continueButton = $this->getLayout() diff --git a/app/code/core/Mage/Wishlist/controllers/IndexController.php b/app/code/core/Mage/Wishlist/controllers/IndexController.php index ca92d79e83..c750064633 100644 --- a/app/code/core/Mage/Wishlist/controllers/IndexController.php +++ b/app/code/core/Mage/Wishlist/controllers/IndexController.php @@ -212,7 +212,7 @@ public function addAction() Mage::helper('wishlist')->calculate(); - $message = $this->__('%1$s has been added to your wishlist. Click here to continue shopping', $product->getName(), Mage::helper('core')->escapeUrl($referer)); + $message = $this->__('%1$s has been added to your wishlist. Click here to continue shopping.', $product->getName(), Mage::helper('core')->escapeUrl($referer)); $session->addSuccess($message); } catch (Mage_Core_Exception $e) { diff --git a/app/design/adminhtml/default/default/layout/oauth.xml b/app/design/adminhtml/default/default/layout/oauth.xml index 652e9897ef..efd53a346c 100644 --- a/app/design/adminhtml/default/default/layout/oauth.xml +++ b/app/design/adminhtml/default/default/layout/oauth.xml @@ -29,27 +29,27 @@ - + - + - - + + - - + + @@ -58,112 +58,137 @@ - + - + - - - - - + + + + - + - - + + jsscriptaculous/controls.js + jsprototype/window.js + jsscriptaculous/builder.js + jsscriptaculous/dragdrop.js + jsscriptaculous/controls.js + jsscriptaculous/slider.js + jslib/ccard.js + jsvarien/js.js + jsmage/adminhtml/hash.js + jsmage/adminhtml/events.js + jsmage/adminhtml/loader.js + jsmage/adminhtml/grid.js + jsmage/adminhtml/tabs.js + jsmage/adminhtml/accordion.js + + jsmage/adminhtml/uploader.js + jsmage/adminhtml/product.js + jsmage/adminhtml/rules.js + jsmage/adminhtml/wysiwyg/tiny_mce/setup.js + jslib/ds-sleight.js + jsvarien/iehover-fix.js + + cssprint.css + js_csscalendar/calendar-win2k-1.css + js_cssextjs/resources/css/ext-all.css + js_cssextjs/resources/css/ytheme-magento.css + skin_cssmenu.css + jscalendar/calendar.js + jscalendar/calendar-setup.js + jsextjs/fix-defer-before.js + jsextjs/ext-tree.js + jsextjs/fix-defer.js + jsextjs/ext-tree-checkbox.js + + + + + + + + oauth-simple.css + + + + + + + + - - - - - + + + - - - - - - - - - - - + + + + - - - - - + - - - - + + + - - - - - - - + - - - - + + - + - + diff --git a/app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml b/app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml index eb36d73398..08392a4117 100644 --- a/app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml +++ b/app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml @@ -364,8 +364,8 @@ canShowPriceInfo($_item)): ?> displayPrices( - $_item->getBaseRowTotal() - $_item->getBaseDiscountAmount() + $_item->getBaseTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(), - $_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_item->getWeeeTaxAppliedRowAmount() + max(0, $_item->getBaseRowTotal() - $_item->getBaseDiscountAmount() + $_item->getBaseTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount()), + max(0, $_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()) ); ?>   diff --git a/app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml b/app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml index 35636cd9a4..50b8cab0ac 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml @@ -184,62 +184,55 @@ __('[GLOBAL]') ?> - - - +//]]> + diff --git a/app/design/adminhtml/default/default/template/currencysymbol/grid.phtml b/app/design/adminhtml/default/default/template/currencysymbol/grid.phtml index 4059edcbef..4d76b23ca3 100644 --- a/app/design/adminhtml/default/default/template/currencysymbol/grid.phtml +++ b/app/design/adminhtml/default/default/template/currencysymbol/grid.phtml @@ -74,7 +74,7 @@ - + diff --git a/app/design/adminhtml/default/default/template/empty.phtml b/app/design/adminhtml/default/default/template/empty.phtml index 7bffae91ee..abb9049b99 100644 --- a/app/design/adminhtml/default/default/template/empty.phtml +++ b/app/design/adminhtml/default/default/template/empty.phtml @@ -27,12 +27,13 @@ -getChildHtml('head') ?> +getChild('head')->unsetChildren(); ?> +getChildHtml('head'); ?>
getChildHtml('after_body_start') ?> - getChildHtml('global_messages') ?> + getChildHtml('global_notices') ?> getChildHtml('content') ?> getChildHtml('before_body_end') ?>
diff --git a/app/design/adminhtml/default/default/template/oauth/authorize/button-simple.phtml b/app/design/adminhtml/default/default/template/oauth/authorize/button-simple.phtml index 8e8bf8c9c2..92d213cd50 100644 --- a/app/design/adminhtml/default/default/template/oauth/authorize/button-simple.phtml +++ b/app/design/adminhtml/default/default/template/oauth/authorize/button-simple.phtml @@ -28,7 +28,7 @@ /** * "Grant Access" button * - * @var $this Mage_OAuth_Block_Authorize_ButtonBaseAbstract + * @var $this Mage_Oauth_Block_Authorize_ButtonBaseAbstract */ $logo = $this->getSkinUrl('images/logo-large.gif', array('_area' => 'adminhtml', '_package' => 'default')); ?> @@ -43,7 +43,7 @@ $logo = $this->getSkinUrl('images/logo-large.gif', array('_area' => 'adminhtml', getMessagesBlock()->getGroupedHtml() ?> getHasException()) : ?> -

__('%s request access to your account', $this->escapeHtml($this->getConsumer()->getName())); ?>

+

__('%s requests access to your account', $this->escapeHtml($this->getConsumer()->getName())); ?>

__('After authorization application will have access to you account.'); ?>

diff --git a/app/design/adminhtml/default/default/template/oauth/authorize/button.phtml b/app/design/adminhtml/default/default/template/oauth/authorize/button.phtml index cdccf65c66..5ce217e145 100644 --- a/app/design/adminhtml/default/default/template/oauth/authorize/button.phtml +++ b/app/design/adminhtml/default/default/template/oauth/authorize/button.phtml @@ -27,10 +27,10 @@ /** * "Grant Access" button * - * @see Mage_OAuth_Block_Authorize + * @see Mage_Oauth_Block_Authorize */ -/** @var $this Mage_OAuth_Block_Adminhtml_OAuth_Authorize_Button */ +/** @var $this Mage_Oauth_Block_Adminhtml_Oauth_Authorize_Button */ ?>
- getShippingDescription() ?> + escapeHtml($_order->getShippingDescription()) ?> helper('sales')->__('Total Shipping Charges'); ?>: helper('tax')->displayShippingPriceIncludingTax()): ?> diff --git a/app/design/adminhtml/default/default/template/sales/order/invoice/create/form.phtml b/app/design/adminhtml/default/default/template/sales/order/invoice/create/form.phtml index e86cac3c84..fb529065a4 100644 --- a/app/design/adminhtml/default/default/template/sales/order/invoice/create/form.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/invoice/create/form.phtml @@ -53,7 +53,7 @@
- getShippingDescription() ?> + escapeHtml($_order->getShippingDescription()) ?> helper('sales')->__('Total Shipping Charges'); ?>: helper('tax')->displayShippingPriceIncludingTax()): ?> diff --git a/app/design/adminhtml/default/default/template/sales/order/invoice/view/form.phtml b/app/design/adminhtml/default/default/template/sales/order/invoice/view/form.phtml index 417e0a1a36..72cda127ab 100644 --- a/app/design/adminhtml/default/default/template/sales/order/invoice/view/form.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/invoice/view/form.phtml @@ -51,7 +51,7 @@

helper('sales')->__('Shipping Information') ?>

- getShippingDescription() ?> + escapeHtml($_order->getShippingDescription()) ?> helper('sales')->__('Total Shipping Charges'); ?>: helper('tax')->displayShippingPriceIncludingTax()): ?> diff --git a/app/design/adminhtml/default/default/template/sales/order/shipment/create/form.phtml b/app/design/adminhtml/default/default/template/sales/order/shipment/create/form.phtml index df21370ec7..49fdba97b4 100644 --- a/app/design/adminhtml/default/default/template/sales/order/shipment/create/form.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/shipment/create/form.phtml @@ -50,7 +50,7 @@
- getShippingDescription() ?> + escapeHtml($_order->getShippingDescription()) ?> helper('sales')->__('Total Shipping Charges'); ?>: helper('tax')->displayShippingPriceIncludingTax()): ?> diff --git a/app/design/adminhtml/default/default/template/sales/order/shipment/tracking/info.phtml b/app/design/adminhtml/default/default/template/sales/order/shipment/tracking/info.phtml index e134686dba..1c49cbc403 100644 --- a/app/design/adminhtml/default/default/template/sales/order/shipment/tracking/info.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/shipment/tracking/info.phtml @@ -30,7 +30,7 @@ getTrackingInfo()->getErrorMessage() ?> getTrackingInfo()->getUrl()): ?> - Please, visit for more info: trackingInfo->getCarrierTitle() ?>
+ Please, visit for more info: escapeHtml($this->trackingInfo->getCarrierTitle()) ?>
getTrackingInfo()->getStatus()): ?> diff --git a/app/design/adminhtml/default/default/template/sales/order/shipment/view/form.phtml b/app/design/adminhtml/default/default/template/sales/order/shipment/view/form.phtml index 43ceb73c4c..a378f6064d 100644 --- a/app/design/adminhtml/default/default/template/sales/order/shipment/view/form.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/shipment/view/form.phtml @@ -51,7 +51,7 @@ __('Track this shipment') ?>
- getShippingDescription() ?> + escapeHtml($_order->getShippingDescription()) ?> helper('sales')->__('Total Shipping Charges'); ?>: helper('tax')->displayShippingPriceIncludingTax()): ?> diff --git a/app/design/adminhtml/default/default/template/sales/order/view/info.phtml b/app/design/adminhtml/default/default/template/sales/order/view/info.phtml index dee4af9c34..817d371e7d 100644 --- a/app/design/adminhtml/default/default/template/sales/order/view/info.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/view/info.phtml @@ -84,7 +84,7 @@ $orderStoreDate = $this->formatDate($_order->getCreatedAtStoreDate(), 'medium', getRemoteIp() && $this->shouldDisplayCustomerIp()): ?> - getRemoteIp(); echo ($_order->getXForwardedFor())?' (' . $_order->getXForwardedFor() . ')':''; ?> + getRemoteIp(); echo ($_order->getXForwardedFor())?' (' . $this->escapeHtml($_order->getXForwardedFor()) . ')':''; ?> getGlobalCurrencyCode() != $_order->getBaseCurrencyCode()): ?> diff --git a/app/design/adminhtml/default/default/template/system/currency/rate/matrix.phtml b/app/design/adminhtml/default/default/template/system/currency/rate/matrix.phtml index 2e2961304c..6d6a516260 100644 --- a/app/design/adminhtml/default/default/template/system/currency/rate/matrix.phtml +++ b/app/design/adminhtml/default/default/template/system/currency/rate/matrix.phtml @@ -53,7 +53,7 @@ $_rates = ( $_newRates ) ? $_newRates : $_oldRates;
__('Old rate:') ?> - + /> diff --git a/app/design/adminhtml/default/default/template/widget/instance/js.phtml b/app/design/adminhtml/default/default/template/widget/instance/js.phtml index cbe89a5667..6d3e39eac2 100644 --- a/app/design/adminhtml/default/default/template/widget/instance/js.phtml +++ b/app/design/adminhtml/default/default/template/widget/instance/js.phtml @@ -27,22 +27,22 @@ diff --git a/app/design/frontend/base/default/layout/catalog.xml b/app/design/frontend/base/default/layout/catalog.xml index 5cbf8ca318..0c1c5f2e4f 100644 --- a/app/design/frontend/base/default/layout/catalog.xml +++ b/app/design/frontend/base/default/layout/catalog.xml @@ -415,22 +415,4 @@ SEO Site Map Categories Sitemap - - - - - - - - - - - - - - - - diff --git a/app/design/frontend/base/default/layout/oauth.xml b/app/design/frontend/base/default/layout/oauth.xml index 6c1cb7bce4..3088e837df 100644 --- a/app/design/frontend/base/default/layout/oauth.xml +++ b/app/design/frontend/base/default/layout/oauth.xml @@ -26,127 +26,91 @@ */ --> - - - - - - - - - - - - - - + - - - - + + jslib/ccard.js + jsscriptaculous/controls.js + jsscriptaculous/builder.js + jsscriptaculous/dragdrop.js + jsscriptaculous/controls.js + jsscriptaculous/slider.js + jsvarien/js.js + jsvarien/menu.js + + + + + + + css/oauth-simple.css + + + + + + + + + + + + + - - - - - - - + - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - + - - - - - - - - - + + + - - - - - - + - - - - - - - - - - - + - - - - + + diff --git a/app/design/frontend/base/default/layout/wishlist.xml b/app/design/frontend/base/default/layout/wishlist.xml index 8b608c84f6..a4e7e7f738 100644 --- a/app/design/frontend/base/default/layout/wishlist.xml +++ b/app/design/frontend/base/default/layout/wishlist.xml @@ -33,15 +33,14 @@ Default layout, loads most of the pages --> - - + wishlist_link - + @@ -61,7 +60,6 @@ Customer account home dashboard layout --> - wishlist @@ -74,14 +72,14 @@ Wishlist pages - + My Wishlist - + Product Details and Comment @@ -91,14 +89,14 @@ Wishlist pages Add to Cart - + - + - - - + + + @@ -110,9 +108,9 @@ Wishlist pages - + - + wishlist_customer_sidebar @@ -121,9 +119,9 @@ Wishlist pages - + - + product.info.addto @@ -135,7 +133,7 @@ Wishlist pages - + diff --git a/app/design/frontend/base/default/template/captcha/zend.phtml b/app/design/frontend/base/default/template/captcha/zend.phtml index b47e5d8867..640a8fa25c 100644 --- a/app/design/frontend/base/default/template/captcha/zend.phtml +++ b/app/design/frontend/base/default/template/captcha/zend.phtml @@ -36,7 +36,7 @@
  • - <?php echo $this->__('Reload captcha') ?> + <?php echo $this->__('Reload captcha') ?> isCaseSensitive()) :?>
    diff --git a/app/design/frontend/base/default/template/checkout/cart.phtml b/app/design/frontend/base/default/template/checkout/cart.phtml index 7fae64865b..4a0d62d3db 100644 --- a/app/design/frontend/base/default/template/checkout/cart.phtml +++ b/app/design/frontend/base/default/template/checkout/cart.phtml @@ -99,8 +99,8 @@ getContinueShoppingUrl()): ?> - - + + + - - - - - - - - - images/media/col_left_callout.jpg - Our customer service is available 24/7. Call us at (555) 555-0123. - checkout/cart - - - - - images/media/col_right_callout.jpg - Keep your eyes open for our special Back to School items and save A LOT! + + + top_callout - - Site Map - - + + - + - - - @@ -94,11 +76,6 @@ Category default layout listall --> - empty6 - one_column5 - two_columns_left4 - two_columns_right4 - three_columns3 product_list_toolbar @@ -140,18 +117,10 @@ Category layered navigation layout product_list_toolbar - + - - - - - - - - @@ -223,12 +192,12 @@ Product view - + @@ -244,8 +213,7 @@ Product view product.tierprices - product.info.addtocart.bottom - product.info.addto + product.info.addtocart @@ -264,9 +232,6 @@ Product view container2ifEquals0alias_in_layoutoptions_container - - - - + @@ -348,6 +311,7 @@ Product additional images gallery popup + product-gallery-view @@ -380,25 +344,6 @@ SEO Site Map Site Map - - - - home - - - Home - / - - - - categories - - - Categories - - - - Categories @@ -446,22 +391,4 @@ SEO Site Map Categories Sitemap - - - - - - - - - - - - - - - - diff --git a/app/design/frontend/default/iphone/layout/catalogsearch.xml b/app/design/frontend/default/iphone/layout/catalogsearch.xml index c0fae3e2bf..18dba8c391 100644 --- a/app/design/frontend/default/iphone/layout/catalogsearch.xml +++ b/app/design/frontend/default/iphone/layout/catalogsearch.xml @@ -32,18 +32,6 @@ - - - - - Search Terms - - - - - Advanced Search - - @@ -52,7 +40,6 @@ - @@ -60,17 +47,13 @@ - empty6 - one_column5 - two_columns_left4 - two_columns_right4 - three_columns3 product_list_toolbar + @@ -81,6 +64,7 @@ + Advanced Search js_csscalendar/calendar-win2k-1.css jscalendar/calendar.js jscalendar/calendar-setup.js @@ -100,7 +84,7 @@ Advanced search results - + @@ -108,11 +92,6 @@ Advanced search results - empty6 - one_column5 - two_columns_left4 - two_columns_right4 - three_columns3 product_list_toolbar @@ -127,28 +106,14 @@ Advanced search results + + Search Terms + - - - home - - - Home - / - - - - categories - - - Categories - - - diff --git a/app/design/frontend/default/iphone/layout/checkout.xml b/app/design/frontend/default/iphone/layout/checkout.xml index 941e3cc532..a00bca6c13 100644 --- a/app/design/frontend/default/iphone/layout/checkout.xml +++ b/app/design/frontend/default/iphone/layout/checkout.xml @@ -33,23 +33,13 @@ Default layout, loads most of the pages --> + - - - - simplecheckout/cart_item_renderer - groupedcheckout/cart_item_renderer_grouped - configurablecheckout/cart_item_renderer_configurable - - - - - @@ -60,9 +50,6 @@ Default layout, loads most of the pages - - topCart - checkout/cart.phtml @@ -84,12 +71,9 @@ Default layout, loads most of the pages - - - @@ -307,14 +291,6 @@ One page checkout main layout - - - - - checkout-progress-wrapper - - - @@ -322,14 +298,6 @@ One page checkout main layout 1 - - - mage/captcha.js - - user_login - 230 - 50 - @@ -355,6 +323,7 @@ One page checkout progress block + - - Log Out100 + + Log Out2 + @@ -68,11 +72,9 @@ Load this update on every page when customer is logged out --> - - - Log In100 + + Log In1 + @@ -91,16 +93,7 @@ Layout for customer login page - - - - mage/captcha.js - - user_login - 230 - 50 - - + @@ -140,14 +133,6 @@ New customer registration - - - mage/captcha.js - - user_create - 230 - 50 - @@ -157,25 +142,42 @@ New customer registration + + Forgot Your Password + Password forgotten - - - - mage/captcha.js - - user_forgotpassword - 230 - 50 - - + + + + + + + + + Reset a Password + + + + + + + + Reset a Password + + + + + + + @@ -217,21 +219,21 @@ Customer account pages, rendered for all tabs in dashboard - - - - my-account - - - - - + + + 20 accountcustomer/account/ account_editcustomer/account/edit/ address_bookcustomer/address/ - + customer_account_navigation + + + + + my-account + @@ -283,5 +285,5 @@ Customer account address edit page - + diff --git a/app/design/frontend/default/iphone/layout/newsletter.xml b/app/design/frontend/default/iphone/layout/newsletter.xml new file mode 100644 index 0000000000..2cec4f7e3c --- /dev/null +++ b/app/design/frontend/default/iphone/layout/newsletter.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + newsletternewsletter/manage/ + + + + + + + + + + + 1 + + + + + + diff --git a/app/design/frontend/default/iphone/layout/page.xml b/app/design/frontend/default/iphone/layout/page.xml index 5dceaacc5b..a0ec67bc20 100644 --- a/app/design/frontend/default/iphone/layout/page.xml +++ b/app/design/frontend/default/iphone/layout/page.xml @@ -33,8 +33,8 @@ Default layout, loads most of the pages + - css/iphone.css @@ -47,11 +47,15 @@ Default layout, loads most of the pages + + + + skin_jsjs/modernizr.js skin_jsjs/iphone.js skin_jsjs/dnd.js - skin_jsjs/modernizr.js - + css/iphone.css + css/custom.css @@ -61,61 +65,42 @@ Default layout, loads most of the pages + - - + + top-container - - checkout/cartheader.phtml - checkout/cart/noItemsHeader.phtml - - simplecheckout/cart_item_renderer - groupedcheckout/cart_item_renderer_grouped - configurablecheckout/cart_item_renderer_configurable - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + bottom-container + @@ -127,13 +112,38 @@ Default layout, loads most of the pages - + + + + + + + + + + + + + css/styles.css + skin_csscss/styles-ie.csslt IE 8 + css/print.cssmedia="print" + + + + + + + + + + 1 + empty @@ -143,6 +153,7 @@ Default layout, loads most of the pages 1 + one_column @@ -152,6 +163,7 @@ Default layout, loads most of the pages 1 + two_columns_left @@ -161,6 +173,7 @@ Default layout, loads most of the pages 1 + two_columns_right @@ -170,6 +183,7 @@ Default layout, loads most of the pages 1 + three_columns diff --git a/app/design/frontend/default/iphone/layout/persistent.xml b/app/design/frontend/default/iphone/layout/persistent.xml deleted file mode 100644 index 2f8403aaba..0000000000 --- a/app/design/frontend/default/iphone/layout/persistent.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - + + + + + + Add to Cart + + + + + + Product Details and Comment + + + + + + + + + + + + wishlist_customer_sidebar + + + + + + + + + + + + wishlist_customer_sidebar + + + + + + + + + + + product.info.addto + product.info.addto + + + + + + + + + + + diff --git a/app/design/frontend/default/iphone/locale/en_US/translate.csv b/app/design/frontend/default/iphone/locale/en_US/translate.csv index 5caac30b89..e69de29bb2 100644 --- a/app/design/frontend/default/iphone/locale/en_US/translate.csv +++ b/app/design/frontend/default/iphone/locale/en_US/translate.csv @@ -1,7 +0,0 @@ -"My Account","Account" -"My Wishlist","Wishlist" -"My Wishlist (%d item)","Wishlist (%d)" -"My Wishlist (%d items)","Wishlist (%d)" -"My Cart","Cart" -"My Cart (%s item)","Cart (%s)" -"My Cart (%s items)","Cart (%s)" \ No newline at end of file diff --git a/app/design/frontend/default/iphone/template/catalog/category/view.phtml b/app/design/frontend/default/iphone/template/catalog/category/view.phtml new file mode 100644 index 0000000000..69af215c95 --- /dev/null +++ b/app/design/frontend/default/iphone/template/catalog/category/view.phtml @@ -0,0 +1,70 @@ + + +helper('catalog/output'); + $_category = $this->getCurrentCategory(); + $_categoryTitle = '

    '.$_helper->categoryAttribute($_category, $_category->getName(), 'name').'

    '; + $_imgUrl = $_category->getImageUrl(); + $_imgHtml = ''; + if ($_imgUrl) { + $_imgHtml = '

    '.$this->escapeHtml($_category->getName()).'

    '; + $_imgHtml = $_helper->categoryAttribute($_category, $_imgHtml, 'image'); + } +?> +getMessagesBlock()->toHtml() ?> +
    + + + + + getCurrentCategory()->getDescription()): ?> +
    + categoryAttribute($_category, $_description, 'description') ?> +
    + + + isContentMode()): ?> + + getCmsBlockHtml() ?> + + isMixedMode()): ?> + getCmsBlockHtml() ?> + + getProductListHtml() ?> + + + + getProductListHtml() ?> + +
    diff --git a/app/design/frontend/default/iphone/template/catalog/layer/view.phtml b/app/design/frontend/default/iphone/template/catalog/layer/view.phtml index 9d57c48577..7ed0fa57ed 100644 --- a/app/design/frontend/default/iphone/template/catalog/layer/view.phtml +++ b/app/design/frontend/default/iphone/template/catalog/layer/view.phtml @@ -32,23 +32,24 @@ */ ?> canShowBlock()): ?> -
    -
    -

    __('Shop By') ?>

    -
    - getStateHtml() ?> - canShowOptions()): ?> - getFilters() ?> - +
    + getStateHtml() ?> + getLayer()->getState()->getFilters()): ?> + + +
    + canShowOptions()): ?> +

    __('Shop By') ?>

    + getFilters() ?> + getItemsCount()): ?>
    __($_filter->getName()) ?>
    getHtml() ?>
    - - -
    + +
    diff --git a/app/design/frontend/default/iphone/template/catalog/navigation/top.phtml b/app/design/frontend/default/iphone/template/catalog/navigation/top.phtml index a48fa28b19..55396da099 100644 --- a/app/design/frontend/default/iphone/template/catalog/navigation/top.phtml +++ b/app/design/frontend/default/iphone/template/catalog/navigation/top.phtml @@ -39,9 +39,6 @@ * string If specified wraps children list in div with this class */ ?> -
    - <?php echo $this->__('Front Banner')?> -
    renderCategoriesMenuHtml(0,'level-top') ?>
  • - __('Clear All') ?> - __('Compare Products') ?> __('(%d)', $_helper->getItemCount()) ?> -
  • - - diff --git a/app/design/frontend/default/iphone/template/catalog/product/gallery.phtml b/app/design/frontend/default/iphone/template/catalog/product/gallery.phtml index 3abe86c1b7..4d1b7360ea 100644 --- a/app/design/frontend/default/iphone/template/catalog/product/gallery.phtml +++ b/app/design/frontend/default/iphone/template/catalog/product/gallery.phtml @@ -26,29 +26,21 @@ ?> helper('catalog/output'); ?> getProduct(); ?> -
    - - Add to Cart - -
    -
    -
    + + - + + + +
    diff --git a/app/design/frontend/default/iphone/template/catalog/product/list/toolbar.phtml b/app/design/frontend/default/iphone/template/catalog/product/list/toolbar.phtml index dc8a9aebec..6c3b6749b3 100644 --- a/app/design/frontend/default/iphone/template/catalog/product/list/toolbar.phtml +++ b/app/design/frontend/default/iphone/template/catalog/product/list/toolbar.phtml @@ -49,50 +49,23 @@ isExpanded() ): ?>
    - - getAvailableOrders() as $_key=>$_order): ?> - getCurrentDirection() == 'desc'): ?> -   - -   - +
    -isExpanded() ): ?> -
    -
    - - __('per page') ?> -
    - isEnabledViewSwitcher() ): ?> -

    - getModes(); ?> - 1): ?> - - getModes() as $_code=>$_label): ?> - isModeActive($_code)): ?> -   - -   - - - -

    -
    - - diff --git a/app/design/frontend/default/iphone/template/catalog/product/list/upsell.phtml b/app/design/frontend/default/iphone/template/catalog/product/list/upsell.phtml index 2ee353c52a..d5f0dbe6b4 100644 --- a/app/design/frontend/default/iphone/template/catalog/product/list/upsell.phtml +++ b/app/design/frontend/default/iphone/template/catalog/product/list/upsell.phtml @@ -25,29 +25,23 @@ */ ?> getItemCollection()->getItems())): ?> -
    -
    - __('Remove All')?> + getChildHtml('shopping.cart.table.after'); ?> +
    + getChildHtml('crosssell') ?> +
    + + getChildHtml('checkout.cart.extra') ?> + getChildHtml('checkout_cart_widget') ?> + getChildHtml('coupon') ?> + getChildHtml('giftcards') ?> + getChildHtml('giftregistry.cart.link') ?> +
    + getIsVirtual()): echo $this->getChildHtml('shipping'); endif; ?>
    - -
    - getChildHtml('coupon') ?> - getChildHtml('giftcards') ?> +
    + getChildHtml('totals'); ?>
    + hasError()): ?> +
      + getMethods('methods') as $method): ?> + getMethodHtml($method); ?> + +
    • + + +
    + - -
    diff --git a/app/design/frontend/default/iphone/template/checkout/cart/coupon.phtml b/app/design/frontend/default/iphone/template/checkout/cart/coupon.phtml deleted file mode 100644 index b84c860898..0000000000 --- a/app/design/frontend/default/iphone/template/checkout/cart/coupon.phtml +++ /dev/null @@ -1,59 +0,0 @@ - -
    -

    __('Discount Codes') ?>

    -
    -
    - - -
    - -
    -
    - -
    - getCouponCode())): ?> - __('Cancel Coupon') ?> - -
    -
    - -
    diff --git a/app/design/frontend/default/iphone/template/checkout/cart/item/default.phtml b/app/design/frontend/default/iphone/template/checkout/cart/item/default.phtml index f13db782b9..23ed75295c 100644 --- a/app/design/frontend/default/iphone/template/checkout/cart/item/default.phtml +++ b/app/design/frontend/default/iphone/template/checkout/cart/item/default.phtml @@ -24,11 +24,40 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -getItem()?> -canApplyMsrp($_item->getProduct(), Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type::TYPE_BEFORE_ORDER_CONFIRM); ?> +getItem(); +$isVisibleProduct = $_item->getProduct()->isVisibleInSiteVisibility(); +$canApplyMsrp = Mage::helper('catalog')->canApplyMsrp($_item->getProduct(), Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type::TYPE_BEFORE_ORDER_CONFIRM); +$messages = $this->getMessages(); +$_options = $this->getOptionList(); +?> + + + + + +

    * escapeHtml($message['text']) ?>

    + + + + - hasProductUrl()):?><?php echo $this->escapeHtml($this->getProductName()) ?>hasProductUrl()):?> + + hasProductUrl()):?> + <?php echo $this->escapeHtml($this->getProductName()) ?>hasProductUrl()):?> + + + getOptionList()): ?> +

    __('Edit') ?>

    + + + + + + + __('Remove item')?> +

    hasProductUrl()):?> escapeHtml($this->getProductName()) ?> @@ -36,233 +65,240 @@ escapeHtml($this->getProductName()) ?>

    - getOptionList()):?> -
    - - getFormatedOptionValue($_option) ?> -
    escapeHtml($_option['label']) ?>
    - class="truncated"> - -
    -
    -
    escapeHtml($_option['label']) ?>
    -
    -
    -
    - - - -
    - - getMessages()): ?> - -

    *

    - - - getProductAdditionalInformationBlock()):?> - setItem($_item)->toHtml() ?> + + getProductAdditionalInformationBlock(); ?> + + setItem($_item)->toHtml() ?> - - - __('See price before order confirmation.'); ?> - getId(); ?> - __("What's this?"); ?> - - - +
    - helper('tax')->displayCartPriceExclTax() || $this->helper('tax')->displayCartBothPrices()): ?> - helper('tax')->displayCartBothPrices()): ?> - helper('tax')->getIncExcText(false) ?> - - typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - - +
    + + getQty() == 1) echo ' style="display:none;"' ?>>× +
    + +
    getQty() == 1) echo ' style="display:none;"' ?>> + + - - typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - helper('checkout')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> - - helper('checkout')->formatPrice($_item->getCalculationPrice()) ?> + __('See price before order confirmation.'); ?> + getId(); ?> + __("What's this?"); ?> + + + + + helper('tax')->displayCartPriceExclTax() || $this->helper('tax')->displayCartBothPrices()): ?> + + typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + + + + + typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + helper('checkout')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> + + helper('checkout')->formatPrice($_item->getCalculationPrice()) ?> + + + + + + getApplied($_item)): ?> + + + + typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> +
    + __('Total'); ?>: helper('checkout')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> +
    + + + -
    - - getApplied($_item)): ?> - - typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> -
    - __('Total'); ?>: helper('checkout')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> -
    + + typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> + + helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> + + + + getApplied($_item)): ?> + + + + typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> +
    + __('Total incl. tax'); ?>: helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> +
    + + + - +
    - helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()): ?> - helper('tax')->displayCartBothPrices()): ?> - helper('tax')->getIncExcText(true) ?> - - helper('checkout')->getPriceInclTax($_item); ?> - typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - - - - +
    - typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> + helper('tax')->displayCartPriceExclTax() && !$_item->getNoSubtotal()): ?> + + typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + - helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> + - - getApplied($_item)): ?> - - - typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> -
    - __('Total incl. tax'); ?>: helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> + + getApplied($_item)): ?> + + + + typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> +
    + __('Total'); ?>: helper('checkout')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> +
    + - - - - + - - __('Qty'); ?> - - - helper('tax')->displayCartBothPrices()): ?> - helper('tax')->getIncExcText(false) ?> - + helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) && !$_item->getNoSubtotal()): ?> - helper('tax')->displayCartPriceExclTax() || $this->helper('tax')->displayCartBothPrices()): ?> - typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - - - - - - - -- - - typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - helper('checkout')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - - helper('checkout')->formatPrice($_item->getRowTotal()) ?> - - - - - getApplied($_item)): ?> - - - typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> -
    - __('Total'); ?>: helper('checkout')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> -
    - + + -- + + typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> + + helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> + + - - +
    - helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()): ?> - helper('tax')->displayCartBothPrices()): ?> - helper('tax')->getIncExcText(true) ?> - - helper('checkout')->getSubtotalInclTax($_item); ?> - typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - - - - - - -- - - typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - - helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - - - - - getApplied($_item)): ?> - - typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> -
    - __('Total incl. tax'); ?>: helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> -
    - - + +
    + +
    + - - <?php echo $this->__('Remove item')?> + + + + + Show Options + + diff --git a/app/design/frontend/default/iphone/template/checkout/cart/sidebar.phtml b/app/design/frontend/default/iphone/template/checkout/cart/sidebar.phtml deleted file mode 100644 index 068d258a3d..0000000000 --- a/app/design/frontend/default/iphone/template/checkout/cart/sidebar.phtml +++ /dev/null @@ -1,79 +0,0 @@ - -getIsNeedToDisplaySideBar()):?> -getSummaryCount() ?> -
    -
    - getRecentItems() ?> - -
      - - getItemHtml($_item) ?> - -
    - - -

    __('You have no items in your shopping cart.') ?>

    - - - 0): ?> -
    -
    - -

    __('There is 1 item in your cart.', $this->getUrl('checkout/cart')) ?>

    - -

    __('There are %s items in your cart.', $this->getUrl('checkout/cart'), $_cartQty) ?>

    - -

    - canApplyMsrp()): ?> - __('ORDER TOTAL WILL BE DISPLAYED BEFORE YOU SUBMIT THE ORDER'); ?> - - __('Cart Subtotal:') ?> formatPrice($this->getSubtotal()) ?> - getSubtotalInclTax()): ?> -
    (formatPrice($_subtotalInclTax) ?> getIncExcText(true) ?>) - - -

    -
    - isPossibleOnepageCheckout()): ?> -
    - getChildHtml('extra_actions') ?> - -
    - -
    - -
    -
    - diff --git a/app/design/frontend/default/iphone/template/checkout/cartheader.phtml b/app/design/frontend/default/iphone/template/checkout/cartheader.phtml deleted file mode 100644 index 61af0e3b00..0000000000 --- a/app/design/frontend/default/iphone/template/checkout/cartheader.phtml +++ /dev/null @@ -1,100 +0,0 @@ - - -
    -
    -
    - - getMessagesBlock()->getGroupedHtml() ?> - getChildHtml('form_before') ?> -
    -
    - <?php echo $this->__('Remove All')?> - - - - - - - - - - getItems() as $_item): ?> - getItemHtml($_item) ?> - - -
    -
    -
    - - -
    - getChildHtml('coupon') ?> - getChildHtml('giftcards') ?> -
    - - - - -
    -
    -
    diff --git a/app/design/frontend/default/iphone/template/checkout/onepage/login.phtml b/app/design/frontend/default/iphone/template/checkout/onepage/login.phtml deleted file mode 100644 index 11873ab678..0000000000 --- a/app/design/frontend/default/iphone/template/checkout/onepage/login.phtml +++ /dev/null @@ -1,123 +0,0 @@ - -
    - getChildHtml('login_before')?> -
    -

    getQuote()->isAllowedGuestCheckout() ): ?>__('Checkout as a Guest or Register') ?>__('Register to Create an Account') ?>

    - getQuote()->isAllowedGuestCheckout() ): ?> -

    __('Register with us for future convenience:') ?>

    - -

    __('Register and save time!') ?>
    - __('Register with us for future convenience:') ?>

    -
      -
    • __('Fast and easy check out') ?>
    • -
    • __('Easy access to your order history and status') ?>
    • -
    - - getQuote()->isAllowedGuestCheckout() ): ?> -
      - getQuote()->isAllowedGuestCheckout() ): ?> -
    • - getQuote()->getCheckoutMethod()==Mage_Checkout_Model_Type_Onepage::METHOD_GUEST): ?> checked="checked" class="radio" /> -
    • - -
    • - getQuote()->getCheckoutMethod()==Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER || !$this->getQuote()->isAllowedGuestCheckout()): ?> checked="checked" class="radio" /> -
    • -
    -

    __('Register and save time!') ?>

    -

    __('Register with us for future convenience:') ?>

    -
      -
    • __('Fast and easy check out') ?>
    • -
    • __('Easy access to your order history and status') ?>
    • -
    - - - -
    -
    -

    __('Login') ?>

    - getMessagesBlock()->getGroupedHtml() ?> -
    -
    -

    __('Already registered?') ?>

    -

    __('Please log in below:') ?>

    -
      -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • - isRequired('user_login')): ?> - getChildHtml('captcha') ?> - -
    -
    -
    -
    -
    -
    -
    -
    -

     

    - -
    -
    -
    -
    -

    __('* Required Fields') ?>

    - __('Forgot your password?') ?> - -
    -
    -
    - diff --git a/app/design/frontend/default/iphone/template/checkout/onepage/review/info.phtml b/app/design/frontend/default/iphone/template/checkout/onepage/review/info.phtml index 16839f6cd1..23141d1f0b 100644 --- a/app/design/frontend/default/iphone/template/checkout/onepage/review/info.phtml +++ b/app/design/frontend/default/iphone/template/checkout/onepage/review/info.phtml @@ -26,41 +26,22 @@ ?> getChildHtml('items_before'); ?>
    - - - - - +
    + getChildHtml('totals'); ?> - - - + - helper('tax')->displayCartBothPrices()): ?> - - - getChildHtml('totals'); ?> - getItems() as $_item): ?> getItemHtml($_item)?> -
    __('Product Name') ?>__('Price') ?>__('Qty') ?>__('Subtotal') ?>__('Subtotal') ?>
    getChildHtml('items_after'); ?> diff --git a/app/design/frontend/default/iphone/template/checkout/onepage/review/item.phtml b/app/design/frontend/default/iphone/template/checkout/onepage/review/item.phtml index 9e74ac12cb..e271bd3851 100644 --- a/app/design/frontend/default/iphone/template/checkout/onepage/review/item.phtml +++ b/app/design/frontend/default/iphone/template/checkout/onepage/review/item.phtml @@ -25,217 +25,220 @@ */ ?> getItem()?> - -

    escapeHtml($this->getProductName()) ?>

    - getOptionList()):?> -
    - - getFormatedOptionValue($_option) ?> -
    escapeHtml($_option['label']) ?>
    - class="truncated"> - -
    -
    -
    escapeHtml($_option['label']) ?>
    -
    -
    -
    - - - -
    - - getProductAdditionalInformationBlock()):?> - setItem($_item)->toHtml() ?> - - - - helper('tax')->displayCartPriceExclTax() || $this->helper('tax')->displayCartBothPrices()): ?> - typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - - - - - - typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - helper('checkout')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> - - helper('checkout')->formatPrice($_item->getCalculationPrice()) ?> - - - - - - getApplied($_item)): ?> - - - typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> -
    - __('Total'); ?>:
    helper('checkout')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?>
    -
    - - - - helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()): ?> - helper('tax')->displayCartBothPrices()): ?> - helper('tax')->getIncExcText(true) ?> - - helper('checkout')->getPriceInclTax($_item); ?> - typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - - - - - - typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> - - helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> + typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + helper('checkout')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> + + helper('checkout')->formatPrice($_item->getCalculationPrice()) ?> + + + + + + getApplied($_item)): ?> + + + + typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> +
    + __('Total'); ?>:
    helper('checkout')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?>
    +
    + + - -
    - getApplied($_item)): ?> - - - typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> -
    - __('Total incl. tax'); ?>:
    helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?>
    -
    - - - - - getQty() ?> - - helper('tax')->displayCartPriceExclTax() || $this->helper('tax')->displayCartBothPrices()): ?> - typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - - - - - - typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - helper('checkout')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - - helper('checkout')->formatPrice($_item->getRowTotal()) ?> + typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> + + helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> + + + + getApplied($_item)): ?> + + + + typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> +
    + __('Total incl. tax'); ?>:
    helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?>
    +
    + + - -
    - getApplied($_item)): ?> - - - typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> -
    - __('Total'); ?>:
    helper('checkout')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?>
    -
    - - - - helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()): ?> - helper('tax')->displayCartBothPrices()): ?> - helper('tax')->getIncExcText(true) ?> - - helper('checkout')->getSubtotalInclTax($_item); ?> - typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - - - - - - typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - - helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> + typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + helper('checkout')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> + + helper('checkout')->formatPrice($_item->getRowTotal()) ?> + + + + getApplied($_item)): ?> + + + + typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> +
    + __('Total'); ?>:
    helper('checkout')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?>
    +
    + + -
    - + helper('tax')->displayCartPriceInclTax()): ?> - getApplied($_item)): ?> - - - typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> -
    - __('Total incl. tax'); ?>:
    helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?>
    -
    + typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> + + helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> + + +
    + + + getApplied($_item)): ?> + + + + typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> +
    + __('Total incl. tax'); ?>:
    helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?>
    +
    + + - - - - + + + diff --git a/app/design/frontend/default/iphone/template/checkout/onepage/review/totals.phtml b/app/design/frontend/default/iphone/template/checkout/onepage/review/totals.phtml index 8d3a0a2992..ec51879096 100644 --- a/app/design/frontend/default/iphone/template/checkout/onepage/review/totals.phtml +++ b/app/design/frontend/default/iphone/template/checkout/onepage/review/totals.phtml @@ -30,7 +30,7 @@ ?> getTotals()): ?> - + renderTotals(null, $_colspan); ?> renderTotals('footer', $_colspan); ?> needDisplayBaseGrandtotal()):?> diff --git a/app/design/frontend/default/iphone/template/checkout/success.phtml b/app/design/frontend/default/iphone/template/checkout/success.phtml new file mode 100644 index 0000000000..741725b9df --- /dev/null +++ b/app/design/frontend/default/iphone/template/checkout/success.phtml @@ -0,0 +1,66 @@ + +
    +

    __('Your order has been received') ?>

    +
    +
    + getMessagesBlock()->getGroupedHtml() ?> +

    __('Thank you for your purchase!') ?>

    + + getOrderId()):?> + getCanViewOrder()) :?> +

    __('Your order # is: %s.', sprintf('%s', $this->escapeHtml($this->getViewOrderUrl()), $this->escapeHtml($this->getOrderId()))) ?>

    + +

    __('Your order # is: %s.', $this->escapeHtml($this->getOrderId())) ?>

    + +

    __('You will receive an order confirmation email with details of your order and a link to track its progress.') ?>

    + getCanViewOrder() && $this->getCanPrintOrder()) :?> +

    + __('Click here to print a copy of your order confirmation.', $this->getPrintUrl()) ?> + getChildHtml() ?> +

    + + + + getAgreementRefId()): ?> +

    __('Your billing agreement # is: %s.', sprintf('%s', $this->escapeHtml($this->getAgreementUrl()), $this->escapeHtml($this->getAgreementRefId())))?>

    + + + getRecurringProfiles()):?> +

    __('Your recurring payment profiles:'); ?>

    +
      + + getCanViewProfiles() ? sprintf('%s', $this->escapeHtml($this->getProfileUrl($profile)), $this->escapeHtml($this->getObjectData($profile, 'reference_id'))) : $this->escapeHtml($this->getObjectData($profile, 'reference_id')));?> +
    • __('Payment profile # %s: "%s".', $profileIdHtml, $this->escapeHtml($this->getObjectData($profile, 'schedule_description')))?>
    • + +
    + + +
    + +
    +
    diff --git a/app/design/frontend/default/iphone/template/customer/account/dashboard/address.phtml b/app/design/frontend/default/iphone/template/customer/account/dashboard/address.phtml new file mode 100644 index 0000000000..4246c41255 --- /dev/null +++ b/app/design/frontend/default/iphone/template/customer/account/dashboard/address.phtml @@ -0,0 +1,45 @@ + +
    +

    __('Address Book') ?> | __('Manage Addresses') ?>

    +
    +
    +

    __('Default Billing Address') ?> | __('Edit') ?>

    +
    + getPrimaryBillingAddressHtml() ?> +
    +
    +
    +
    +
    +

    __('Default Shipping Address') ?> | __('Edit') ?>

    +
    + getPrimaryShippingAddressHtml() ?> +
    +
    +
    +
    diff --git a/app/design/frontend/default/iphone/template/customer/account/navigation.phtml b/app/design/frontend/default/iphone/template/customer/account/navigation.phtml index dcd74046ae..acd581e4c3 100644 --- a/app/design/frontend/default/iphone/template/customer/account/navigation.phtml +++ b/app/design/frontend/default/iphone/template/customer/account/navigation.phtml @@ -24,39 +24,13 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> - -Show() - +getLinks(); ?> + + + + isActive($_link)): ?> + + + + + diff --git a/app/design/frontend/default/iphone/template/customer/address/book.phtml b/app/design/frontend/default/iphone/template/customer/address/book.phtml new file mode 100644 index 0000000000..e12bd7e491 --- /dev/null +++ b/app/design/frontend/default/iphone/template/customer/address/book.phtml @@ -0,0 +1,107 @@ + + +
    +

    __('Address Book') ?>

    + +
    +getMessagesBlock()->getGroupedHtml() ?> +
    +
    +

    __('Default Addresses') ?>

    +
      + getCustomer()->getDefaultBilling()): ?> +
    1. +

      __('Default Billing Address') ?> | __('Edit') ?>

      +
      + getAddressHtml(Mage::getSingleton('customer/session')->getCustomer()->getAddressById($_pAddsses)) ?> +
      +
    2. + +
    3. +

      __('Default Billing Address') ?>

      +

      __('You have no default billing address in your address book.') ?>

      +
    4. + + + getCustomer()->getDefaultShipping()): ?> +
    5. +

      __('Default Shipping Address') ?> | __('Edit') ?>

      +
      + getAddressHtml(Mage::getSingleton('customer/session')->getCustomer()->getAddressById($_pAddsses)) ?> +
      +
    6. + +
    7. +

      __('Default Shipping Address') ?>

      +

      __('You have no default shipping address in your address book.') ?>

      +
    8. + +
    +
    +
    +

    __('Additional Address Entries') ?>

    +
      + getAdditionalAddresses()): ?> + +
    1. +
      + getAddressHtml($_address) ?>
      +
      +

      + __('Edit Address') ?> + | + __('Delete Address') ?> +

      +
    2. + + +
    3. +

      __('You have no additional address entries in your address book.') ?>

      +
    4. + +
    +
    +
    + + diff --git a/app/design/frontend/default/iphone/template/customer/form/edit.phtml b/app/design/frontend/default/iphone/template/customer/form/edit.phtml deleted file mode 100644 index 2075565b65..0000000000 --- a/app/design/frontend/default/iphone/template/customer/form/edit.phtml +++ /dev/null @@ -1,115 +0,0 @@ - -
    -

    __('Edit Account Information') ?>

    -
    - - diff --git a/app/design/frontend/default/iphone/template/customer/form/forgotpassword.phtml b/app/design/frontend/default/iphone/template/customer/form/forgotpassword.phtml deleted file mode 100644 index ba354c0da6..0000000000 --- a/app/design/frontend/default/iphone/template/customer/form/forgotpassword.phtml +++ /dev/null @@ -1,49 +0,0 @@ - -
    -

    - __('Back to Login') ?> - __('Retrieve Password') ?> -

    - getMessagesBlock()->getGroupedHtml() ?> -
    -

    __('Retrieve your password here') ?>

    - - - isRequired('user_forgotpassword')): ?> -
      - getChildHtml('captcha') ?> -
    - - -
    -
    - diff --git a/app/design/frontend/default/iphone/template/customer/form/login.phtml b/app/design/frontend/default/iphone/template/customer/form/login.phtml index ea69231867..a6d2ac1f71 100644 --- a/app/design/frontend/default/iphone/template/customer/form/login.phtml +++ b/app/design/frontend/default/iphone/template/customer/form/login.phtml @@ -31,39 +31,55 @@ * @see Mage_Customer_Block_Form_Login */ ?> -
    - - - - diff --git a/app/design/frontend/default/iphone/template/persistent/remember_me_tooltip.phtml b/app/design/frontend/default/iphone/template/persistent/remember_me_tooltip.phtml new file mode 100644 index 0000000000..61757370f8 --- /dev/null +++ b/app/design/frontend/default/iphone/template/persistent/remember_me_tooltip.phtml @@ -0,0 +1,61 @@ + + + + + diff --git a/app/design/frontend/default/iphone/template/review/customer/list.phtml b/app/design/frontend/default/iphone/template/review/customer/list.phtml new file mode 100644 index 0000000000..0af80dea8c --- /dev/null +++ b/app/design/frontend/default/iphone/template/review/customer/list.phtml @@ -0,0 +1,58 @@ + +
    +

    __('My Product Reviews') ?>

    +
    +
    + getMessagesBlock()->getGroupedHtml() ?> + getCollection() && $this->count()): ?> + getToolbarHtml() ?> +
      + getCollection() as $_review): ?> +
    1. +
      +
      +

      escapeHtml($_review->getName()) ?>

      + (dateFormat($_review->getReviewCreatedAt()); ?>) +
      + getSum()): ?> +
      +
      +
      +
      +
      + +
      helper('review')->getDetailHtml($_review->getDetail()) ?>
      +
      __('View Details') ?>
      +
      +
    2. + +
    + +

    __('You have submitted no reviews.') ?>

    + +
    diff --git a/app/design/frontend/default/iphone/template/sales/billing/agreement/view.phtml b/app/design/frontend/default/iphone/template/sales/billing/agreement/view.phtml new file mode 100644 index 0000000000..48097bf143 --- /dev/null +++ b/app/design/frontend/default/iphone/template/sales/billing/agreement/view.phtml @@ -0,0 +1,110 @@ + + +
    +

    __('Billing Agreement # %s', $this->escapeHtml($this->getReferenceId())) ?>

    + getCanCancel()): ?> + __('Cancel') ?> + +
    +getMessagesBlock()->getGroupedHtml() ?> +
    +
    +

    __('Agreement Information') ?>

    +
    + + + + + + + + + + + + + + + getAgreementUpdatedAt()): ?> + + + + + + + + + + +
    __('Reference ID:') ?>escapeHtml($this->getReferenceId()); ?>
    __('Status:') ?>getAgreementStatus() ?>
    __('Created:') ?>escapeHtml($this->getAgreementCreatedAt()) ?>
    __('Updated:') ?>escapeHtml($this->getAgreementUpdatedAt()); ?>
    __('Payment Method:') ?>getPaymentMethodTitle() ?>
    +
    +
    + getRelatedOrders() ?> + 0): ?> + getChildHtml('pager'); ?> +

    __('Related Orders') ?>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    diff --git a/app/design/frontend/default/iphone/template/sales/billing/agreements.phtml b/app/design/frontend/default/iphone/template/sales/billing/agreements.phtml new file mode 100644 index 0000000000..dfc6159622 --- /dev/null +++ b/app/design/frontend/default/iphone/template/sales/billing/agreements.phtml @@ -0,0 +1,98 @@ + + +
    +

    __('Billing Agreements') ?>

    +
    + +getMessagesBlock()->getGroupedHtml() ?> + +
    + getBillingAgreements(); ?> + 0): ?> + getChildHtml('pager'); ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __('Reference ID'); ?>
    getItemValue($item, 'reference_id') ?>
    __('Status'); ?>
    getItemValue($item, 'status') ?>
    __('Created At'); ?>
    getItemValue($item, 'created_at') ?>
    __('Updated At'); ?>
    getItemValue($item, 'updated_at') ?>
    __('Payment Method'); ?>
    getItemValue($item, 'payment_method_label') ?>
    __('View') ?>
    + +

    __('There are no billing agreements yet.')?>

    + + + getWizardPaymentMethodOptions() ?> + +
    +

    __('New Billing Agreement') ?>

    +
    +
    +

    __('You will be redirected to the payment system website.') ?>

    +
      +
    • + + +
    • +
    +
    +
    +
    + + + +
    diff --git a/app/design/frontend/default/iphone/template/sales/order/creditmemo/items.phtml b/app/design/frontend/default/iphone/template/sales/order/creditmemo/items.phtml new file mode 100644 index 0000000000..544704feae --- /dev/null +++ b/app/design/frontend/default/iphone/template/sales/order/creditmemo/items.phtml @@ -0,0 +1,44 @@ + +getOrder() ?> + +getCreditmemosCollection() as $_creditmemo): ?> +

    __('Refund #') ?>getIncrementId(); ?> | __('Print Refund') ?>

    +

    __('Items Refunded') ?>

    + + + getTotalsHtml($_creditmemo);?> + + getAllItems(); ?> + + + getOrderItem()->getParentItem()) continue; ?> + getItemHtml($_item) ?> + +
    +getCommentsHtml($_creditmemo)?> + diff --git a/app/design/frontend/default/iphone/template/sales/order/creditmemo/items/renderer/default.phtml b/app/design/frontend/default/iphone/template/sales/order/creditmemo/items/renderer/default.phtml new file mode 100644 index 0000000000..6afb31d308 --- /dev/null +++ b/app/design/frontend/default/iphone/template/sales/order/creditmemo/items/renderer/default.phtml @@ -0,0 +1,322 @@ + +getItem() ?> +getItem()->getOrderItem()->getOrder() ?> + + + __('Product Name') ?> +

    escapeHtml($_item->getName()) ?>

    + getItemOptions()): ?> +
    + +
    escapeHtml($_option['label']) ?>
    + getPrintStatus()): ?> + getFormatedOptionValue($_option) ?> + class="truncated"> + +
    +
    +
    escapeHtml($_option['label']) ?>
    +
    +
    +
    + + + +
    escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) ) ?>
    + + +
    + + getProductAdditionalInformationBlock(); ?> + + setItem($_item->getOrderItem())->toHtml(); ?> + + escapeHtml($_item->getDescription()) ?> + helper('giftmessage/message')->getIsMessagesAvailable('order_item', $_item->getOrderItem()) && $_item->getGiftMessageId()): ?> + __('Gift Message') ?> + + + + + __('SKU') ?> + escapeHtml(Mage::helper('core/string')->splitInjection($this->getSku())) ?> + + __('Price') ?> + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Excl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + + getOrder()->formatPrice($this->getItem()->getPrice()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total'); ?>:
    getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?>
    +
    + + +
    +
    + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Incl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + helper('checkout')->getPriceInclTax($this->getItem()); ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + + getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total incl. tax'); ?>:
    getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?>
    +
    + + +
    + + + + + __('Qty') ?> + getQty()*1 ?> + + + __('Subtotal') ?> + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Excl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + + getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total'); ?>:
    getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?>
    +
    + + +
    +
    + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Incl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + helper('checkout')->getSubtotalInclTax($this->getItem()); ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + + getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total incl. tax'); ?>:
    getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?>
    +
    + + + + + +
    + + + + + __('Discount Amount') ?> + formatPrice(-$_item->getDiscountAmount()) ?> + + + __('Row Total') ?> + + formatPrice($_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_item->getWeeeTaxAppliedRowAmount()) ?> + + + diff --git a/app/design/frontend/default/iphone/template/sales/order/history.phtml b/app/design/frontend/default/iphone/template/sales/order/history.phtml index eb38f82e98..a6bf965eb2 100644 --- a/app/design/frontend/default/iphone/template/sales/order/history.phtml +++ b/app/design/frontend/default/iphone/template/sales/order/history.phtml @@ -24,42 +24,37 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -getMessagesBlock()->getGroupedHtml() ?> getOrders(); ?>

    __('My Orders') ?>

    -getPagerHtml(); ?> -getSize()): ?> - - - - - - - - - - - - - - - - - - - - - - - - - - -
    __('Order #') ?>__('Date') ?>__('Order Total') ?>__('Order Status') ?> 
    getRealOrderId() ?>formatDate($_order->getCreatedAtStoreDate()) ?>formatPrice($_order->getGrandTotal()) ?>getStatusLabel() ?>
    - -getPagerHtml(); ?> - -

    __('You have placed no orders.'); ?>

    - +
    + getMessagesBlock()->getGroupedHtml() ?> + getChildHtml('info');?> + getPagerHtml(); ?> + getSize()): ?> + + + + + + + + + + + + + + + + + + + + +
    __('Order #') ?>__('Date') ?>__('Total') ?>__('Status') ?>
    getRealOrderId() ?>formatDate($_order->getCreatedAtStoreDate()) ?>formatPrice($_order->getGrandTotal()) ?>getStatusLabel() ?>
    + +

    __('You have placed no orders.'); ?>

    + +
    diff --git a/app/design/frontend/default/iphone/template/sales/order/invoice/items.phtml b/app/design/frontend/default/iphone/template/sales/order/invoice/items.phtml new file mode 100644 index 0000000000..e817192a17 --- /dev/null +++ b/app/design/frontend/default/iphone/template/sales/order/invoice/items.phtml @@ -0,0 +1,44 @@ + +getOrder() ?> + +getInvoiceCollection() as $_invoice): ?> +

    __('Invoice #') ?>getIncrementId(); ?> | __('Print Invoice') ?>

    +

    __('Items Invoiced') ?>

    + + + getInvoiceTotalsHtml($_invoice)?> + + getAllItems(); ?> + + + getOrderItem()->getParentItem()) continue; ?> + getItemHtml($_item) ?> + +
    +getInvoiceCommentsHtml($_invoice)?> + diff --git a/app/design/frontend/default/iphone/template/sales/order/invoice/items/renderer/default.phtml b/app/design/frontend/default/iphone/template/sales/order/invoice/items/renderer/default.phtml new file mode 100644 index 0000000000..4670faab8c --- /dev/null +++ b/app/design/frontend/default/iphone/template/sales/order/invoice/items/renderer/default.phtml @@ -0,0 +1,312 @@ + +getItem() ?> +getItem()->getOrderItem()->getOrder() ?> + + + __('Product Name') ?> +

    escapeHtml($_item->getName()) ?>

    + getItemOptions()): ?> +
    + +
    escapeHtml($_option['label']) ?>
    + getPrintStatus()): ?> + getFormatedOptionValue($_option) ?> + class="truncated"> + + +
    +
    +
    escapeHtml($_option['label']) ?>
    +
    +
    +
    + + + +
    escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) ) ?>
    + + +
    + + getProductAdditionalInformationBlock(); ?> + + setItem($_item->getOrderItem())->toHtml(); ?> + + escapeHtml($_item->getDescription()) ?> + helper('giftmessage/message')->getIsMessagesAvailable('order_item', $_item->getOrderItem()) && $_item->getGiftMessageId()): ?> + __('Gift Message') ?> + + + + __('SKU') ?> + escapeHtml(Mage::helper('core/string')->splitInjection($this->getSku())) ?> + + __('Price') ?> + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Excl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + + getOrder()->formatPrice($this->getItem()->getPrice()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total'); ?>:
    getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?>
    +
    + + +
    +
    + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Incl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + helper('checkout')->getPriceInclTax($this->getItem()); ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + + getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total incl. tax'); ?>:
    getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?>
    +
    + + +
    + + + + + __('Qty Invoiced') ?> + getQty()*1 ?> + + + __('Subtotal') ?> + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Excl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + + getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total'); ?>:
    getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?>
    +
    + + +
    +
    + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Incl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + helper('checkout')->getSubtotalInclTax($this->getItem()); ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + + getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total incl. tax'); ?>:
    getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?>
    +
    + + + + + +
    + + + + diff --git a/app/design/frontend/default/iphone/template/sales/order/items.phtml b/app/design/frontend/default/iphone/template/sales/order/items.phtml index cf5739d6f9..ac00c81698 100644 --- a/app/design/frontend/default/iphone/template/sales/order/items.phtml +++ b/app/design/frontend/default/iphone/template/sales/order/items.phtml @@ -25,7 +25,7 @@ */ ?> getOrder() ?> - +
    getChildHtml('order_totals') ?> @@ -34,40 +34,6 @@ count(); ?> getParentItem()) continue; ?> - - getItemHtml($_item) ?> - helper('giftmessage/message')->getIsMessagesAvailable('order_item', $_item) && $_item->getGiftMessageId()): ?> - - helper('giftmessage/message')->getGiftMessageForEntity($_item); ?> - - - - + getItemHtml($_item) ?>
    - diff --git a/app/design/frontend/default/iphone/template/sales/order/items/renderer/default.phtml b/app/design/frontend/default/iphone/template/sales/order/items/renderer/default.phtml new file mode 100644 index 0000000000..bf624bb42e --- /dev/null +++ b/app/design/frontend/default/iphone/template/sales/order/items/renderer/default.phtml @@ -0,0 +1,331 @@ + +getItem(); + $_options = $this->getItemOptions(); +?> + + + __('Product Name') ?> +

    escapeHtml($_item->getName()) ?>

    + +
    + +
    escapeHtml($_option['label']) ?>
    + getPrintStatus()): ?> + getFormatedOptionValue($_option) ?> + class="truncated"> + + +
    +
    +
    escapeHtml($_option['label']) ?>
    +
    +
    +
    + + + +
    + escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) )) ?> +
    + + +
    + + getProductAdditionalInformationBlock(); ?> + + setItem($_item)->toHtml(); ?> + + escapeHtml($_item->getDescription()) ?> + helper('giftmessage/message')->getIsMessagesAvailable('order_item', $_item) && $_item->getGiftMessageId()): ?> + __('Gift Message') ?> + + + + + __('SKU') ?> + escapeHtml(Mage::helper('core/string')->splitInjection($this->getSku())) ?> + + __('Price') ?> + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Excl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + + getOrder()->formatPrice($this->getItem()->getPrice()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total'); ?>:
    getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?>
    +
    + + +
    +
    + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Incl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + helper('checkout')->getPriceInclTax($this->getItem()); ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + + getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total incl. tax'); ?>:
    getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?>
    +
    + + +
    + + + + + __('Qty') ?> + + + getItem()->getQtyOrdered() > 0): ?> + __('Ordered'); ?>: getItem()->getQtyOrdered()*1 ?>
    + + getItem()->getQtyShipped() > 0): ?> + __('Shipped'); ?>: getItem()->getQtyShipped()*1 ?>
    + + getItem()->getQtyCanceled() > 0): ?> + __('Canceled'); ?>: getItem()->getQtyCanceled()*1 ?>
    + + getItem()->getQtyRefunded() > 0): ?> + __('Refunded'); ?>: getItem()->getQtyRefunded()*1 ?>
    + +
    + + + __('Subtotal') ?> + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Excl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + + getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total'); ?>:
    getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?>
    +
    + + +
    +
    + + helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?> + + helper('tax')->displaySalesBothPrices()): ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + __('Incl. Tax'); ?>: + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + helper('checkout')->getSubtotalInclTax($this->getItem()); ?> + typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + + + + typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + + getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + + + + + + getApplied($this->getItem())): ?> + + + + typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + + __('Total incl. tax'); ?>:
    getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?>
    +
    + + + + + +
    + + + + diff --git a/app/design/frontend/default/iphone/template/sales/order/recent.phtml b/app/design/frontend/default/iphone/template/sales/order/recent.phtml index 36aa40b80b..3f546b0466 100644 --- a/app/design/frontend/default/iphone/template/sales/order/recent.phtml +++ b/app/design/frontend/default/iphone/template/sales/order/recent.phtml @@ -24,30 +24,25 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> - diff --git a/errors/default/page.phtml b/errors/default/page.phtml index 01bd06ba1a..db6a89e532 100644 --- a/errors/default/page.phtml +++ b/errors/default/page.phtml @@ -52,7 +52,7 @@ diff --git a/js/mage/adminhtml/product/composite/configure.js b/js/mage/adminhtml/product/composite/configure.js index 5de34ff9c7..9491b2e0ee 100644 --- a/js/mage/adminhtml/product/composite/configure.js +++ b/js/mage/adminhtml/product/composite/configure.js @@ -585,7 +585,7 @@ ProductConfigure.prototype = { var patternFlat = null; var replacement = null; var replacementFlat = null - var scopeArr = blockItem.id.match(/.*\[\w+\]\[([^\]\s]+)\]$/); + var scopeArr = blockItem.id.match(/.*\[\w+\]\[([^\]]+)\]$/); var itemId = scopeArr[1]; if (method == 'current_confirmed_to_form') { pattern = RegExp('(\\w+)(\\[?)'); @@ -718,7 +718,7 @@ ProductConfigure.prototype = { this.blockFormConfirmed.update(); this.blockConfirmed.childElements().each(function(blockItem) { - var scopeArr = blockItem.id.match(/.*\[(\w+)\]\[([^\]\s]+)\]$/); + var scopeArr = blockItem.id.match(/.*\[(\w+)\]\[([^\]]+)\]$/); var listType = scopeArr[1]; var itemId = scopeArr[2]; if (allowedListTypes[listType] && (!this.itemsFilter[listType] @@ -731,7 +731,7 @@ ProductConfigure.prototype = { case 'form_confirmed_to_confirmed': var listInfo = this.listTypes[this.current.listType]; this.blockFormConfirmed.childElements().each(function(blockItem) { - var scopeArr = blockItem.id.match(/.*\[(\w+)\]\[([^\]\s]+)\]$/); + var scopeArr = blockItem.id.match(/.*\[(\w+)\]\[([^\]]+)\]$/); var listType = scopeArr[1]; _renameFields(method, blockItem, listInfo.complexTypes ? listType : null); this.blockConfirmed.insert(blockItem); diff --git a/js/mage/captcha.js b/js/mage/captcha.js index 9f595f32f6..7e7ca1eac0 100644 --- a/js/mage/captcha.js +++ b/js/mage/captcha.js @@ -64,24 +64,24 @@ document.observe('billing-request:completed', function(event) { document.observe('login:setMethod', function(event) { - switch(event.memo.method){ - case 'guest': - if ($('register_during_checkout')) { - $('captcha-input-box-register_during_checkout').hide(); - $('captcha-image-box-register_during_checkout').hide(); - $('captcha-input-box-guest_checkout').show(); - $('captcha-image-box-guest_checkout').show(); + var switchCaptchaElement = function(shown, hidden) { + var inputPrefix = 'captcha-input-box-', imagePrefix = 'captcha-image-box-'; + if ($(inputPrefix + hidden)) { + $(inputPrefix + hidden).hide(); + $(imagePrefix + hidden).hide(); + } + if ($(inputPrefix + shown)) { + $(inputPrefix + shown).show(); + $(imagePrefix + shown).show(); + } + }; - } + switch (event.memo.method) { + case 'guest': + switchCaptchaElement('guest_checkout', 'register_during_checkout'); break; case 'register': - if ($('guest_checkout')) { - $('captcha-input-box-guest_checkout').hide(); - $('captcha-image-box-guest_checkout').hide(); - $('captcha-input-box-register_during_checkout').show(); - $('captcha-image-box-register_during_checkout').show(); - - } + switchCaptchaElement('register_during_checkout', 'guest_checkout'); break; } }); diff --git a/lib/Varien/Db/Adapter/Interface.php b/lib/Varien/Db/Adapter/Interface.php index 07cbfb144a..ca9706c999 100644 --- a/lib/Varien/Db/Adapter/Interface.php +++ b/lib/Varien/Db/Adapter/Interface.php @@ -58,6 +58,11 @@ interface Varien_Db_Adapter_Interface const INTERVAL_MONTH = 'MONTHS'; const INTERVAL_YEAR = 'YEARS'; + /** + * Error message for DDL query in transactions + */ + const ERROR_DDL_MESSAGE = 'DDL statements are not allowed in transactions'; + /** * Begin new DB transaction for connection * diff --git a/lib/Varien/Db/Adapter/Pdo/Mysql.php b/lib/Varien/Db/Adapter/Pdo/Mysql.php index 257efefc00..d5e9db67a7 100644 --- a/lib/Varien/Db/Adapter/Pdo/Mysql.php +++ b/lib/Varien/Db/Adapter/Pdo/Mysql.php @@ -396,7 +396,7 @@ protected function _checkDdlTransaction($sql) if (is_string($sql) && $this->getTransactionLevel() > 0) { $startSql = strtolower(substr(ltrim($sql), 0, 3)); if (in_array($startSql, $this->_ddlRoutines)) { - throw new Zend_Db_Adapter_Exception('DDL statements are not allowed in transactions'); + trigger_error(Varien_Db_Adapter_Interface::ERROR_DDL_MESSAGE, E_USER_ERROR); } } } diff --git a/skin/adminhtml/default/default/oauth-simple.css b/skin/adminhtml/default/default/oauth-simple.css new file mode 100644 index 0000000000..abc19e2734 --- /dev/null +++ b/skin/adminhtml/default/default/oauth-simple.css @@ -0,0 +1,239 @@ +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package base_default + * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + + /* Reset ================================================================================= */ +* { margin:0; padding:0; } +body { background:#496778 50% 0 repeat-y; font:12px/1.55 Arial, Helvetica, sans-serif; color:#2f2f2f; text-align:center; } +img { border:0; vertical-align:top; } +a { color:#1e7ec8; text-decoration:underline; } +a:hover { text-decoration:none; } +:focus { outline:0; } + +/* Headings */ +h1,h2,h3, +h4,h5,h6 { margin:0 0 5px; line-height:1.35; color:#0a263c; } +h1 { font-size:20px; font-weight:normal; } +h2 { font-size:18px; font-weight:normal; } +h3 { font-size:16px; font-weight:bold; } +h4 { font-size:14px; font-weight:bold; } +h5 { font-size:12px; font-weight:bold; } +h6 { font-size:11px; font-weight:bold; } + +/* Forms */ +form { display:inline; } +fieldset { border:0; } +legend { display:none; } + +/* Table */ +table { border:0; /*border-collapse:collapse;*/ border-spacing:0; empty-cells:show; font-size:100%; } +caption,th,td { vertical-align:top; text-align:left; font-weight:normal; } + +/* Content */ +p { margin:0 0 10px; } +strong { font-weight:bold; } +address { font-style:normal; line-height:1.35; } +cite { font-style:normal; } +q, +blockquote { quotes:none; } +q:before, +q:after { content:''; } +small,big { font-size:1em; } +/*sup { font-size:1em; vertical-align:top; }*/ + +/* Lists */ +ul,ol { list-style:none; } + +/* Tools */ +.hidden { display:block !important; border:0 !important; margin:0 !important; padding:0 !important; font-size:0 !important; line-height:0 !important; width:0 !important; height:0 !important; overflow:hidden !important; } +.nobr { white-space:nowrap !important; } +.wrap { white-space:normal !important; } +.a-left { text-align:left !important; } +.a-center { text-align:center !important; } +.a-right { text-align:right !important; } +.v-top { vertical-align:top; } +.v-middle { vertical-align:middle; } +.f-left, +.left { float:left !important; } +.f-right, +.right { float:right !important; } +.f-none { float:none !important; } +.f-fix { float:left; width:100%; } +.no-display { display:none; } +.no-margin { margin:0 !important; } +.no-padding { padding:0 !important; } +.no-bg { background:none !important; } +/* ======================================================================================= */ + +/* Default styles ======================================================================== */ +/* boxes.css*/ +.notification-global { + background: url("./images/error_msg_icon.gif") no-repeat scroll 27px 5px #FFF9E9; + border-bottom: 1px solid #EEE2BE; + border-top: 1px solid #EEE2BE; + color: #444444; + font-size: 11px; + line-height: 16px; + margin: 0 0 -3px; + padding: 5px 27px 5px 47px; + position: relative; +} +.notification-global-notice { + background-image: url("./images/note_msg_icon.gif"); +} +.notification-global .label { + color: #EB5E00; +} +.notification-global .clickable { + cursor: pointer; +} +.notification-global span.critical { + color: #D20000; +} +.notification-global a:hover { + text-decoration: none; +} +.error, a.error span, .required, .validation-advice { + color: #D40707 !important; + font-weight: bold !important; +} +.notice { + color: #EA7601; +} +.messages ul { + border: 0 none !important; +} +.messages li { + font-size: 0.95em !important; + font-weight: bold !important; + margin-bottom: 11px !important; + min-height: 23px !important; + padding: 8px 8px 2px 32px !important; +} +.messages ul li { + border: 0 none !important; + margin: 0 0 3px !important; + padding: 0 !important; +} +.error-msg { + background: url("./images/error_msg_icon.gif") no-repeat scroll 10px 10px #FAEBE7 !important; + border: 1px solid #F16048 !important; + color: #DF280A !important; +} +.success-msg { + background: url("./images/success_msg_icon.gif") no-repeat scroll 10px 10px #EFF5EA !important; + border: 1px solid #95A486 !important; + color: #3D6611 !important; +} +.notice-msg { + background: url("./images/note_msg_icon.gif") no-repeat scroll 10px 10px #FFFBF0 !important; + border: 1px solid #FFD967 !important; + color: #3D6611 !important; +} +.warning-msg { + background: url("./images/warning_msg_icon.gif") no-repeat scroll 10px 10px #E6E6E6 !important; + border: 1px solid #666E73 !important; + color: #000000 !important; +} + +button:hover, .form-button:hover { + background: url("./images/btn_over_bg.gif") repeat-x scroll 0 0 #F77C16; +} +button:active, .form-button:active { + background: url("./images/btn_on_bg.gif") repeat-x scroll 0 0 #F77C16; +} +button span { + background-position: 0 50%; + background-repeat: no-repeat; + line-height: 1.35em; +} +button span span { + background: none repeat scroll 0 0 transparent !important; + display: inline !important; + margin: 0 !important; + padding: 0 !important; +} + + +input.input-text, textarea, select { + background: none repeat scroll 0 0 #FFFFFF; + border-color: #AAAAAA #C8C8C8 #C8C8C8 #AAAAAA; + border-style: solid; + border-width: 1px; + font: 12px arial,helvetica,sans-serif; +} +input.input-text, textarea { + padding: 2px; +} +button, .form-button { + background: url("./images/btn_bg.gif") repeat-x scroll 0 100% #FFAC47; + border-color: #ED6502 #A04300 #A04300 #ED6502; + border-style: solid; + border-width: 1px; + color: #FFFFFF; + cursor: pointer; + font: bold 12px arial,helvetica,sans-serif; + padding: 0 7px 1px; + text-align: center !important; + white-space: nowrap; +} +/* ======================================================================================= */ + + +*, html {text-align: left;} + +h1 { + color: #D12C01; + font-size: 22px; + font-weight: normal; + margin: 0; + text-align: left; +} + +h2 { + color: #444444; + font: 16px Arial,Helvetica,sans-serif; + margin: 0 0 5px; + text-align: left; +} + +body, +.main-container, +.header-container {background: none;} + +.header-simple {height: 60px; text-align: left; padding: 10px 10px 0 10px; border-bottom: 1px solid #CFCFCF;} +.header-top img {height: 60px;} + +.login-box > div {padding: 10px;} +.page-title {margin-bottom: 0; border-bottom: 1px solid #CFCFCF;} + +.form-box {border-bottom: 1px solid #CFCFCF;} +.form-box .fieldset, .form-box fieldset {width: 320px; margin: 0 auto;} + +.input-box {margin-bottom: 10px;} +.input-box label {width: 95px; font-weight: bold; display: block; float: left; text-align: right; padding-right: 10px;} +.input-box input {width: 209px;} + +.required {font-weight: normal; color: #D40707 !important; font-size: 11px;} +.form-buttons {text-align: right;} diff --git a/skin/frontend/base/default/images/cvv.gif b/skin/frontend/base/default/images/cvv.gif index 6d6e9f2907839d58c27ec8de8644f30fc8b4467c..6d49784489f2ea812202191c5f4d065b0686bb93 100644 GIT binary patch literal 19277 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 diff --git a/skin/frontend/base/default/js/checkout/review.js b/skin/frontend/base/default/js/checkout/review.js index 20a51f5f15..bc3a8439a7 100644 --- a/skin/frontend/base/default/js/checkout/review.js +++ b/skin/frontend/base/default/js/checkout/review.js @@ -197,7 +197,7 @@ OrderReviewController.prototype = { var newId = el.id.replace('shipping:','billing:'); if (newId && $(newId) && $(newId).type != 'hidden') { $(newId).value = el.value; - $(newId).setAttribute('readonly', 'readonly'); + $(newId).setAttribute('readOnly', 'readonly'); $(newId).addClassName('local-validation'); $(newId).setStyle({opacity:.5}); $(newId).disable(); @@ -219,7 +219,7 @@ OrderReviewController.prototype = { this._clearValidation('billing'); } else { $$('[id^="billing:"]').invoke('enable'); - $$('[id^="billing:"]').invoke('removeAttribute', 'readonly'); + $$('[id^="billing:"]').each(function(el){el.removeAttribute("readOnly");}); $$('[id^="billing:"]').invoke('removeClassName', 'local-validation'); $$('[id^="billing:"]').invoke('setStyle', {opacity:1}); } diff --git a/skin/frontend/default/blank/images/cvv.gif b/skin/frontend/default/blank/images/cvv.gif index 6d6e9f2907839d58c27ec8de8644f30fc8b4467c..6d49784489f2ea812202191c5f4d065b0686bb93 100644 GIT binary patch literal 19277 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 diff --git a/skin/frontend/default/blue/css/styles.css b/skin/frontend/default/blue/css/styles.css index c5226c7c5f..f9df3bbac2 100644 --- a/skin/frontend/default/blue/css/styles.css +++ b/skin/frontend/default/blue/css/styles.css @@ -1160,6 +1160,8 @@ std ul, .cart-table .item-msg { margin:5px 0; font-size:11px; font-weight:bold; color:#df280a; } .cart-table tfoot td { padding:5px 10px; } .cart-table .btn-continue { float:left; } +.cart-table .btn-update { float:right; margin-left:10px; } +.cart-table .btn-empty { float:right; } /* Shopping Cart Collateral boxes */ .cart .cart-collaterals { padding:25px 0 0; } diff --git a/skin/frontend/default/default/css/oauth-simple.css b/skin/frontend/default/default/css/oauth-simple.css new file mode 100644 index 0000000000..87f7e41fcb --- /dev/null +++ b/skin/frontend/default/default/css/oauth-simple.css @@ -0,0 +1,239 @@ +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_default + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + + /* Reset ================================================================================= */ +* { margin:0; padding:0; } +body { background:#496778 50% 0 repeat-y; font:12px/1.55 Arial, Helvetica, sans-serif; color:#2f2f2f; text-align:center; } +img { border:0; vertical-align:top; } +a { color:#1e7ec8; text-decoration:underline; } +a:hover { text-decoration:none; } +:focus { outline:0; } + +/* Headings */ +h1,h2,h3, +h4,h5,h6 { margin:0 0 5px; line-height:1.35; color:#0a263c; } +h1 { font-size:20px; font-weight:normal; } +h2 { font-size:18px; font-weight:normal; } +h3 { font-size:16px; font-weight:bold; } +h4 { font-size:14px; font-weight:bold; } +h5 { font-size:12px; font-weight:bold; } +h6 { font-size:11px; font-weight:bold; } + +/* Forms */ +form { display:inline; } +fieldset { border:0; } +legend { display:none; } + +/* Table */ +table { border:0; /*border-collapse:collapse;*/ border-spacing:0; empty-cells:show; font-size:100%; } +caption,th,td { vertical-align:top; text-align:left; font-weight:normal; } + +/* Content */ +p { margin:0 0 10px; } +strong { font-weight:bold; } +address { font-style:normal; line-height:1.35; } +cite { font-style:normal; } +q, +blockquote { quotes:none; } +q:before, +q:after { content:''; } +small,big { font-size:1em; } +/*sup { font-size:1em; vertical-align:top; }*/ + +/* Lists */ +ul,ol { list-style:none; } + +/* Tools */ +.hidden { display:block !important; border:0 !important; margin:0 !important; padding:0 !important; font-size:0 !important; line-height:0 !important; width:0 !important; height:0 !important; overflow:hidden !important; } +.nobr { white-space:nowrap !important; } +.wrap { white-space:normal !important; } +.a-left { text-align:left !important; } +.a-center { text-align:center !important; } +.a-right { text-align:right !important; } +.v-top { vertical-align:top; } +.v-middle { vertical-align:middle; } +.f-left, +.left { float:left !important; } +.f-right, +.right { float:right !important; } +.f-none { float:none !important; } +.f-fix { float:left; width:100%; } +.no-display { display:none; } +.no-margin { margin:0 !important; } +.no-padding { padding:0 !important; } +.no-bg { background:none !important; } +/* ======================================================================================= */ + +/* Default styles ======================================================================== */ +/* boxes.css*/ +.notification-global { + background: url("./../images/error_msg_icon.gif") no-repeat scroll 27px 5px #FFF9E9; + border-bottom: 1px solid #EEE2BE; + border-top: 1px solid #EEE2BE; + color: #444444; + font-size: 11px; + line-height: 16px; + margin: 0 0 -3px; + padding: 5px 27px 5px 47px; + position: relative; +} +.notification-global-notice { + background-image: url("./../images/note_msg_icon.gif"); +} +.notification-global .label { + color: #EB5E00; +} +.notification-global .clickable { + cursor: pointer; +} +.notification-global span.critical { + color: #D20000; +} +.notification-global a:hover { + text-decoration: none; +} +.error, a.error span, .required, .validation-advice { + color: #D40707 !important; + font-weight: bold !important; +} +.notice { + color: #EA7601; +} +.messages ul { + border: 0 none !important; +} +.messages li { + font-size: 0.95em !important; + font-weight: bold !important; + margin-bottom: 11px !important; + min-height: 23px !important; + padding: 8px 8px 2px 32px !important; +} +.messages ul li { + border: 0 none !important; + margin: 0 0 3px !important; + padding: 0 !important; +} +.error-msg { + background: url("./../images/error_msg_icon.gif") no-repeat scroll 10px 10px #FAEBE7 !important; + border: 1px solid #F16048 !important; + color: #DF280A !important; +} +.success-msg { + background: url("./../images/success_msg_icon.gif") no-repeat scroll 10px 10px #EFF5EA !important; + border: 1px solid #95A486 !important; + color: #3D6611 !important; +} +.notice-msg { + background: url("./../images/note_msg_icon.gif") no-repeat scroll 10px 10px #FFFBF0 !important; + border: 1px solid #FFD967 !important; + color: #3D6611 !important; +} +.warning-msg { + background: url("./../images/warning_msg_icon.gif") no-repeat scroll 10px 10px #E6E6E6 !important; + border: 1px solid #666E73 !important; + color: #000000 !important; +} + +button:hover, .form-button:hover { + background: #F77C16; +} +button:active, .form-button:active { + background: #F77C16; +} +button span { + background-position: 0 50%; + background-repeat: no-repeat; + line-height: 1.35em; +} +button span span { + background: none repeat scroll 0 0 transparent !important; + display: inline !important; + margin: 0 !important; + padding: 0 !important; +} + + +input.input-text, textarea, select { + background: none repeat scroll 0 0 #FFFFFF; + border-color: #AAAAAA #C8C8C8 #C8C8C8 #AAAAAA; + border-style: solid; + border-width: 1px; + font: 12px arial,helvetica,sans-serif; +} +input.input-text, textarea { + padding: 2px; +} +button, .form-button { + background: #FFAC47; + border-color: #ED6502 #A04300 #A04300 #ED6502; + border-style: solid; + border-width: 1px; + color: #FFFFFF; + cursor: pointer; + font: bold 12px arial,helvetica,sans-serif; + padding: 0 7px 1px; + text-align: center !important; + white-space: nowrap; +} +/* ======================================================================================= */ + + +*, html {text-align: left;} + +h1 { + color: #D12C01; + font-size: 22px; + font-weight: normal; + margin: 0; + text-align: left; +} + +h2 { + color: #444444; + font: 16px Arial,Helvetica,sans-serif; + margin: 0 0 5px; + text-align: left; +} + +body, +.main-container, +.header-container {background: none;} + +.header-simple {height: 60px; text-align: left; padding: 10px 10px 0 10px; border-bottom: 1px solid #CFCFCF;} +.header-top img {height: 60px;} + +.login-box > div {padding: 10px;} +.page-title {margin-bottom: 0; border-bottom: 1px solid #CFCFCF;} + +.form-box {border-bottom: 1px solid #CFCFCF;} +.form-box .fieldset, .form-box fieldset {width: 320px; margin: 0 auto;} + +.input-box {margin-bottom: 10px;} +.input-box label {width: 95px; font-weight: bold; display: block; float: left; text-align: right; padding-right: 10px;} +.input-box input {width: 209px;} + +.required {font-weight: normal; color: #D40707 !important; font-size: 11px;} +.form-buttons {text-align: right;} diff --git a/skin/frontend/default/default/css/styles.css b/skin/frontend/default/default/css/styles.css index 0ef097e419..428f2fba45 100644 --- a/skin/frontend/default/default/css/styles.css +++ b/skin/frontend/default/default/css/styles.css @@ -189,7 +189,6 @@ input.input-text:focus,select:focus,textarea:focus { background-color:#edf7fd; } .form-list li.additional-row .btn-remove { float:right; margin:5px 0 0; } .form-list .input-range input.input-text { width:74px; } - .form-list-narrow li { margin-bottom:0; } .form-list-narrow li .input-box { margin-bottom:6px; } .form-list-narrow li.wide .input-box { width:260px; } @@ -1193,8 +1192,12 @@ tr.summary-details-excluded { font-style:italic; } .cart-table .item-msg { margin:5px 0; font-size:11px; font-weight:bold; color:#df280a; } .cart-table tfoot td { padding:5px 10px; } .cart-table .btn-continue { float:left; } +.cart-table .btn-empty span, .cart-table .btn-continue span, .cart-table .btn-update span { border-color:#406a83; background:#618499; } +.cart-table .btn-update, +.cart-table .btn-empty { float:right; } +.cart-table .btn-update { margin-left:10px; } /* Shopping Cart Collateral boxes */ .cart .cart-collaterals { padding:25px 0 0; } diff --git a/skin/frontend/default/default/images/cvv.gif b/skin/frontend/default/default/images/cvv.gif index 6d6e9f2907839d58c27ec8de8644f30fc8b4467c..6d49784489f2ea812202191c5f4d065b0686bb93 100644 GIT binary patch literal 19277 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 diff --git a/skin/frontend/default/iphone/css/custom.css b/skin/frontend/default/iphone/css/custom.css new file mode 100644 index 0000000000..1af327df4b --- /dev/null +++ b/skin/frontend/default/iphone/css/custom.css @@ -0,0 +1,65 @@ +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +/* Theme options */ + +/* Links Color */ +a { color:#1394ca; } + +/* Main color */ +body > header, +body > footer ul, +body > address.copyright { background-color:#e76212; } + +/* Button Color */ +.map-popup-checkout button, +.more-button, +.btn-checkout, +.account-login button, +.add-to-links > li > a, +.cart-table tfoot button, +.opc .buttons-set button, +.checkout-success button, +.box-reviews .buttons-set button, +.my-account .form-buttons button, +#contactForm .buttons-set button, +.giftregistry .buttons-set button, +.wishlist-view .buttons-set button, +.send-to-friend .buttons-set button, +.account-create .buttons-set button, +.add-to-links > li .split-button strong, +.catalog-product-gallery .buttons-set a, +.my-account .my-rewards .buttons-set button, +.my-account .my-wishlist .buttons-set button, +.product-view .product-shop .add-to-box button, +.popup-block .block-content .buttons-set button, +.customer-account-forgotpassword .buttons-set button, +.product-view .product-options-bottom .add-to-cart button, +.my-account .billing-agreements .box-content .form-list select + button { background-color:#e76212; } + +/* Main Page Navigation links color */ +#nav-container li a { color:#111; } + +/* Buttons background color */ +.form-subscribe button { background:green; } diff --git a/skin/frontend/default/iphone/css/iphone.css b/skin/frontend/default/iphone/css/iphone.css index 61e82e03a4..e93231b460 100644 --- a/skin/frontend/default/iphone/css/iphone.css +++ b/skin/frontend/default/iphone/css/iphone.css @@ -31,70 +31,247 @@ form, fieldset, ul, li, dl, dt, dd { background:transparent; border:0; font-size:100%; margin:0; outline:0; padding:0; vertical-align:baseline; } img { vertical-align:bottom; } ul { list-style:none; } -a { color:#000; text-decoration:none; } -input, select { font-size:14px; vertical-align:middle; } +a { color:#1394ca; text-decoration:none; } /* Page -----------------------------*/ -html { -webkit-text-size-adjust:none; } +html { -webkit-text-size-adjust:none; overflow-y:scroll; } html, body { height:100%; } -body { background:#fefefe; font:12px/18px HelveticaNeue, Helvetica, sans-serif; min-height:100%; } -h1 { font-size:14px; font-weight:bold; line-height:14px; text-align:center; } -h2 { font-size:12px; font-weight:normal; line-height:20px; } - -button:active { position:relative; top:1px; left:1px; } +body { background:#fff; font:15px/18px HelveticaNeue, Helvetica, sans-serif; min-height:100%; } legend { display:none; } -.messages .notice-msg, -.messages .error-msg, -.messages .success-msg { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #FFE38D), color-stop(100%, #FFD040)); - background:-o-linear-gradient(top, #FFE38D 0%, #FFD040 100%); +.std { clear:both; margin:10px 0; } + +.a-left { text-align:left; } +.a-center { text-align:center; } +.a-right { text-align:right; } + +.global-site-notice { background:#444; border-bottom:1px solid #333; color:#fff; font-size:13px; padding:10px; text-shadow:0 1px 0 #111; } +.global-site-notice p { margin:0 0 10px; } +.global-site-notice a { color:#f90; text-decoration:underline; text-shadow:none; } +.global-site-notice .actions { text-align:center; } +.global-site-notice .actions button { background:none; border:1px solid #ccc; color:#fff; cursor:pointer; padding:5px 10px; text-shadow:0 1px 0 #333; } + +input.input-text, +input[type="text"], +input[type="password"], +input[type="email"] { + background:#fff; + border:1px solid #e4e4e4; + border-radius:2px; + font-size:15px; + margin:0; + padding:5px; + width:100%; + -webkit-appearance:none; + -webkit-box-sizing:border-box; + box-sizing:border-box; + -webkit-box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); + -moz-box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); + box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); +} + +textarea { + border:1px solid; + border-color:#e4e4e4; + border-radius:2px; padding:5px; - color:#222; + font:15px/18px HelveticaNeue, Helvetica, sans-serif; + height:100px; + width:100%; + resize:vertical; + -webkit-appearance:none; + -webkit-box-sizing:border-box; + box-sizing:border-box; + -webkit-box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); + -moz-box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); + box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); +} + + +select, .select-multiple { + background:url(../images/i_dropdown.png) no-repeat right #fefefe; + border:1px solid #e4e4e4; + -webkit-border-radius:2px; + -moz-border-radius:2px; + border-radius:2px; + color:#333; + font:15px/18px HelveticaNeue, Helvetica, sans-serif; + padding:5px 30px 5px 5px; + width:100%; + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, .1); + -moz-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, .1); + box-shadow:inset 1px 1px 1px rgba(0, 0, 0, .1); +} +select:disabled { background:#f5f5f5; } +.select-multiple-wrap { position:relative; } +.select-multiple { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; position:relative; } +.select-multiple-options-wrap { + background:#fff; + border:1px solid #e4e4e4; + border-radius:2px; + position:absolute; + top:-5px; + left:-5px; + right:-5px; + visibility:hidden; + -webkit-box-shadow:0 3px 6px rgba(0, 0, 0, .25); + -moz-box-shadow:0 3px 6px rgba(0, 0, 0, .25); + box-shadow:0 3px 6px rgba(0, 0, 0, .25); + z-index:1; +} +.select-multiple-options-wrap .select-heading { + border-bottom:1px solid #e4e4e4; + color:#424242; font-weight:bold; - text-shadow:0 1px 0 #eee; - -webkit-box-shadow:0 3px 3px #ccc; - box-shadow:0 3px 3px #ccc; + font-size:15px; + line-height:20px; + padding:10px; + white-space:nowrap; + overflow:hidden; + text-overflow:ellipsis; } -.messages .error-msg { - color:#fff; - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); - background-image:-o-linear-gradient(top, #ee5f5b 0%, #c43c35 100%); - text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); -} -.messages .success-msg { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); - background-image:-o-linear-gradient(top, #62c462 0%, #57a957 100%); - border:solid #3D773D; - border-width:1px 0; - color:#fff; - text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); - margin-bottom:10px; +.select-multiple-options-wrap .select-close { + cursor:pointer; + color:#999; + display:inline-block; + float:right; + font-size:18px; + line-height:1; + text-align:center; + height:20px; + width:20px; +} +.select-multiple .selected-counter { + background:#fff; + color:#999; + display:inline-block; + font-size:12px; + font-weight:bold; + padding:2px 5px 5px 10px; + position:absolute; + top:3px; + bottom:0; + right:25px; +} +.select-multiple-options { + list-style:none; + margin:0 auto; + padding:0; +} +.select-multiple-options li { + border-bottom:1px solid #e4e4e4; + cursor:pointer; + margin:0 !important; + padding:10px 10px 10px 38px; + position:relative; +} +.select-multiple-options li.active { + background:#f5f5f5; +} +.select-multiple-options li:after { + content:''; + display:block; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAKCAYAAABv7tTEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDAxRDg0NzcxQjdEMTFFMUE1RjVCOUQyODJGQTNDMEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDAxRDg0NzgxQjdEMTFFMUE1RjVCOUQyODJGQTNDMEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMDFEODQ3NTFCN0QxMUUxQTVGNUI5RDI4MkZBM0MwQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMDFEODQ3NjFCN0QxMUUxQTVGNUI5RDI4MkZBM0MwQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv02V7QAAABZSURBVHjalM5BDoAwCATAfUXj/7/Dbzx43QppCW0U5bAh0AwUJPEnItIA8K4lcCqyFMFlfRXo3B/m4AsY8n8GmIF56dhhBgyNzREyA44e4CtYUIQZ0HQBBgCyITMDEAMA1AAAAABJRU5ErkJggg==) no-repeat 0 0; + height:10px; + width:13px; + position:absolute; + top:15px; + left:15px; + opacity:0.2; +} +.select-multiple-options li.active:after { + opacity:1; +} +.select-multiple-options li:last-child { + border-bottom:none; +} +.select-multiple-options li + li { + border-top:1px linear #fff; } +.pager select { width:auto; } + +a.btn-remove, + .btn-remove2 { background:url(../images/btn_remove.png) no-repeat center; display:inline-block; overflow:hidden; text-indent:-100%; height:25px; width:25px; } +a.link-edit { background:url(../images/btn_edit.png) no-repeat left; display:inline-block; font-size:11px; font-weight:normal; line-height:18px; padding:0 0 0 23px; } + +.reward-message, +.messages .note-msg, +.messages .error-msg, +.messages .notice-msg, +.messages .success-msg { background:#444; color:#fff; padding:10px; text-shadow:0 1px 0 #111; } + .no-display { display:none; } .nobr { white-space:nowrap; } +.window-overlay { display:none; } + +.map-popup, +.popup-block, +.remember-me-popup { + background:#fcfcfc; + position:absolute; + left:15px !important; + right:15px !important; + margin:-18px 0 0; + padding:15px; + -webkit-box-shadow:0 2px 6px rgba(0, 0, 0, .25); + -moz-box-shadow:0 2px 6px rgba(0, 0, 0, .25); + box-shadow:0 2px 6px rgba(0, 0, 0, .25); +} +.popup-block { background:#fff; display:none; position:fixed; top:50%; left:50%; margin:-60px 0 0 -140px; width:250px; } +.popup-block .form-list { margin:0 0 15px; } +.popup-block .block-title { display:none; } +.popup-block .buttons-set button { display:inline-block !important; margin-right:1px !important; width:49% !important; } +.popup-block.active { display:block; } + +.map-popup-close { float:right; } +.map-popup-heading, +.map-popup-checkout, +.map-popup-price { margin:0 0 10px; } +.map-popup-price .special-price .price-label { color:#222; } +.map-popup-price .special-price .price { font-weight:bold; } + +.remember-me-popup-body { line-height:20px; } +.remember-me-popup-close { + background:#fff; + border:1px solid #e4e4e4; + color:#424242; + display:block; + margin:15px auto 0; + text-align:center; + font-weight:bold; + font-variant:small-caps; + text-transform:lowercase; + text-shadow:0 -1px 0 #eee; + padding:5px 10px; + width:100px; + -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, .1); + -moz-box-shadow:0 1px 2px rgba(0, 0, 0, .1); + box-shadow:0 1px 2px rgba(0, 0, 0, .1); } + +#remember-me-box a { font-weight:bold; border-bottom:1px dashed; } + /* Header -----------------------------*/ body > header { - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#999999), color-stop(50%,#504f50), color-stop(51%,#282728), color-stop(100%,#110f0f)); - background-image:-webkit-linear-gradient(top, #999999 0%,#504f50 50%,#282728 51%,#110f0f 100%); - background-image:-o-linear-gradient(top, #999999 0%, #504f50 50%,#282728 51%, #110f0f 100%); - background-color:#222; + background:url(../images/bg_gradient.png) repeat-x 0 0; /* Theme color1 */ box-sizing:border-box; display:table; - padding:5px; position:relative; width:100%; - -webkit-box-shadow:0 3px 3px rgba(0, 0, 0, 0.25); - box-shadow:0 3px 3px rgba(0, 0, 0, 0.25); - z-index:100; - height:34px; + height:45px; + z-index:102; -webkit-user-select:none; -webkit-transform:translate3d(0, 0, 1px); -webkit-transform-style:preserve-3d; @@ -107,89 +284,25 @@ body > header.no-shadow { box-shadow:none; } -.cart-wrap { - background:#111; - position:absolute; - top:0; - left:0; - right:0; - padding:2px; - z-index:99; - visibility:hidden; - -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.5); - box-shadow:0 0 5px rgba(0, 0, 0, 0.5); - -webkit-transform:translate3d(0, -100%, 0); -} -.cart-wrap:after { - content:''; - display:block; - position:absolute; - margin-top:44px; -} - -.cart-wrap .cart-shared { - margin:0; -} - -.cart-wrap.animate { - -webkit-backface-visibility:hidden; - -webkit-transition:-webkit-transform 300ms ease-out; -} - -.cart-wrap.cart-short .cart-wrap-content #discount-coupon-form, -.cart-wrap.cart-short .cart-wrap-content .cart-footer { - display:none; -} - -.cart-wrap-content { - background:#fefefe; - color:#222; - padding:5px 10px 0; - overflow:hidden; - position:relative; - z-index:1; - -webkit-box-shadow:inset 0 0 3px rgba(0, 0, 0, 0.25); - box-shadow:inset 0 0 3px rgba(0, 0, 0, 0.25); -} - -.cart-wrap-content .page-title { - background:none; - border:none; - margin:0 -10px 0; - -webkit-box-shadow:none; - box-shadow:none; -} - -.cart-wrap-content .cart-empty { - text-align:center; - padding-bottom:5px; -} +.global-site-notice { -webkit-transform:translate3d(0, 0, 1px); } -.cart-wrap-content .breadcrumbs, -.cart-wrap-content .messages { - display:none; -} +.cart-empty { padding:15px; } -.cart-wrap-content .cart-shared .cart-table { - margin:0; +.header-bg { + background:url(../images/custom/bg_header.png) no-repeat center #fff; + height:45px; + -webkit-user-select:none; + -webkit-transform:translate3d(0, 0, 1px); + -webkit-transform-style:preserve-3d; + -webkit-tap-highlight-color:rgba(0,0,0,0); + -webkit-touch-callout:none; } -.cart-wrap-content .cart-footer .checkout-types li button { - padding:5px 10px; -} +.header-bg .header-logo { background:url(../images/custom/bg_logo.png) no-repeat 0 0; display:block; height:45px; position:absolute; width:100%; } -body > header .store-logo, body > header .menu-wrapper { - display:table-cell; - vertical-align:middle; - width:70%; -} -body > header .store-logo { - width:30%; -} - -body > header .store-logo img { - height:34px; + display:table; + width:100%; } body > header .menu-wrapper { @@ -197,26 +310,25 @@ body > header .menu-wrapper { } body > header dl { - display:table; - float:right; - background:rgba(0,0,0,0.2); - border:1px solid #666; - border-radius:5px; - white-space:nowrap; + display:table-cell; + min-width:100px; + width:100px; + vertical-align:top; } body > header dt, body > header dd { - display:inline-block; + display:block; } +body > header dt { background:url(../images/bg_divider.png) no-repeat right; float:left; padding:0 1px 0 0; height:45px; text-indent:-100%; width:49px; } + body > header dd { position:absolute; top:0; left:0; padding:10px; white-space:normal; - width:100%; margin-top:44px; visibility:hidden; -webkit-box-sizing:border-box; @@ -228,151 +340,98 @@ body > header dd { body > header dd { -webkit-transform:translate3d(0, -100%, -1px); } } -body > header dd.search-box { - background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333), to(#000)); - background-image:-o-linear-gradient(top, #333 0%, #000 100%); - background-color:#333; - border-top:1px solid #666; - padding:7px 5px; - -webkit-transition:-webkit-transfrom 300ms linear; +body > header .search { + display:table-cell; + padding:5px 15px; + vertical-align:middle; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-results-button, +input[type="search"]::-webkit-search-results-decoration { + display: none; } -body > header dd.search-box input { +body > header .search input { + background:url(../images/i_search.png) no-repeat 8px 6px #fff; border:none; + box-sizing:border-box; + color:#949494; outline:none; - background:url(../images/search_icon.png) no-repeat 8px 7px #fff; - -webkit-background-size:14px 14px; - background-size:14px 14px; - -webkit-background-origin:padding-box; - background-origin:padding-box; - padding:5px 10px 5px 25px; + font-size:18px; + line-height:1; margin:0; + padding:4px 5px 4px 30px; width:100%; - border-radius:14px; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-border-radius:14px; - border-radius:14px; + + border-radius:15px; + -webkit-appearance:none; - -webkit-box-shadow:inset 0 1px 3px #000; - box-shadow:inset 0 1px 3px #000; + appearance:none; + + -webkit-box-shadow:inset 0 1px 1px #555; + -moz-box-shadow:inset 0 1px 1px #555; + box-shadow:inset 0 1px 1px #555; } -body > header dt a { - color:#fff; - text-decoration:none; - display:inline-block; - line-height:32px; - padding:0 25px; +.search-autocomplete { + background:#333; } - -body > header dt.active a, -body > header dt.active span:first-child { - background-color:#333; - border:solid #666; - border-width:1px 1px 0; - margin:-1px -1px -8px; - padding:1px 25px 8px; - position:relative; - line-height:30px; - border-top-left-radius:5px; - border-top-right-radius:5px; - -webkit-background-clip:padding-box; - background-clip:padding-box; +.search-autocomplete li { + color:#fff; + font-size:14px; + padding:5px; } +.search-autocomplete li + li { border-bottom:1px solid #999; } +.search-autocomplete .amount { background:#fff; border-radius:15px; color:#111; display:inline-block; font-size:8px; margin-right:10px; padding:0 5px; vertical-align:middle; } -body > header dt.search > a { - background-image:url(../images/i_menu_search.png); - background-position:18px 10px; - background-repeat:no-repeat; - text-indent:-999em; -} +body > header dt a {} -body > header dt.cart:before, -body > header dt.cart:after { - content:''; - display:inline-block; - vertical-align:middle; - height:20px; - width:1px; - background:#666; -} +body > header dt.cart-icon { position:relative; white-space:nowrap; overflow:hidden; } +body > header dt.cart-icon > a { background:url(../images/i_cart.png) no-repeat center; display:block; height:45px; } -body > header dt.cart { - position:relative; -} +body > header dt.menu > a { background:url(../images/i_menu.png) no-repeat center; display:block; height:45px; position:relative; } -body > header dt.cart > span:first-child { - display:inline-block; - line-height:32px; - width:50px; - background-image:url(../images/i_menu_cart.png); - background-position:center 10px; - background-repeat:no-repeat; - text-indent:-999em; -} -body > header dt.active span:first-child { - margin:-1px -6px -7px; - padding:0 30px 7px; - width:0; -} +body > header dt.cart-icon.active > a, +body > header dt.menu.active > a { background-color:rgba(0, 0, 0, .10); } -body > header dt.cart > span:nth-child(2), +body > header dt.cart-icon > span:nth-child(2), body > header .badge { - background-image:-webkit-gradient( - linear, - 0 0, - 0 100%, - color-stop(1, #af0002), - color-stop(0.62, #e1262f), - color-stop(0.6, #e75159), - color-stop(0, #f6bec1) - ); - background-image:-o-linear-gradient(top, #f6bec1 0%, #e75159 60%, #e1262f 62%, #af0002 100%); - border:2px solid #fff; - border-radius:15px; + background:none; display:inline-block; color:#fff; - font-size:14px; + height:auto; + font-size:12px; font-weight:bold; line-height:14px; - padding:0 4px 2px; position:absolute; - right:-5px; - top:-5px; - -webkit-box-shadow:0 3px 3px rgba(0, 0, 0, 0.5); - box-shadow:0 3px 3px rgba(0, 0, 0, 0.5); - -webkit-background-clip:padding-box; - background-clip:padding-box; + text-indent:0; + right:4px; + top:4px; z-index:100; + text-shadow:0 1px 0 #444; } + body > header dt.menu .badge { top:1px; right:5px; } -body > header dt.menu > a { - background-image:none; - text-shadow:0 -1px 0 rgba(0, 0, 0, 0.8); - font-size:12px; - font-weight:bold; - position:relative; -} - body > header dd.menu-box { - background:#000; - border-top:1px solid #666; - color:#fff; padding:0; -webkit-transition:-webkit-transfrom 300ms linear; + -webkit-box-shadow:3px 3px 3px rgba(0, 0, 0, .2); + -moz-box-shadow:3px 3px 3px rgba(0, 0, 0, .2); + box-shadow:3px 3px 3px rgba(0, 0, 0, .2); } -body > header dd.menu-box a { - background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#000)); - background-image:-o-linear-gradient(top, #333 0%, #000 100%); - border-bottom:2px solid #585858; - color:#fff; +body > header dd.menu-box a, +body > header dd.menu-box strong { + background-color:rgba(255, 255, 255, .92) !important; + color:#444444; + font-size:18px; padding:10px; display:block; } @@ -396,10 +455,6 @@ body > header dd.menu-box .badge { -webkit-box-shadow:0 3px 3px rgba(0, 0, 0, 0.5), inset 0 3px 3px rgba(255, 255, 255, 0.35); box-shadow:0 3px 3px rgba(0, 0, 0, 0.5), inset 0 3px 3px rgba(255, 255, 255, 0.35); } -body > header dd.menu-box .links a:hover { - -webkit-box-shadow:inset 0 8px 8px rgba(0, 0, 0, .75); - box-shadow:inset 0 8px 8px rgba(0, 0, 0, .75); -} body > header dd.menu-box .welcome-msg { background:url(../images/bg_drop.jpg) repeat-x 0 0; @@ -511,76 +566,65 @@ body > nav .active a { text-shadow:0 1px 1px #ccc; } - -/* Search Block +/* Footer -----------------------------*/ -/* -.search-box { background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#f5f5f5)); margin:-5px 0 0; padding:8px 10px; } -.search-box span { background:#fff; border-radius:15px; display:inline-block; -webkit-box-shadow:inset 0 1px 3px rgba( 0, 0, 0, 0.5 ); position:relative; width:100%; } -.search-box input { background:url(../images/i_search.png) no-repeat 7px 5px; border:none; font-size:16px; padding-left:25px; width:100%; -webkit-appearance:none; } -*/ - - -/* Footer ------------------------------*/ -body > footer { - background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#fff)); - background-image:-o-linear-gradient(top, #f3f3f3 0%, #fff 100%); - min-height:100px; - padding:10px; -} - -body > footer { padding:10px; } -body > footer ul { - font-size:12px; - text-align:center; - } - body > footer ul li { - display:inline; - margin:0 2px; - } - body > footer ul li a { - display:inline-block; - padding:2px; - } - - -body > footer select { - background:url(../images/i_dropdown.png) no-repeat right #fefefe; - border:1px solid; - border-color:#e1e1e1; - border-radius:2px; - color:#333; - font-size:15px; - padding:3px 20px 3px 7px; - width:49%; +body > footer { min-height:100px; } +body > address.copyright { color:#fff; line-height:18px; padding:15px; } +body > address.copyright .logo { float:left; margin:0 10px 0 0; } +body > footer ul { line-height:27px; padding:10px 15px 0; overflow:hidden; } +body > footer ul + ul { padding:0 15px 10px; } +body > footer ul li { box-sizing:border-box; float:left; width:50%; } +body > footer ul li a { color:#fff; display:inline-block; padding:2px; } + +.block-subscribe { padding:10px 15px; } +.block-subscribe .block-title { display:none; } +.block-subscribe .form-subscribe-header { margin:0 0 5px; padding-left:12px; } +.block-subscribe .input-box { display:inline-block; vertical-align:top; width:60%; } +.block-subscribe .input-box input { border-radius:15px; border-color:#ccc; font-size:18px; padding:5px 10px; } +.block-subscribe .validation-advice { padding:10px 0 0 12px; width:150%; } +.block-subscribe .actions { display:inline-block; vertical-align:top; width:38%; } +.block-subscribe button { + border:none; + -webkit-border-radius:20px; + -moz-border-radius:20px; + border-radius:20px; + color:#fff; + font-size:18px; + padding:5px 10px; + vertical-align:top; + -webkit-appearance:none; - -webkit-box-sizing:border-box; + appearance:none; } -body > footer p { border-top:1px solid rgba(204, 204, 204, 0.3); color:#999; font-size:12px; margin:8px -10px 0; line-height:14px; padding:8px 10px 0; text-align:center; } - -.form-subscribe .form-subscribe-header { display:none; } /* Content -----------------------------*/ -body > section { border-bottom:1px solid #ccc; padding:0 10px 10px; } body > section:before, body > section:after { content: ""; display: table; } body > section:after { clear:both; } body > section img { max-width:100%; } body > section > .category-image { margin:0 -10px; } body > section > .category-image img { min-width:100%; } +body > section > .std, +body > section > form > .fieldset { margin:0; padding:15px; } +body > section > form > .buttons-set { padding:15px; } +body > section > form > .buttons-set p.required { font-size:10px; line-height:12px; margin:10px 0; text-align:right; } +body > section > form > .required { padding:15px; } +body > section > form > .fieldset h2 { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } + +.front-banner { + text-align:center; +} +.page-sitemap { padding:15px; } +.page-sitemap .page-title { display:none; } /* Categories -----------------------------*/ .nav-wrap { overflow:hidden; - margin:0 -10px -10px; } #nav-container { - background:url(../images/nav_bg.png) repeat 0 0; overflow:hidden; - margin:0 0 -1px; padding:0 0 1px; position:relative; width:9000px; @@ -591,3238 +635,1472 @@ body > section > .category-image img { min-width:100%; } } #nav-container ul > li > ul { display:none; } #nav-container:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; } -#nav-container ul { font-size:16px; margin:0; width:100%; float:left; } -#nav-container li { border-top:1px solid #ccc; } -#nav-container li:last-child { border-top:1px solid #ccc; } -#nav-container li.subcategory-header { padding:10px; background:#E8E8E8; text-align:center; font-weight:bold; } -#nav-container li.subcategory-header .button-wrap { - float:left; - margin:-5px 10px 0; - position:absolute; +#nav-container ul { font-size:21px; margin:0; width:100%; float:left; } +#nav-container li.subcategory-header { background:url(../images/bg_gradient.png) repeat-x 0 0 #d9d9d9; height:28px; padding:6px 10px; text-align:center; font-weight:bold; } +#nav-container li.subcategory-header span { color:#414141; line-height:28px; } +#nav-container li.subcategory-header .button-wrap { float:left; position:absolute; } +#nav-container li.subcategory-header .button-wrap button { + background:url(../images/bg_back_btn.png) no-repeat right top; + border:none; + height:27px; + width:47px; + color:#fff; + display:inline-block; + font-size:11px; + font-weight:bold; + line-height:27px; + margin:0; + padding:0 0 0 7px; + position:relative; + z-index:3; + -webkit-appearance:none; + appearance:none; } #nav-container li a { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0, #eee 100%); + background-color:#fff !important; display:block; } #nav-container li a span { - background:url(../images/i_arrow_small.png) no-repeat right; + background:url(../images/custom/arrow.png) no-repeat right; display:block; - padding:10px; - -webkit-background-size:8px 12px; - background-size:8px 12px; + line-height:20px; + padding:10px 15px; -webkit-background-origin:content-box; - background-origin:content-box; + background-origin:content-box; } /* Form-list -----------------------------*/ -.form-list li { margin-bottom:8px; } -.form-list input.input-text, -.form-list input[type="text"], -.form-list input[type="password"], -.form-list input[type="email"] { - background:#fefefe; - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:5px; - font-size:18px; - margin:0; - padding:5px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} +.form-list li { margin:0 0 15px; } +.form-list li:last-child { margin:0; } +.form-list label { color:#424242; display:block; font-weight:bold; margin:0 0 2px; } +.form-list label em { color:#f9721f; margin-right:2px; } +.form-list .field { margin:0 0 15px; } +.form-list .field:last-child { margin:0; } +.form-list .add-row .btn-remove { float:right; } +.form-list .add-row .btn-remove a { vertical-align:top; } +.form-list .control .input-box { vertical-align:top; } +.form-list .control .input-box, +.form-list .control label { display:inline-block; } +.form-list .control label { max-width:90%; } +.form-list .validation-advice { font-size:14px; padding:2px 0; } +.form-list img[src*="calendar.gif"] { position:absolute; padding:7px; } +.form-list input.datetime-picker { padding-left:30px; } +.form-list input[type="radio"] + label { display:inline-block; } .form-list input[type="text"]::-webkit-input-placeholder, .form-list input[type="password"]::-webkit-input-placeholder, .form-list input[type="email"]::-webkit-input-placeholder { color:#444; } -.form-list textarea { - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:5px; - padding:5px; - font-size:18px; - height:100px; - width:100%; - resize:vertical; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} -input[type="submit"] { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#dbdbdb)); - background:-o-linear-gradient(top, #fdfdfd 0%, #dbdbdb 100%); - border:1px solid #dbdbdb; - border-radius:10px; - font-size:16px; - font-weight:normal; - margin:0; - padding:8px 5px; - text-transform:small-caps; - text-shadow:0 0 1px #fff; - vertical-align:middle; - -webkit-appearance:none; - -webkit-box-shadow:0 1px 1px #8a8a8a; - box-shadow:0 1px 1px #8a8a8a; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} +/*--------------------------*/ input[type="checkbox"] { background:url(../images/bg_checkbox.png) no-repeat 0 0; - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; + border:1px solid #e4e4e4; border-radius:2px; - height:20px; margin:0 3px 0 0; - vertical-align:top; + height:20px; width:20px; + vertical-align:top; -webkit-appearance:none; } input[type="checkbox"]:checked { background-position:0 -19px; } -select, .select-multiple { - background:url(../images/i_dropdown.png) no-repeat right #fefefe; - border:1px solid; - border-color:#e1e1e1; - border-radius:2px; - color:#333; - font-size:15px; - padding:3px 30px 3px 7px; - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; + +/* Account +-----------------------------*/ +.account-login .col-1, +.account-login .col-2, +.account-create .fieldset, +.customer-account-forgotpassword .fieldset, +.customer-account-logoutsuccess .page-title + p { padding:15px; } +.account-login h2, +.account-login .legend, +.account-create .legend { color:#424242; font-size:18px; font-weight:bold; margin:0 0 15px; } +.account-login .legend + p { display:none; } +.account-login p.required, +.account-create p.required, +.customer-account-forgotpassword p.required { font-size:10px; line-height:12px; margin:10px 0 0; text-align:right; } +.account-create p.required, +.customer-account-forgotpassword p.required { padding:0 15px 15px; } + +.account-create .buttons-set, +.customer-account-forgotpassword .buttons-set { padding:0 15px 15px; } +.account-create .buttons-set .back-link, +.customer-account-forgotpassword .buttons-set .back-link { display:none; } + +.customer-account-forgotpassword .fieldset p { margin:0 0 10px; } + +/* Captcha +-----------------------------*/ +.captcha-image { position:relative; } +.captcha-image .captcha-img { border:1px solid #e1e1e1; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px; } +.captcha-reload { position:absolute; top:5px; left:0; padding:10px; } + +/* Breadcrumbs +-----------------------------*/ +.breadcrumbs { display:none; } +.product-tags-list .page-title h1, +.catalogsearch-result-index .page-title h1 { padding-right:55px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } +.catalogsearch-result-index .page-title h1 { padding-right:85px; } + +.page-title { + background-color:#fff !important; + color:#424242; + height:25px; + margin:0; + padding:10px 15px; } -.select-multiple { - max-width:100%; + +.page-title h1 { + font-size:18px; + line-height:25px; + text-align:left; overflow:hidden; - text-overflow:ellipsis; white-space:nowrap; - position:relative; + text-overflow:ellipsis; +} + +/* Catalog List +-----------------------------*/ +.category-description { display:none; margin:0; padding:10px; } + +.more { padding:15px 10px; text-align:center; } +.more-button { background:url(../images/bg_gradient.png) repeat-x #1394ca center; color:#fff; font-size:21px; line-height:25px; display:inline-block; padding:5px 25px; position:relative; vertical-align:top; } +.more-button.loading:before { background:url(../images/loader.gif) no-repeat center; background-size:24px 24px; content:''; display:inline-block; height:24px; width:24px; left:-30px; position:absolute; } + +.filters-block ol, +.filters-block li, +.filters-block dl, +.filters-block dt, +.filters-block dd { + margin:0; + padding:0; +} + +.filters-block-wrap {} + +.filters-block { color:#424242; margin:0; padding:10px 10px 15px; } +.filters-block dl { display:inline-block; vertical-align:top; width:49%; } + +@media(orientation:landscape) { + .filters-block dl { width:33%; } } -.select-multiple-wrap { + +.filters-block dt { color:#424242; font-weight:bold; margin:8px 0 0; } +.filters-block h3 { color:#424242; font-size:18px; line-height:20px; } +.filters-block .currently { color:#424242; } +.filters-block .actions { margin:0 0 18px; } +.filters-block .currently .block-subtitle { font-weight:bold; font-size:18px; line-height:20px; margin:5px 0 8px; } +.filters-block .currently .btn-remove { height:20px; width:20px; vertical-align:top; } +.filters-block .currently li { line-height:20px; } +.filters-block dd {} +.filters-block ol { list-style:none; line-height:17px; width:99%; } +.filters-block li { padding:9px 0; } +.filters-block a { color:#1394ca; font-weight:bold; } + +.toolbar { + font-size:12px; + padding:7px 5px 3px; + height:35px; + overflow:hidden; + text-align:right; position:relative; + top:-45px; + margin:0 0 -45px; } -.select-multiple-options-wrap { - background:#fefefe; - border:1px solid #a2a2a2; - border-radius:2px; - position:absolute; - top:0; - left:0; - right:0; - visibility:hidden; - -webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.35); - box-shadow:0 0 3px rgba(0, 0, 0, 0.35); - -webkit-tap-highlight-color:rgba(0,0,0,0); - z-index:1; +.toolbar .pager, +.toolbar .pager .amount, +.toolbar .pager .pages, +.toolbar .limiter { + float:right; } -.select-multiple-options-wrap .select-heading { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#d4d4d4)); - background:-o-linear-gradient(top, #eee 0%, #d4d4d4 100%); - border-bottom:1px solid #a2a2a2; - color:#444; +.toolbar .amount, +.toolbar .view-mode { + line-height:23px; + padding:0 4px; +} +.toolbar .view-mode label { font-weight:bold; - font-size:13px; - text-transform:uppercase; - text-shadow:0 1px 0 #fff; - padding:5px; - white-space:nowrap; - overflow:hidden; - text-overflow:ellipsis; + position:relative; + top:1px; + vertical-align:middle; } -.select-multiple-options-wrap .select-close { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#bbb)); - background:-o-linear-gradient(top, #eee 0%, #bbb 100%); - border:1px solid #a2a2a2; - cursor:pointer; - color:#222; - -webkit-border-radius:4px; - -moz-border-radius:4px; +.toolbar .pager { display:none; } +.toolbar .pager .pages strong { + margin-right:5px; + vertical-align:middle; +} +.toolbar .pager .pages select +.toolbar .limiter select { + background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#dedede)); + background:-o-linear-gradient(top, #fff 0%, #dedede 100%); + border:1px solid #bbb; border-radius:4px; + color:#707070; + margin:0; + padding:5px 10px; font-size:12px; - display:inline-block; - margin-right:8px; - line-height:20px; - text-align:center; - height:20px; - width:20px; - -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow:0 1px 2px rgba(0, 0, 0, 0.05); + line-height:17px; + vertical-align:middle; + -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); + box-shadow:0 0 5px rgba(0, 0, 0, 0.15); + -webkit-background-clip:padding-box; + background-clip:padding-box; } -.select-multiple .selected-counter { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ebebeb), to(#fff)); - background:-o-linear-gradient(top, #ebebeb 0%, #bbb 100%); - border-left:1px solid #c2c2c2; - color:#4d4d4d; - display:inline-block; - font-size:12px; - font-weight:bold; - line-height:23px; - text-shadow:0 1px 0 #fff; - padding:0 8px; - position:absolute; - top:0; - bottom:0; - right:25px; +.toolbar .limiter select { + vertical-align:baseline; } -.select-multiple .selected-counter:before { - background:-webkit-gradient(linear, 0 0, 100% 0, color-stop(0.05, rgba(255, 255, 255, 0.5)), color-stop(1, rgb(255, 255, 255))); - content:''; +.toolbar .sort-by-wrap { position:absolute; - left:-41px; - top:0; - bottom:0; - width:40px; + top:7px; + right:5px; } -.select-multiple-options { - list-style:none; - margin:0 auto; - padding:0; +.toolbar .sort-by select { + background:none; + border:none; + margin:0; + padding:4px 5px 5px; + opacity:0; + width:50px; + max-width:50px; + vertical-align:middle; } -.select-multiple-options li { - border-bottom:1px solid #ccc; - cursor:pointer; +.toolbar .sort-by > label { + background:url(../images/bg_gradient.png) repeat-x 0 0 #4c4c4c; + background-size:1px 30px; + color:#fff; + display:inline-block; + font-size:14px; + font-weight:bold; + line-height:30px; + padding:0 11px; + text-align:center; + vertical-align:middle; + width:28px; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); + box-shadow:0 0 5px rgba(0, 0, 0, 0.15); +} + +.toolbar .order { + background:url(../images/bg_gradient.png) repeat-x 0 0 #4c4c4c; + background-size:1px 30px; + display:inline-block; + vertical-align:top; + border-radius:5px; + vertical-align:top; + text-align:center; margin:0; - padding:5px 5px 5px 33px; position:relative; - -webkit-transition:background 300ms linear; + line-height:30px; + height:30px; + width:30px; + text-indent:-999em; + -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); + box-shadow:0 0 5px rgba(0, 0, 0, 0.15); } -.select-multiple-options li:after { +.toolbar .order:after { content:''; - display:block; - background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAKCAYAAABv7tTEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDAxRDg0NzcxQjdEMTFFMUE1RjVCOUQyODJGQTNDMEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDAxRDg0NzgxQjdEMTFFMUE1RjVCOUQyODJGQTNDMEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMDFEODQ3NTFCN0QxMUUxQTVGNUI5RDI4MkZBM0MwQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMDFEODQ3NjFCN0QxMUUxQTVGNUI5RDI4MkZBM0MwQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv02V7QAAABZSURBVHjalM5BDoAwCATAfUXj/7/Dbzx43QppCW0U5bAh0AwUJPEnItIA8K4lcCqyFMFlfRXo3B/m4AsY8n8GmIF56dhhBgyNzREyA44e4CtYUIQZ0HQBBgCyITMDEAMA1AAAAABJRU5ErkJggg==) no-repeat 0 0; - height:10px; - width:13px; position:absolute; - top:9px; - left:10px; - opacity:0.2; + top:10px; + z-index:2; + font-size:0; + line-height:0; + width:0; } -.select-multiple-options li.active:after { - opacity:1; +.toolbar .order.asc:after { + border-left:5px solid transparent; + border-right:5px solid transparent; + border-bottom:10px solid #fff; + right:10px; } -.select-multiple-options li:last-child { - border-bottom:none; +.toolbar .order.desc:after { + border-left:5px solid transparent; + border-right:5px solid transparent; + border-top:10px solid #fff; + right:10px; } -.select-multiple-options li + li { - border-top:1px linear #fff; -} -.select-multiple-options .active { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e5e5e5)); -} -input[type="text"] { - background:#fefefe; - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:2px; - font-size:18px; - margin:0; - padding:5px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} - -.send-friend { - display:block; - border:1px solid #D1D1D1; - margin:3px -7px -7px; - padding:9px; - border-radius:2px 2px 5px 5px; - background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #EEEEEE), color-stop(1, #E8E9E9)); - background:-o-linear-gradient(top, #FCFDFD 0%, #eee 80%, #E8E9E9 100%); -} - -.send-friend h2 { - font-size:16px; line-height:16px; font-weight:bold; margin:0 0 5px; color:#333; -} - -.send-friend label { - display:block; - font-size:14px; - padding:0 0 3px; - font-weight:bold; - color:#5E5E5E; -} - -.send-friend label em { - display:none; -} - -.send-friend textarea { - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:5px; - padding:5px; - font-size:18px; - height:100px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} - -.send-friend .field { - margin:0 0 6px; -} - -.send-friend .additional-row { - border-top:1px solid #ccc; - position:relative; - margin:16px 0 0; - padding:10px 0 0; -} - -.send-friend .sender-fieldset { - padding-top:10px; -} - -.send-friend #add_recipient_button { - float:right; -} - -.send-friend .btn-remove { - position:absolute; - top:31px; - right:0; -} - -#add_recipient_button button, -.send-friend .btn-remove { - font-family:Arial; - margin:0; - padding:3px 6px; - border:1px solid #CECECE; - border-radius:2px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#FEFEFE), to(#EEE)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - text-transform: small-caps; - color:#333; - font-size:24px; - line-height:20px; - text-shadow:0 1px 0 #fff; - -webkit-box-shadow:0 0 5px #ccc; - box-shadow:0 0 5px #ccc; -} - -.send-friend .btn-remove { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#e4776f), to(#d83a2e)); - background:-o-linear-gradient(top, #e4776f 0%, #d83a2e 100%); - color:#fff; - border:none; - border-left:1px solid #ccc; - border-radius:0 5px 5px 0; - padding:5px 8px 8px; - text-shadow:0 1px 0 #333; - -webkit-box-shadow:none; - box-shadow:none; - width:initial; - height:initial; -} - -.send-friend button[type="submit"] { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - padding:5px 20px; - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} - -#max_recipient_message { - padding:10px 0; - font-size:16px; - font-weight:bold; -} - -/* Account Create ------------------------------*/ -.account-create h2 { - font-size:16px; - font-weight:bold; - margin:0 0 4px; -} -.account-create .form-list label { - font-weight:bold; -} -.account-create .form-list label em { - display:none; -} -.account-create .form-list .control .input-box { - display:inline-block; - vertical-align:middle; -} - -/* Account ------------------------------*/ -.login-box { margin:0 -10px -10px; padding:10px; } -.login-box form h2, -.login-box .new-users h2 { font-size:16px; line-height:16px; font-weight:bold; margin:0 0 10px; color:#333; } -.login-box form { - display:block; - border:1px solid #D1D1D1; - margin:-6px -7px -7px; - padding:9px; - border-radius:2px 2px 5px 5px; - background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #eee), color-stop(1, #E8E9E9)); - background:-o-linear-gradient(top, #FCFDFD 0%, #eee 80%, #E8E9E9 100%); -} -.login-box form:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; } -.login-box form label { display:block; padding:0 0 3px; font-weight:bold; color:#5E5E5E; } -.login-box form > a { font-weight:bold; color:#F4641E; } -.login-box form .login-button { margin:7px 0 0; } -.login-box form .login-button input { - padding:5px 20px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9f9f9f; - box-shadow:0 3px 3px 0 #9f9f9f; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -.login-box .required { font-size:12px; line-height:16px; margin:8px 0 0; } -.login-box .registered-users { margin:0 0 10px; } -.login-box .registered-users input[type="submit"] + a { text-decoration:underline; vertical-align:middle; } -.login-box .registered-users h1 { display:none; background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); border:solid #999; border-width:1px 0; border-top-color:#ccc; text-shadow:0 1px 0 #fff; margin:0 -10px 10px; padding:10px; -webkit-box-shadow:0 3px 3px #eee; box-shadow:0 3px 3px #eee; } -.login-box .new-users { display:block; border:1px solid #D1D1D1; margin:-6px -7px -7px; padding:9px; border-radius:2px 2px 5px 5px; background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #EEEEEE), color-stop(1, #E8E9E9)); } -.login-box .new-users p { padding:9px 0 0; } -.login-box .new-users input[type="submit"] { - padding:5px 20px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -.customer-account-login .messages { margin:-10px -10px 10px; } -.customer-account-login .messages .error-msg { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#f85032), color-stop(50%,#f16f5c), color-stop(51%,#f6290c), color-stop(71%,#f02f17), color-stop(100%,#e73827)); - background:-o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%); - color:#fff; - padding:10px; - font-size:16px; - font-weight:bold; - text-align:center; - text-shadow:0 1px #222; - -webkit-box-shadow:none; - box-shadow:none; -} -.customer-account-logoutsuccess .page-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - margin:0 -10px 10px; - padding:10px; -} - - -#remember-me-box a { font-weight:bold; border-bottom:1px dashed; } -#remember-me-box label { display:inline; margin-right:10px; } -#remember-me-popup { - background-position:top center; - background-image:-webkit-gradient(radial, center -99%, 125, center -99%, 200, from(#fff), to(#0c1e4d)); - border:2px solid rgba(255, 255, 255, 0.95); - border-radius:7px; - font-size:14px; - color:#fff; - font-weight:bold; - position:absolute; - top:50%; left:50%; - margin:-25% 0 0 -120px; - padding:10px; - width:220px; - text-shadow:0 -1px 1px rgba(0, 0, 0, 0.8); - -webkit-box-shadow:0 2px 14px rgba(0, 0, 0, 0.5); - box-shadow:0 2px 14px rgba(0, 0, 0, 0.5); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -#remember-me-popup h3 { margin-bottom:5px; text-align:center; } -#window-overlay, -.remember-me-popup-close { display:none; } -.remember-me-popup-body .remember-me-popup-close-button { text-align:center !important; } -.remember-me-popup-body .remember-me-popup-close { - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #757d90), color-stop(50%, #343f5c), color-stop(51%, #162344), color-stop(100%, #232f4e)); - color:#fff; - border:1px solid #131e3a; - border-radius:5px; - display:inline-block; - margin:10px 0 0; - padding:5px 15px; - text-align:center !important; - -webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25), inset 0 1px 0 rgba(0, 0, 0, 0.75); - box-shadow:0 1px 0 rgba(255, 255, 255, 0.25), inset 0 1px 0 rgba(0, 0, 0, 0.75); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} - -/* Forgot password ------------------------------*/ -.forgot-password { margin:-10px; padding:10px; color:#333; } -.forgot-password h1 { - background: -webkit-gradient(linear, 0 0, 0 100%, from(white), to(#CCC)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border: solid #999; - border-top-color: #CCC; - text-shadow: 0 1px 0 white; - margin:0 -10px; - padding: 10px; - -webkit-box-shadow: 0 3px 3px #eee; - box-shadow: 0 3px 3px #eee; - border-width: 1px 0; -} -.forgot-password a { float:left; font-size:12px; } -.forgot-password h2 { font-size:16px; font-weight:bold; padding:0 0 0 5px; margin:0 0 7px; } -.forgot-password label { padding:0 0 0 5px; font-weight:bold; } -.forgot-password input[type="email"] { - background:#fefefe; - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:2px; - font-size:18px; - margin:3x 0 8px; - padding:5px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} -.forgot-password form { display:block; border:1px solid #D1D1D1; margin:3px -7px -7px; padding:9px 9px 30px; border-radius:2px 2px 5px 5px; background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #EEEEEE), color-stop(1, #E8E9E9)); } -.forgot-password form:after { content: "."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } -.forgot-password input[type="submit"] { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - margin:5px 0 0; - padding:5px 20px; - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} - -/* New Customer ------------------------------*/ -.new-customer { margin:0 -10px -10px; padding:10px; color:#333; } -.new-customer h1 { background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); background:-o-linear-gradient(top, #fff 0%, #ccc 100%); border:solid #999; border-width:1px 0; border-top-color:#ccc; text-shadow:0 1px 0 #fff; margin:0 -10px 10px; padding:10px; -webkit-box-shadow:0 3px 3px #eee; box-shadow:0 3px 3px #eee; } -.new-customer h2 { font-size:16px; line-height:16px; font-weight:bold; margin:0 0 7px 0; color:#333; } -.new-customer form { display:block; border:1px solid #D1D1D1; margin:-6px -7px -7px; padding:9px; border-radius:2px 2px 5px 5px; background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #EEEEEE), color-stop(1, #E8E9E9)); background:-o-linear-gradient(top, #FCFDFD 0%, #eee 80%, #E8E9E9 100%); } -.new-customer form:after { content: "."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } -.new-customer form label { font-weight:bold; } -.new-customer form label em { display:none; } -.new-customer .personal-information { border-bottom:1px solid #ccc; padding:0 0 10px; } -.new-customer .personal-information .field { margin-bottom:8px; } -.new-customer .login-information { border-top:1px solid #fff; padding-top:10px; } -.new-customer .login-information input[type="submit"], -.new-customer .login-information > a { padding:5px 20px; background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); font-size:14px; color:#FFF; border:1px solid #FFF; border-radius:5px; -webkit-box-shadow:0 3px 3px 0 #9F9F9F; box-shadow:0 3px 3px 0 #9F9F9F; text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); } -.new-customer .login-information input[type="submit"] { margin:0; } -.new-customer .login-information > a { float:left; display:block; } - -/* Edit Account Settings ------------------------------*/ -.account-edit {} - -/* Breadcrumbs ------------------------------*/ -.breadcrumbs { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e5e5e5)); - background:-o-linear-gradient(top, #fff 0%, #e5e5e5 100%); - border-bottom:1px solid #ccc; - height:40px; - margin:0 -10px 0; -} -.breadcrumbs ul { padding:10px; line-height:20px; position:relative; } -.breadcrumbs ul a { color:#666; } -.breadcrumbs ul span, -.breadcrumbs ul li[class*="category"] { display:none; } -.breadcrumbs ul li.home, -.catalog-product-view .breadcrumbs li:nth-last-child(2), -.catalog-category-view .breadcrumbs li:nth-last-child(2), -.review-product-list .breadcrumbs li:nth-last-child(2) { display:none; top:7px; left:20px; position:absolute; } -.breadcrumbs ul li:last-child { display:block; font-size:16px; font-weight:bold; text-align:center; text-shadow:0 1px 0 #fff; margin:0 auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; width:50%; } - -/* Back Button ------------------------------*/ -#nav-container li.subcategory-header .button-wrap:before { - content:''; - background:url(../images/bg_button.png) no-repeat left top; - -webkit-background-size:100px 28px; - background-size:100px 28px; - height:28px; - width:28px; - position:absolute; - top:0; - left:-13px; - z-index:2; -} -#nav-container li.subcategory-header button { - color:#2f2f2f; - background:url(../images/bg_button.png) no-repeat right top; - background-size:100px 28px; - display:inline-block; - font-size:11px; - text-shadow:0 1px 0 rgba(255, 255, 255, 0.5); - line-height:15px; - margin:0 ; - padding:6px 9px 7px 2px; - position:relative; - border:none; - font-weight:bold; - z-index:3; - -webkit-appearance:none; - max-width:50px; - overflow:hidden; - white-space:nowrap; - text-overflow:ellipsis; -} - -.catalogsearch-result-index .page-title { display:none; } -.catalogsearch-result-index .breadcrumbs:first-child { display:none; } -.catalogsearch-result-index .note-msg { padding:10px 0 0; } - -/* Catalog List ------------------------------*/ -section .category-title { display:none; } - -.filters-block ol, -.filters-block li, -.filters-block dl, -.filters-block dt, -.filters-block dd { - margin:0; - padding:0; -} - -.filters-block-wrap { -} - -.filters-block { - background:url(../images/fabric.jpg) no-repeat 0 0; - border-top:1px solid #ccc; - font-size:13px; - margin:10px -10px -10px; - padding:10px 10px 15px; -} - -.filters-block dl { - display:inline-block; - vertical-align:top; - width:49%; -} - -@media(orientation:landscape) { - .filters-block dl { - width:33%; - } -} - -.filters-block dt { - color:#555; - font-size:13px; - font-weight:bold; - text-shadow:0 1px 0 #f6f6f6; - text-transform:uppercase; - margin:8px 0 0; -} - -.filters-block h3 { - color:#444; - font-size:15px; - text-shadow:0 1px 0 #f6f6f6; -} - -.filters-block .currently { - position:relative; - z-index:2; -} - -.filters-block .currently .block-subtitle { - color:#555; - font-weight:bold; - font-size:13px; - text-shadow:0 1px 0 #f6f6f6; - text-transform:uppercase; - margin:5px 0 0; -} - -.filters-block .currently .btn-remove { - background-image:url(../images/btn_trash.png); - background-size:10px 10px; - background-repeat:no-repeat; - background-position:center; - float:none; - display:inline-block; - vertical-align:middle; - top:-2px; - text-indent:-999em; - margin-right:2px; -} - -.filters-block .currently .actions { - float:right; - margin:-24px 0 0; -} - -.filters-block .currently ol { - font-size:14px; - line-height:16px; -} - -.filters-block .currently li { - padding:5px 0; -} - - -.filters-block dd { -} - -.filters-block ol { - list-style:none; -} - -.filters-block li { - text-shadow:0 1px 0 #f6f6f6; -} - -.filters-block a { - color:#fb6b36; -} -.toolbar { - background:#d7d7d7; - color:#707070; - border-bottom:1px solid #a0a0a0; - font-size:12px; - margin:1px -10px 0; - padding:5px; - overflow:hidden; - text-shadow:0 1px 0 #fff; -} -.toolbar .pager, -.toolbar .pager .amount, -.toolbar .pager .pages, -.toolbar .limiter { - float:right; -} -.toolbar .amount, -.toolbar .view-mode { - line-height:23px; - padding:0 4px; -} -.toolbar .view-mode label { - font-weight:bold; - position:relative; - top:1px; - vertical-align:middle; -} -.toolbar .pager .pages strong { - margin-right:5px; - vertical-align:middle; -} -.toolbar .pager .pages select, -.toolbar .sort-by select, -.toolbar .limiter select { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#dedede)); - background:-o-linear-gradient(top, #fff 0%, #dedede 100%); - border:1px solid #bbb; - border-radius:4px; - color:#707070; - margin:0; - padding:5px 10px; - font-size:12px; - line-height:17px; - vertical-align:middle; - -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); - box-shadow:0 0 5px rgba(0, 0, 0, 0.15); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.toolbar .limiter select { - vertical-align:baseline; -} -.toolbar .sort-by select { - font-weight:bold; - padding:5px 10px 5px 51px; - vertical-align:middle; -} -.toolbar .sort-by select:after { - content:'1'; -} -.toolbar .sort-by > label { - position:absolute; - margin:6px 0 0 8px; - vertical-align:middle; -} -.toolbar .sort-by > a, -.toolbar .sort-by > a img { - vertical-align:middle; -} -.toolbar .prev-page, -.toolbar .next-page, -.toolbar .order, -.toolbar .order, -.toolbar .grid, -.toolbar .list { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#dedede)); - background:-o-linear-gradient(top, #fff 0%, #dedede 100%); - border:1px solid #bbb; - border-radius:5px; - display:inline-block; - vertical-align:top; - text-align:center; - line-height:23px; - position:relative; - height:27px; - width:27px; - text-indent:-999em; - -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); - box-shadow:0 0 5px rgba(0, 0, 0, 0.15); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.toolbar .grid:after, -.toolbar .list:after { - background:url(../images/grid.png) no-repeat 0 0; - content:''; - display:inline-block; - position:absolute; - top:8px; - left:8px; - height:11px; - width:11px; -} -.toolbar .list:after { - background:url(../images/list.png) no-repeat 0 0; -} -.toolbar .prev-page.disabled, -.toolbar .next-page.disabled, -.toolbar .grid.disabled, -.toolbar .list.disabled { - opacity:0.5; -} -.toolbar .prev-page:after, -.toolbar .next-page:after, -.toolbar .order:after { - content:''; - position:absolute; - top:9px; - z-index:2; - font-size:0; - line-height:0; - width:0; -} -.toolbar .prev-page:after { - border-top:5px solid transparent; - border-right:10px solid #000; - border-bottom:5px solid transparent; - right:9px; -} - -.toolbar .next-page:after { - border-top:5px solid transparent; - border-left:10px solid #000; - border-bottom:5px solid transparent; - left:10px; -} -.toolbar .order.asc:after { - border-left:5px solid transparent; - border-right:5px solid transparent; - border-bottom:10px solid #000; - right:9px; -} -.toolbar .order.desc:after { - border-left:5px solid transparent; - border-right:5px solid transparent; - border-top:10px solid #000; - right:9px; -} -.toolbar a { - color:#707070; -} -.toolbar .sort-order img { - vertical-align:top; -} - -.category-products { - margin:0 -10px -10px; -} - -.c-list > li { - position:relative; - border-bottom:1px solid #ebe9eb; -} -.c-list > li:last-child { display:block; border-bottom:none; } -.c-list > li > a { - background:url(../images/i_arrow_small.png) no-repeat right #fff; - -webkit-background-size:8px 12px; - background-size:8px 12px; - -webkit-background-origin:content-box; - background-origin:content-box; - color:#2f2f2f; - display:block; - padding:10px; - -webkit-user-select:none; - user-select:none; - -webkit-touch-callout:none; - touch-callout:none; - -webkit-tap-highlight-color:rgba(0,0,0,0); -} -.c-list > li > a:after { - content:"."; - display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; -} -.c-list li > .actions { - padding:0 5px 0 90px; - position:absolute; - left:0; - top:10px; - bottom:10px; - width:100%; - z-index:0; - -webkit-box-sizing:border-box; - box-sizing:border-box; -} - -.csstransforms .c-list li > .actions { - -moz-transform:translate(-100%, 0); - -webkit-transform:translate(-100%, 0); - -o-transform:translate(-100%, 0); - transform:translate(-100%, 0); -} - -.csstransforms .c-list > li.animated > .actions { - -moz-transition:all .5s linear; - -webkit-transition:all .5s linear; - -o-transition:all .5s linear; - transition:all .5s linear; - -moz-transform:translate(0, 0); - -webkit-transform:translate(0, 0); - -o-transform:translate(0, 0); - transform:translate(0, 0); -} - -.csstransforms .c-list > li.end-animation > .actions { - -moz-transition:all .5s linear; - -webkit-transition:all .5s linear; - -o-transition:all .5s linear; - transition:all .5s linear; - -moz-transform:translate(-100%, 0); - -webkit-transform:translate(-100%, 0); - -o-transform:translate(-100%, 0); - transform:translate(-100%, 0); -} - -.csstransforms3d .c-list li > .actions { - -webkit-perspective:1000; - -webkit-backface-visibility:hidden; - -webkit-transform:translateX(-100%); -} - -.csstransforms3d .c-list > li.animated > .actions { - -webkit-animation:bounce 500ms; - -webkit-transform:translateX(0); -} - -.csstransforms3d .c-list > li.end-animation > .actions { - -webkit-transition:all 250ms linear; - -webkit-transform:translateX(-100%); -} - -@-webkit-keyframes bounce { - 0% { -webkit-transform:translateX(-100%); - -webkit-animation-timing-function:ease-in; } - - 50% { -webkit-transform:translateX(10%); - -webkit-animation-timing-function:ease-out; } - - 100% { -webkit-transform:translateX(0); } -} - -.c-list li > .actions ul { - border:1px solid; - border-color:#ddd #d4d4d4 #ccc; - border-radius:2px; - display:table; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F1F1F1), to(#E0DFE0)); - background:-o-linear-gradient(top, #F1F1F1 0%, #E0DFE0 100%); - width:100%; - height:73px; - -webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.1); - box-shadow:0 0 3px rgba(0, 0, 0, 0.1); -} - -@media(orientation:landscape) { - .c-list li > .actions ul { - } -} - -.c-list li > .actions ul li { - display:table-cell; - text-align:center; - line-height:1; -} -.c-list li > .actions ul li a { - display:inline-block; - padding:3px; - max-width:44px; - font-size:10px; - color:#4B4B4B; - text-shadow:0 1px 0 #fff; -} - -.c-list li > .actions i { - display:inline-block; - border-radius:2px; - margin-bottom:2px; - height:37px; - width:37px; - clear:both; - border:1px solid #cdcdcd; -} - -.c-list li > .actions .i-view-details i { - background:url(../images/i_view_details.png) no-repeat #fff top; -} - -.c-list li > .actions .i-add-to-cart i { - background:url(../images/i_add_to_cart.png) no-repeat #fff top; -} - -.c-list li > .actions .i-view-gallery i { - background:url(../images/i_gallery.png) no-repeat #fff top; -} - -.c-list li > .actions .i-send-friend i { - background:url(../images/i_tell_a_friend.png) no-repeat #fff top; -} - -.c-list li > .actions .i-send-wishlist i { - background:url(../images/i_add_to_wishlist.png) no-repeat #fff top; -} - -.c-list h1 { font-size:16px; font-weight:bold; } -.c-list .cloned-wrap, -.c-grid .cloned-wrap { position:absolute; padding:10px; opacity:0; } -.c-list .cloned-wrap .product-image img, -.c-grid .cloned-wrap .product-image img { -webkit-box-shadow:none; box-shadow:none; } -.c-list .product-image { float:left; margin-right:10px; -webkit-transform:translate3d(0,0,0); } -.c-list .product-image img, -.c-grid .product-image img { background:#fff; border:1px solid #ccc; border-radius:1px; padding:3px; -webkit-box-shadow:0 1px 5px rgba(0,0,0,0.28); box-shadow:0 1px 5px rgba(0,0,0,0.28); } -.c-list .product-shop { overflow:hidden; padding-right:30px; } -.c-list .product-shop h1 { font-size:14px; font-weight:bold; text-align:left; margin:5px 0 7px; } -.c-list .product-shop .price-box { font-size:11px; margin:0 0 5px; } - -.c-grid { - background:#eee; - display:table; - border-collapse:collapse; - border-spacing:0; - margin:-1px 0 0; - width:100%; - -webkit-tap-highlight-color:rgba(0,0,0,0); -} -.c-grid .row { - display:table-row; -} -.c-grid .cell { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - display:table-cell; - position:relative; - border:1px solid #ccc; - vertical-align:top; - width:50%; -} -.c-grid.ready .cell { - background:#ccc; - -webkit-box-shadow:inset 0 -10px 10px rgba(0, 0, 0, 0.25), inset 0 10px 10px rgba(0, 0, 0, 0.25), inset -10px 0 10px rgba(0, 0, 0, 0.25), inset 10px 0 10px rgba(0, 0, 0, 0.25); - box-shadow:inset 0 -10px 10px rgba(0, 0, 0, 0.25), inset 0 10px 10px rgba(0, 0, 0, 0.25), inset -10px 0 10px rgba(0, 0, 0, 0.25), inset 10px 0 10px rgba(0, 0, 0, 0.25); - -webkit-touch-callout:none; -} -@media all and (-webkit-transform-3d) { - .c-grid.ready .cell { background:url(data:image/png;base64,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); } -} -.c-grid .position-wrap { - position:relative; -} -.c-grid .row .cell:first-child { border-left:0; } -.c-grid .row .cell:last-child { border-right:0; } -.c-grid .row:last-child .cell { - border-bottom:0; -} -.c-grid .row .cell:only-child { - border-right:1px solid #ccc; -} -.c-grid .i-flip { - background:url(../images/flip.png) no-repeat 25px 10px; - background-size:15px 15px; - margin-left:-50px; - float:right; - height:50px; - width:50px; - position:relative; - z-index:1; - -webkit-backface-visibility:hidden; -} -.c-grid .flip-block-wrap { - -webkit-perspective:1000; -} -.c-grid .flip-block { - display:inline-block; - height:100%; - width:100%; -} -.c-grid .flip-block .wrap { - padding:15px 10px 10px;; -} -.c-grid .flip-block.active { -} -.c-grid .cloned-wrap { - top:0; - left:0; - height:100%; - width:100%; - opacity:0; - padding:0; -} -.c-grid .cloned-wrap .wrap { - padding:15px 10px 10px; - -webkit-transition:-webkit-transform linear 200ms; -} - -.to-cart-animate { - -webkit-animation:bounce-rotate 200ms infinite -} - -.drop-start { -webkit-transform:scale(1.2); opacity:0.9; } - -@-webkit-keyframes bounce-rotate { - 0% { -webkit-transform:rotate(3deg) skew(1deg) scale(1.2); } - 25% { -webkit-transform:rotate(0) skew(0) scale(1.2); } - 50% { -webkit-transform:rotate(-3deg) skew(-1deg) scale(1.2); } - 75% { -webkit-transform:rotate(0) skew(0) scale(1.2); } - 100% { -webkit-transform:rotate(3deg) skew(1deg) scale(1.2); } -} - -.c-grid .flip-block .front { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); -} -.c-grid .flip-block .front, -.c-grid .flip-block .back { - display:inline-block; - height:100%; - width:100%; - position:relative; - -webkit-backface-visibility:hidden; -} -.c-grid .flip-block .back { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - position:absolute; -} -.c-grid .flip-block.active .back { - z-index:1; -} -@media all and (-webkit-transform-3d) { - .c-grid .flip-block { - -webkit-transform-style:preserve-3d; - -webkit-transition:ease-in-out 600ms; - } - .c-grid .flip-block.active { - -webkit-transform:rotateY(180deg); - } - .c-grid .flip-block .back { - -webkit-transform:rotateY(180deg) translate3d(0, 0, 1px); - } -} -.c-grid .back-face { padding:10px; } -.c-grid .back-face .rating-box { display:inline-block; } -.c-grid .back-face .rating-links { margin:-2px 0 2px; } -.c-grid .back-face .rating-links a { color:#fb6b36; text-decoration:underline; } -.c-grid .back-face .price-box { font-size:12px; margin:5px 0 10px; } -.c-grid .back-face .price-box .special-price .price { font-weight:bold; } -.c-grid .back-face .add-to-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - border:1px solid #fff; - border-radius:5px; - color:#fff; - font-size:11px; - font-weight:bold; - margin-left:-2px; - padding:5px 10px; - text-shadow:0 1px 0 #999; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.c-grid .back-face .rating-links .separator, -.c-grid .back-face .rating-links .separator + a { - display:none; -} -.c-grid .product-shop, -.c-grid .product-image { - text-align:center; -} -.c-grid .product-shop h1 { - margin-bottom:5px; -} - -/* Product Info Box ------------------------------*/ -.catalog-product-view .messages { margin:0 -10px 0; } -.product-view { padding:0 0 0; } -.product-shop { padding:8px 0 0; } -.product-shop a { color:#fb6b36; text-decoration:underline; } -.product-shop .item-options { margin:0 0 10px; } -.product-shop .item-options dt { font-weight:bold; } -.product-shop .product-image-and-actions { float:left; margin:0 10px 0 0; } -.product-shop .product-image-wrap { position:relative; max-width:150px; } -.product-shop .product-image { position:relative; } -.product-shop .product-image:before { - content:''; - display:block; - background:url(../images/search_icon.png) no-repeat 0 0; - -webkit-background-size:14px 14px; - background-size:14px 14px; - -webkit-background-origin:padding-box; - background-origin:padding-box; - position:absolute; - top:7px; - right:7px; - height:14px; - width:14px; - z-index:1; -} -.product-shop .product-image-wrap img { -webkit-border-radius:1px; -webkit-box-shadow:0 0 3px #D1D1D1; box-shadow:0 0 3px #D1D1D1; -webkit-transition:-webkit-transform ease-in 300ms; position:relative; } -.product-shop .product-image-wrap img.animate { z-index:101; } -.product-shop .product-image-wrap img.cloned { position:absolute; top:0; left:0; } -.product-shop .product-image .carousel-items li { padding:2px 2px 0; } -.product-shop .product-image .more-views { padding:3px 0 0 0; } -.product-shop .wrap:before, .product-shop .wrap:after { content: ""; display: table; } -.product-shop .wrap:after { clear:both; } - - -.product-view .add-to-links, -.product-actions { display:table; overflow:hidden; margin:5px 0 0; padding:5px 0; width:100%; text-align:center; } -.product-view .add-to-links li, -.product-actions li { display:table-cell; text-align:center; line-height:1; } -.product-view .add-to-links li + li, -.product-actions li + li { border-left:1px solid #fb6b36; } -.product-view .add-to-links li a, -.product-actions li a { color:#fb6b36; font-weight:bold; text-decoration:none; } -.product-view .add-to-links .separator { display:none; } -.product-essential p.required { color:#F9721F; } -.product-essential h1 { font-size:16px; text-align:left; font-weight:bold; margin-bottom:0; line-height:1.3; } -.product-essential .availability { color:#3b3b3b; font-size:13px; font-weight:bold; margin:0 0 3px; } -.product-essential .availability span { font-weight:normal; } -.product-essential .product-options dt label { font-size:14px; font-weight:bold; } -.product-essential .product-options dt label em { float:left; margin:0 4px 0 0; color:#F9721F; } -.product-essential .product-options dd { border-bottom:1px solid #bbb; padding:0 0 10px; } -.product-essential .product-options dd + dt { border-top:1px solid rgba(255, 255, 255, 0.75); padding:10px 0 0; } -.product-essential .product-options dd:last-child { border:none; } -.product-essential .product-options select { width:100%; } -.product-essential .product-options input[type=text] { font-size:12px; width:20%; } -.product-essential .product-options input[type=text]:disabled { background:#ddd; } -.product-essential .product-options .qty-holder { display:block; margin:5px 0 0; } -.product-essential .product-options .options-list li { padding:10px 0 0; } -.product-essential .product-options .options-list a { color:#fb6b36; text-decoration:underline; } - -.product-essential .product-options-bottom { background:#fefefe; position:relative; } -.product-essential .product-options-bottom .required { margin:10px 0; } -.product-essential .product-options-bottom .price-box { float:right; max-width:50%; } -.product-essential .product-options-bottom .price-box .price-as-configured { text-align:right; } -.product-essential .product-options-bottom .price-box .price-as-configured .price { display:block; font-size:18px; line-height:26px; text-shadow:0 1px 0 #fff; text-align:right; } -.product-essential .product-options-bottom .add-to-cart { float:left; width:50%; } -.product-essential .product-options-bottom .add-to-cart label { display:inline-block; font-size:14px; font-weight:bold; vertical-align:middle; } -.product-essential .product-options-bottom .add-to-cart input[type=text] { display:inline-block; width:40px; font-size:12px; vertical-align:middle; } -.product-essential .product-options-bottom button { - display:block; - padding:5px 20px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - clear:both; - float:right; - border:1px solid #FFF; - border-radius:5px; - margin:10px 0; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; -} -.product-shop .price-box { overflow:hidden; } - .product-shop .price-box .price-label { vertical-align:baseline; } - .product-shop .price-box .old-price { color:#ccc; } - .product-shop .price-box .special-price .price-label { color:#222; } - .product-shop .price-box .special-price .price { font-weight:bold; } - - .price-box .price-excluding-tax, - .price-box .price-including-tax { display:block; } - .price-box .price-excluding-tax .label, - .price-box .price-including-tax .label { font-weight:bold; } - -.product-shop .product-desc { display:table;} -.product-shop .product-desc .ratings { overflow:hidden; } -.product-shop .product-desc .ratings, -.product-shop .product-desc .ratings a { color:#FB6B36; } -.rating-box { background:url(../images/i_star_black.png) repeat-x center left; background-size:15px 15px; width:75px; height:15px; margin:3px 0; } -.rating-box .rating { height:15px; background:url(../images/i_star.png) repeat-x center left; background-size:15px 15px; } - -.product-shop .product-options-bottom .price-box { font-size:14px; text-align:right; } -.product-shop .product-options-bottom .price-box .price { font-weight:bold; } -.product-shop .product-options-bottom .add-to-cart label, -.product-shop .product-options-bottom .add-to-cart input[type=text] { vertical-align:middle; margin:0; } -.product-shop .product-options-bottom .product-actions { margin:5px 0 10px; } -.product-shop .product-options-bottom .product-actions li { display:table-cell; } - -.product-shop .add-to-cart-box { padding:5px 0; } -.product-shop .add-to-cart-box label { vertical-align:middle; } -.product-shop .add-to-cart-box .qty { border:1px solid #ccc; border-radius:3px; font-size:12px; font-weight:bold; margin:0 0 0 5px; padding:4px 5px; -webkit-appearance:none; -webkit-background-clip:padding-box; background-clip:padding-box; width:35px; -webkit-box-sizing:content-box; box-sizing:content-box; vertical-align:middle; } -.product-shop .add-to-cart-box button { - clear:both; - display:block; - margin:0; - padding:5px 20px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.product-shop .add-to-cart-box input + button { margin-top:10px; } -@media (orientation: landscape) { - .product-shop .add-to-cart-box button { clear:none; display:inline-block; margin:0 0 0 10px; } -} - -.product-shop .product-image-and-actions .actions { margin:15px 0 0; } -.product-shop .product-image-and-actions .actions a { display:block; text-align:center; width:100px; margin:5px 0 0; padding:4px 10px; background:-webkit-gradient(linear, 0 0, 0 100%, from(#FFF), to(#C1C3C4)); background:-o-linear-gradient(top, #FFF 0%, #C1C3C4 100%); font-size:12px; font-weight:bold; color:#636363; border:1px solid #FFF; border-radius:5px; -webkit-box-shadow:0 0 3px 0 #9F9F9F; box-shadow:0 0 3px 0 #9F9F9F; } -.product-shop .product-image-and-actions .actions a:last-child { margin:5px 0 10px; } - -#product-options-wrapper dl, .giftcard-send-form { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F6F6F6), to(#C5C5C5)); - background:-o-linear-gradient(top, #F6F6F6 0%, #C5C5C5 100%); - margin:10px 0; - padding:5px 10px; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 0 3px 0 #9F9F9F; - box-shadow:0 0 3px 0 #9F9F9F; -} - -/* -.product-essential .product-options dt label { font-size:14px; font-weight:bold; } -.product-essential .product-options dt label em { float:left; margin:0 4px 0 0; color:#F9721F; } -.product-essential .product-options dd { border-bottom:1px solid #bbb; padding:0 0 10px; } -.product-essential .product-options dd + dt { border-top:1px solid rgba(255, 255, 255, 0.75); padding:10px 0 0; } -.product-essential .product-options dd:last-child { border:none; } -.product-essential .product-options select { width:100%; } -.product-essential .product-options input[type=text] { font-size:12px; width:20%; } -.product-essential .product-options input[type=text]:disabled { background:#ddd; } -.product-essential .product-options .qty-holder { display:block; margin:5px 0 0; } -.product-essential .product-options .options-list li { padding:10px 0 0; } -*/ - -.giftcard-send-form em { color:#f9721f; margin:0 4px 0 0; } -.giftcard-send-form label { display:block; font-size:14px; font-weight:bold; margin:0 0 2px; } -.giftcard-send-form select { font-size:18px; width:100%; } -.giftcard-send-form li { border-bottom:1px solid #bbb; margin:0; padding:0 0 8px; } -.giftcard-send-form li + li { border-top:1px solid rgba(255, 255, 255, 0.75); padding:8px 0 0; } -.giftcard-send-form li:last-child { border-bottom:none; } -.giftcard-send-form .field { margin-bottom:8px; } -.giftcard-send-form .gift-card-amount-field { padding:0; } -.giftcard-send-form .notice { text-align:right; } -.giftcard-send-form .notice span { float:left; font-size:11px; display:block; } -.giftcard-send-form .notice span:last-child { float:none; } - -#product-attribute-specs-table { width:100%; border-collapse:collapse; } -#product-attribute-specs-table th, -#product-attribute-specs-table td { padding:2px; vertical-align:middle; text-align:left !important; } -#product-attribute-specs-table tr:nth-child(odd) td, -#product-attribute-specs-table tr:nth-child(odd) th { background:#f6f6f6; } - -.grouped-items-table { border:1px solid #ccc; font-size:11px; line-height:13px; margin:0 0 5px; -webkit-border-radius:5px; } -.grouped-items-table th { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#ccc)); - background:-o-linear-gradient(top, #f6f6f6 0%, #ccc 100%); - border-bottom:1px solid #bbb; - padding:2px 2px 3px; -} -.grouped-items-table td { border-bottom:1px solid #ccc; vertical-align:top; } -.grouped-items-table input { width:20px; } -.grouped-items-table .price-box { margin:0; } -.grouped-items-table .price-excluding-tax, -.grouped-items-table .price-including-tax { display:block; } - -.product-shop .grouped-grid { - border:1px solid #fff; - padding:5px 10px 10px; - margin:10px 0 0; - border-radius:5px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#c5c5c5)); - background:-o-linear-gradient(top, #f6f6f6 0%, #c5c5c5 100%); - -webkit-box-shadow:0 0 3px 0 #9F9F9F; - box-shadow:0 0 3px 0 #9F9F9F; -} - -.product-shop .grouped-grid .add-to-cart-box { - padding:5px 0 2px; - text-align:right; -} - -.product-shop .grouped-grid .add-to-cart-box button { - display:inline-block; -} - -.product-shop .grouped-items-table { border:none; border-spacing:0; font-size:12px; margin:0; -webkit-border-radius:0; width:100%; } -.product-shop .grouped-items-table th, -.product-shop .grouped-items-table td { padding:5px 0; } -.product-shop .grouped-items-table th { background:none; border:none; text-align:left; } -.product-shop .grouped-items-table td { background:none; border:none; border-top:1px solid rgba(255, 255, 255, 0.75); border-bottom:1px solid #bbb; text-align:left; vertical-align:middle; } -.product-shop .grouped-items-table tr:first-child td { border-top:none; } -.product-shop .grouped-items-table tr:last-child td { border-bottom:none; } - -.product-shop .grouped-items-table input.qty { - border:1px solid #bababa; - border-radius:3px; - font-size:12px; - font-weight:bold; - padding:4px 5px; - vertical-align:middle; - width:25px; - -webkit-appearance:none; - -webkit-background-clip:padding-box; - background-clip:padding-box; - -webkit-box-sizing:content-box; - box-sizing:content-box; -} - -.catalog-product-gallery .product-gallery { - padding:10px 0 0; - position:relative; - overflow:hidden; - height:300px; - width:100%; -} - -.catalog-product-gallery .product-gallery ul { - display:table; - width:200%; -} -.catalog-product-gallery .product-gallery li { - display:table-cell; - padding:0; - text-align:center; - overflow:hidden; - max-width:100%; -} -.catalog-product-gallery .product-gallery li img { - vertical-align:bottom; - -webkit-box-shadow:0 0 6px rgba(0, 0, 0, 0.25); - box-shadow:0 0 6px rgba(0, 0, 0, 0.25); -} -.catalog-product-gallery .product-gallery .prev, -.catalog-product-gallery .product-gallery .next { - display:none; - position:absolute; - top:10px; - bottom:25px; - z-index:10; - width:50%; -} -.catalog-product-gallery .product-gallery .prev { - left:0; -} -.catalog-product-gallery .product-gallery .next { - left:50%; -} - -.catalog-product-gallery .add-to-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - display:inline-block; - padding:4px 7px 5px; - font-size:12px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - position:absolute; - top:50px; - right:5px; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-background-clip:padding-box; -} - -.product-collateral { clear:both; } -.product-collateral .box-description { padding:10px 0 0; } -.product-collateral .box-additional h2 { margin:0 0 10px; } -.product-collateral .collateral-box { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F6F6F6), to(#C5C5C5)); - background:-o-linear-gradient(top, #F6F6F6 0%, #C5C5C5 100%); - padding:5px 10px; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 0 3px 0 #9F9F9F; - box-shadow:0 0 3px 0 #9F9F9F; -} -.product-collateral h2, -.product-collateral h4 { font-size:14px; font-weight:bold; } -.product-specs { font-size:14px; text-align:justify; word-spacing:-0.2ex; } - - .up-sell-box { position:relative; } - .up-sell-box .up-sell-heading { font-size:13px; line-height:24px; height:24px; font-weight:bold; margin:0; padding:5px 0 10px; text-shadow:0 1px 0 #fff; } - .up-sell-box .prev, - .up-sell-box .next { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#dcdcdc)); - background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%); - border:1px solid #bebebe; - display:block; - position:absolute; - top:5px; - right:5px; - height:24px; - width:24px; - -webkit-border-radius:5px; - border-radius:5px; - z-index:1; - } - .up-sell-box .prev.disabled, - .up-sell-box .next.disabled { opacity:0.5; } - .up-sell-box .prev:after, - .up-sell-box .next:after { content:''; position:absolute; top:7px; z-index:2; font-size:0; line-height:0; width:0; } - .up-sell-box .prev { right:35px; } - .up-sell-box .prev:after { border-top:5px solid transparent; border-right:10px solid #000; border-bottom:5px solid transparent; right:8px; } - .up-sell-box .next:after { border-top:5px solid transparent; border-left:10px solid #000; border-bottom:5px solid transparent; left:8px; } - .carousel-wrap { overflow:hidden; position:relative; width:100%; } - .carousel-wrap .carousel-items { white-space:nowrap; -webkit-transition:all 150ms linear; -moz-transition:all 250ms linear; -o-transition:all 250ms linear; transition:all 250ms linear; } - @media all and (-webkit-transform-3d) { - .carousel-wrap .carousel-items { -webkit-transform:translateX(0); -webkit-perspective:1000; -webkit-backface-visibility:hidden; } - } - .carousel-wrap li { display:inline-block; vertical-align:top; padding:0 5px; white-space:normal; -webkit-box-sizing:border-box; box-sizing:border-box; } - .up-sell-box .product-image { background:#fff; display:inline-block; padding:3px; border:1px solid #ccc; -webkit-box-shadow:0 1px 2px #999; box-shadow:0 1px 2px #999; text-align:center; } - .up-sell-box .up-sell h5 { font-size:12px; line-height:17px; margin:5px 0; } - .up-sell-box .up-sell .price-box { font-size:12px; line-height:17px; } - .up-sell li .price-box { font-weight:bold; } - - .counter { padding:5px 0 0; text-align:center; } - .counter span { margin:0 2px; } - .counter span:before { content:'\2022'; color:#ddd; font-size:20px; display:inline-block; -webkit-text-stroke:1px #ddd; } - .counter span.active:before { color:#fff; } - -.collateral-box { margin:16px 0 0; } - .collateral-box .tags-list { font-size:12px; padding:10px; } - .collateral-box .tags-list a { font-weight:bold; color:#F4641E; } - .collateral-box .tags-list span { margin-right:5px; } - - -.compare-back-link { - position:absolute; - padding:0 0 0 10px; - z-index:10; -} -.compare-clear-all, -.compare-back-link a { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ddd), to(#eee)); - background:-o-linear-gradient(top, #ddd 0%, #eee 100%); - color:#000; - text-shadow:1px 1px 0 #fff; - display:inline-block; - border:1px solid #999; - border-left:0; - padding:5px 10px 5px 5px; - -webkit-border-radius:0 5px 5px 0; - position:relative; - z-index:4; - -webkit-transform:scale(0.95); -} -.compare-clear-all { - color:#fff; - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f85032), color-stop(50%, #f16f5c), color-stop(51%, #f6290c), color-stop(71%, #f02f17), color-stop(100%, #e73827)); - background:-o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%); - border:1px solid #777; - border-radius:5px; - display:inline-block; - font-weight:normal; - padding:5px 10px; - margin-left:60px; - position:static; - text-shadow:0 1px 0 #000; -} -.compare-back-link:before { - content:''; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ddd), to(#eee)); - background:-o-linear-gradient(top, #ddd 0%, #eee 100%); - border:1px solid #999; - height:18px; - width:18px; - position:absolute; - top:5px; - left:1px; - -webkit-transform:rotate(45deg) scale(1.001); - z-index:3; -} -.compare-table { border-collapse:collapse; border-spacing:0; table-layout:fixed; -webkit-backface-visibility:hidden; } -.compare-table th, -.compare-table td { background:#fff; border:1px solid #ccc; padding:5px 15px; vertical-align:top; } -.compare-table td a { color:#fb6b36; } -.compare-table th { background:url(../images/fabric.jpg) repeat; border:none; -webkit-box-shadow:inset -3px 0 3px -3px #ccc; box-shadow:inset -3px 0 3px -3px #ccc; text-shadow:1px 1px 1px #fff; text-align:left; position:relative; padding:5px 10px 5px 10px; } -.compare-table tr:nth-child(even) td { background:#f6f6f6; } -.compare-table .move-left, -.compare-table .move-right { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - border:1px solid #c4c4c4; - border-radius:5px; - display:inline-block; - padding:5px 10px; - position:relative; - height:16px; - width:10px; - -webkit-box-shadow:0 0 2px rgba(0, 0, 0, 0.15); - box-shadow:0 0 2px rgba(0, 0, 0, 0.15); -} -.compare-table .move-left:after, -.compare-table .move-right:after { content:''; position:absolute; top:8px; z-index:2; font-size:0; line-height:0; width:0; } -.compare-table .move-left:after { border-top:5px solid transparent; border-right:10px solid #888; border-bottom:5px solid transparent; right:11px; } -.compare-table .move-right:after { border-top:5px solid transparent; border-left:10px solid #888; border-bottom:5px solid transparent; left:11px; } -.compare-table .move-right { - float:right; -} -.compare-table.hide-controls .moved-right .move-right, -.compare-table.hide-controls .moved-right .move-left, -.compare-table.hide-controls .moved-left .move-right, -.compare-table.hide-controls .moved-left .move-left { - visibility:hidden; -} -.compare-table .nobr { display:block; padding:1px 20px 1px 10px; white-space:nowrap; position:relative; text-shadow:1px 1px 0 #fff; } -.compare-table .product-shop-row td:last-child .move-right, -.compare-table .product-shop-row td:nth-child(2) .move-left { visibility:hidden; } -.compare-table .product-shop-row td:only-of-type .move-left, -.compare-table .product-shop-row td:only-of-type .move-right { display:none; } -.compare-table .move-right-animation, -.compare-table .move-left-animation { - -webkit-transition:-webkit-transform 300ms linear; - -webkit-transform:translate3d(0, 0, -5px) !important; -} -.compare-table .move-right-animation-scale, -.compare-table .move-left-animation-scale { - -webkit-transition:-webkit-transform 300ms linear; - -webkit-transform:translate3d(0, 0, 5px) !important; -} -.compare-table .collapsible .nobr { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#bbb)); - background:-o-linear-gradient(top, #f6f6f6 0%, #bbb 100%); - border:1px solid #aaa; - border-radius:7px; - -webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.15), 0 1px 0 #fff; - box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.15), 0 1px 0 #fff; -} -.compare-table .collapsible .nobr:active, -.compare-table .collapsible.collapsed .nobr { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ddd), to(#ccc)); - background:-o-linear-gradient(top, #ddd 0%, #ccc 100%); -} -.compare-table .collapsible .nobr:before { - content:''; - background:url(../images/i_arrow_white.png) no-repeat 0 0; - background-size:10px 10px; - height:10px; - width:10px; - display:inline-block; - margin-left:-15px; - position:absolute; - top:5px; - left:100%; - -webkit-transition:all 300ms linear; - -webkit-transform:rotate(180deg); -} -.compare-table .collapsible.collapsed .nobr:before { -webkit-transform:rotate(0deg); } -.compare-table .collapsed .content { height:18px; max-width:125px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } -.compare-table .product-name { font-size:13px; font-weight:bold; line-height:16px; margin:0 10px 5px 0; overflow:hidden; } -.compare-table .product-name a { color:#000; } -.compare-table .btn-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - border:1px solid #fff; - border-radius:5px; - color:#fff; - font-size:11px; - font-weight:bold; - margin-left:-2px; - margin-bottom:7px; - padding:5px 10px; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.compare-table .btn-remove { -webkit-transform:translate3d(0, 0, 0); } -.compare-table .product-image { background:#fff; display:inline-block; margin:4px 0 10px; padding:3px; position:relative; border:1px solid #ccc; -webkit-box-shadow:0 1px 2px #ccc; box-shadow:0 1px 2px #ccc; text-align:center; } -.compare-table .product-image img {} -.compare-table .loader { background:url(../images/loader.gif) no-repeat center rgba(0, 0, 0, 0.05); background-size:20px 20px; float:right; height:20px; width:20px; } - -@-webkit-keyframes rotate { - from { - -webkit-transform: rotate(0deg); - } - to { - -webkit-transform: rotate(360deg); - } -} -.compare-table .btn-remove:before { - background:initial; -} -.compare-table .rotate { - -webkit-animation-name: rotate; - -webkit-animation-duration: 1s; - -webkit-animation-iteration-count: infinite; - -webkit-animation-timing-function: linear; -} - -/* Product review ------------------------------*/ -.review-product-list {} -.review-product-list .breadcrumbs .product { display:none; } -.review-product-list label { display:inline-block; font-weight:bold; padding:0 0 5px; } -.review-product-list label em { margin:0 5px 0 0; color: #F4641E; } -.review-product-list .rating-box { width:75px; height:15px; margin:3px 0; } -.review-product-list .rating-box .rating { height:15px; } -.review-product-list textarea { - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:5px; - padding:5px; - font-size:18px; - height:100px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} -.review-product-list .pager, -.review-product-list .form-add h2, -.review-product-list .form-add h3, -.review-product-list .form-add h4 em { display:none; } -.review-product-list .form-add h4 { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e5e5e5)); - background:-o-linear-gradient(top, #fff 0%, #e5e5e5 100%); - border-bottom:1px solid #ccc; - border-radius:5px 5px 0 0; - margin:0 -10px 0; - padding:10px; - text-shadow:1px 1px #fff; -} -.review-product-list .form-add { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - border:1px solid #ccc; - margin:10px 0 5px; - padding:0 10px 15px; - border-radius:5px; - -webkit-box-shadow:0 1px 3px #ccc; - box-shadow:0 1px 3px #ccc; -} -.review-product-list .form-add .form-list li:nth-child(2) { margin:15px 0 0; } -.review-product-list .box-reviews h2 { margin-bottom:6px; } -.review-product-list .box-reviews dl { border-radius:5px; padding:10px 10px 0; -webkit-box-shadow:0 1px 3px #ccc; box-shadow:0 1px 3px #ccc; } -.review-product-list .box-reviews dt { padding:0 0 5px; } -.review-product-list .box-reviews dt a, -.review-product-list .box-reviews dt h3 { display:block; font-size:13px; font-weight:bold; } -.review-product-list .box-reviews dd { overflow:hidden; } -.review-product-list .box-reviews dd:last-child { border:none; padding:0 0 10px; } -.review-product-list .box-reviews dd .date { color:#666; font-size:11px; display:block; } -@media(orientation:landscape) { - .review-product-list .box-reviews dd table { - float:right; - margin:-3px 0 0 10px; - } -} -.review-product-list .ratings-table { border-spacing:0; } -.review-product-list .ratings-table th { padding-right:5px; } -.review-table-wrap { - padding:10px 0 0; -} -.review-product-list .box-reviews dd + dt:before, -.review-table-wrap:after { - content:''; - background:-webkit-gradient(linear, left top, right top, color-stop(0%,#fff), color-stop(25%,#ccc), color-stop(75%,#ccc), color-stop(100%,#fff)); - background:-o-linear-gradient(top, #fff 0%, #ccc 22%, #fff 100%); - display:block; - height:1px; - width:100%; - margin:10px 0; - } -#product-review-table { border-spacing:0; margin:0; width:100%; -webkit-tap-highlight-color:rgba(0,0,0,0); } -#product-review-table thead th { display:none; font-size:0; line-height:0; vertical-align:top; } -#product-review-table thead th span { display:none; } -#product-review-table thead th:before { content:''; display:inline-block; font-size:12px; line-height:1; vertical-align:middle; } -#product-review-table thead th:nth-child(2):before { content:'1'; } -#product-review-table thead th:nth-child(3):before { content:'2'; } -#product-review-table thead th:nth-child(4):before { content:'3'; } -#product-review-table thead th:nth-child(5):before { content:'4'; } -#product-review-table thead th:nth-child(6):before { content:'5'; } -#product-review-table tbody th { font-size:13px; text-align:left; width:30px; } -#product-review-table tbody td { text-align:center; } -#product-review-table tbody td input { background:url(../images/i_star.png) no-repeat center; border:none; background-size:15px 15px; display:inline-block; height:25px; width:25px; opacity:0.25; margin:0; -webkit-appearance:none; -webkit-transition:all 100ms ease-in-out; } -#product-review-table tbody td input:checked, -#product-review-table tbody td.checked input { opacity:1; } -.review-product-list .buttons-set button { - padding:5px 10px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} - -/* Product Review Page ------------------------------*/ -.my-account .product-review .product-img-box {} -.my-account .product-review .product-img-box > * { display:none; } -.my-account .product-review .product-img-box > a { display:block; float:left; margin-right:10px; } -.my-account .product-review .product-img-box img { -webkit-border-radius:1px; -webkit-box-shadow:0 0 3px #D1D1D1; box-shadow:0 0 3px #D1D1D1; } -.my-account .product-review .product-details h2 { font-size:16px; font-weight:bold; line-height:1.3; margin:0; } -.my-account .product-review .product-details h3 { font-size:13px; margin:2px 0; } -.my-account .product-review .product-details dl { clear:left; padding:10px 0 0; } -.my-account .product-review .product-details dt { font-weight:bold; } -.my-account .product-review .ratings-table, -.review-product-list .ratings-table { border-collapse:collapse; margin:0 0 5px; border-spacing:0; } -.my-account .product-review .ratings-table th, -.review-product-list .ratings-table { color:#222; line-height:1; text-align:left; padding:4px 5px 4px 0; } -.my-account .product-review .buttons-set, -.review-customer-index .buttons-set, -.customer-address-form .back-link { position:absolute; top:51px; left:20px; } -.my-account .product-review .buttons-set .back-link, -.review-customer-index .buttons-set .back-link, -.customer-address-form .buttons-set .back-link { float:none; padding:0; } -.my-account .product-review .buttons-set .back-link small, -.review-customer-index .buttons-set .back-link small, -.customer-address-form .buttons-set .back-link small { display:none; } - -.review-customer-index section[role="main"] { padding-bottom:0; } -.review-customer-index .my-account .page-title { margin-bottom:0; } -.review-customer-index .pager { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - overflow:hidden; - margin:0 -10px; - padding:5px 10px; - text-align:right; -} -.review-customer-index .pager .amount { float:left; line-height:30px; } -.review-customer-index .pager select { width:60px; } -.review-customer-index .my-reviews-table-wrap { margin:0 -10px; } -.review-customer-index table { font-size:12px; line-height:16px; border-collapse:collapse; width:100%; } -.review-customer-index table th, -.review-customer-index table td { border:solid #eee; border-width:1px 0; padding:7px 5px; } -.review-customer-index table td { vertical-align:top; } -.review-customer-index table tr:first-child td { border-top:1px solid #ccc; } -.review-customer-index table tr:last-child td { border-bottom:1px solid #ccc; } -.review-customer-index table tr td:last-child { text-align:center; width:100px; } -.review-customer-index table h2 { font-size:14px; font-weight:bold; line-height:16px; } - - -/* Cart ------------------------------*/ -.cart-shared { margin:0 0 -10px; } -.cart-shared .page-title { background:#eee; border:solid #ccc; border-width:1px 0; margin:0 -10px 10px; padding:10px; text-align:left; -webkit-box-shadow:none; box-shadow:none; } -.cart-shared .page-title h1 { display:block; margin:0 auto; line-height:30px; text-shadow:0 1px 1px #fff; text-align:center; } -.cart-shared .page-title a { background:#ccc; border:1px solid #bbb; display:block; float:left; margin:-30px 0 0; font-size:11px; font-weight:bold; padding:5px 10px; -webkit-border-radius:4px; text-shadow:none; } -.cart-shared .label, -.cart-shared .weee .price { display:block; font-weight:bold; white-space:nowrap; } -.cart-shared .messages { margin:10px 0 7px; } -.cart-shared fieldset { border-bottom:1px solid #ccc; margin:0 -10px; padding:0 10px 5px; } -.remove-all-button { display:none; padding:10px 5px 15px; text-align:center; } -.remove-all-button a { - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); - background:-o-linear-gradient(top, #ee5f5b 0%, #c43c35 100%); - border:1px solid #fff; - color:#fff; - font-weight:bold; - border-radius:5px; - display:inline-block; - padding:5px 0; - width:100%; - -webkit-box-shadow:0 3px 3px 0 #9f9f9f; - box-shadow:0 3px 3px 0 #9f9f9f; - text-shadow:0 -1px 2px rgba(0, 0, 0, 0.25); +.toolbar a { + color:#707070; } -.cart-shared .remove-all-button { border-bottom:1px solid #eae8ea; } -.my-wishlist .remove-all-button { float:left; padding:0 8px 0 0; } -.my-wishlist .remove-all-button a { font-size:11px; padding:5px; box-sizing:border-box; -webkit-box-sizing:border-box; } -.cart-table-wrap { +.c-list > li { + background-color:#fff !important; + color:#424242; position:relative; + border-bottom:1px solid #ebe9eb; } -.cart-table-wrap .item-remove { - display:none; - position:absolute; - top:9px; - right:10px; -} -.cart-table-wrap.grouped-items { - padding:0 0 20px; -} -.cart-table-wrap.grouped-items .item-remove { - display:block; -} -.cart-table-wrap.grouped-items .cart-table .product-image { - position:absolute; - top:10px; - left:0; -} -.cart-table-wrap.grouped-items .cart-table td { - border:0; - padding:7px 7px 0 0; -} -.cart-table-wrap.grouped-items .cart-table .product-name { - margin:0; -} -.cart-table-wrap.grouped-items .cart-table td:last-child, -.cart-table-wrap.grouped-items .cart-table .item-options, -.cart-table-wrap.grouped-items .cart-table .item-qty, -.cart-table-wrap.grouped-items .cart-table .cart-price, -.cart-table-wrap.grouped-items .cart-table .price-box, -.cart-table-wrap.grouped-items .cart-table .label { - display:none; -} - -.cart-shared .cart-table { margin:3px 0 0; width:100%; } -.cart-shared .cart-table, -.cart-shared .cart-table .product-name { font-size:12px; } -.cart-shared .cart-table th, -.cart-shared .cart-table td { border-bottom:1px solid #EAE8EA; font-size:11px; padding:7px 7px 14px 0; } -.cart-shared .cart-table td:last-child { padding-right:0; } -.cart-shared .cart-table th { background:#ddd; font-weight:normal; } -.cart-shared .cart-table th:first-child { -webkit-border-top-left-radius:5px; } -.cart-shared .cart-table th:last-child { -webkit-border-top-right-radius:5px; } -.cart-shared .cart-table tr:last-child td { border:0; } -.cart-shared .cart-table .odd { background:#eee; } -.cart-shared .cart-table td b + input { vertical-align:middle; } -.cart-shared .cart-table td input { border:1px solid #ccc; border-radius:3px; font-size:12px; font-weight:bold; margin:0 0 0 10px; padding:4px 5px; -webkit-appearance:none; -webkit-background-clip:padding-box; width:25px; -webkit-box-sizing:content-box; } -.cart-shared .cart-table tfoot td { padding:0; vertical-align:top; } -.cart-shared .cart-table tfoot button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#333), to(#111)); - background:-o-linear-gradient(top, #333 0%, #111 100%); - border:none; - color:#fff; - font-size:13px; - font-weight:bold; - padding:8px 10px; - text-shadow:0 1px 0 #000; - -webkit-border-radius:0 0 5px 5px; - width:100%; -} -.cart-shared .cart-table tbody td { vertical-align:top; } -.cart-shared .cart-table .product-name { margin:0 0 10px; } -.cart-shared .cart-table .product-name a { font-size:12px; color:#2f2f2f; } -.cart-shared .cart-table .product-image img { border:1px solid #FFF; -webkit-box-shadow:1px 1px 3px 0 #ccc; box-shadow:1px 1px 3px 0 #ccc; } -.cart-shared .cart-table .item-remove, .btn-remove, .item-remove { - background:#e10000; - border-radius:8px; +.c-list > li:last-child { display:block; border-bottom:none; } +.c-list > li > a { + background:url(../images/custom/arrow.png) no-repeat right; + -webkit-background-origin:content-box; + background-origin:content-box; + color:#2f2f2f; display:block; - float:right; - position:relative; - top:2px; - padding:3px; - height:10px; - width:10px; - -webkit-background-clip:padding-box; -} -.cart-shared .totals .btn-remove { - background:none; - padding:0; - height:auto; - width:auto; - top:3px; - margin-left:2px; + padding:10px; + -webkit-user-select:none; + user-select:none; + -webkit-touch-callout:none; + touch-callout:none; + -webkit-tap-highlight-color:rgba(0,0,0,0); } -.cart-shared .cart-table .item-remove:before, -.btn-remove:before, -.item-remove:before { - content:''; - background:#fff; - border-radius:9px; - -webkit-box-shadow:0 0 6px #888; - box-shadow:0 0 6px #888; +.c-list > li > a:after { + content:"."; display:block; - position:absolute; - top:-2px; - left:-2px; - height:20px; - width:20px; - z-index:-1; -} -.cart-shared .cart-table .item-remove img, -.btn-remove img, -.item-remove img { vertical-align:top; } - -.cart-shared .cart-table .product-name { font-size:11px; line-height:13px; font-weight:bold; } - -.cart-shared .totals table { border-spacing:0; font-size:12px; width:100%; } -.cart-shared .totals td { padding:2px; } -.cart-shared .totals .summary-total td[colspan="1"] { text-align:right; } -.cart-shared .totals .summary-collapse { cursor:pointer; text-decoration:underline; } -.cart-shared .discount, -.cart-shared .giftcard { font-size:12px; margin:0 -10px 20px; padding:10px 15px 15px; } -.cart-shared .giftcard a, -.cart-shared .discount a { display:inline-block; padding:5px 0; text-decoration:underline; } -.cart-shared .discount h2, -.cart-shared .giftcard h2 { font-size:12px; font-weight:bold; margin:0; text-shadow:0 1px 0 #fff; } -.cart-shared .giftcard label, -.cart-shared .discount label { display:none; } -.cart-shared .giftcard .input-box, -.cart-shared .discount .input-box { display:inline-block; } -.cart-shared .giftcard .input-box input, -.cart-shared .discount .input-box input { - border:1px solid #CAC8C8; - border-radius:2px; - font-size:11px; - line-height:1; - padding:5px 10px; - width:140px; - -webkit-appearance:none; - appearance:none; - -webkit-box-shadow:inset 0 1px 2px #ccc; - box-shadow:inset 0 1px 2px #ccc; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.cart-shared .discount + .giftcard { margin-top:-30px; } -.cart-shared .discount .buttons-set { display:inline-block; vertical-align:top; margin:-1px 0 0; } -.cart-shared .giftcard button, -.cart-shared .discount .buttons-set button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#E2E2E2), to(#9D9D9D)); - background:-o-linear-gradient(top, #E2E2E2 0%, #9D9D9D 100%); - border:1px solid #FFF; - border-radius:5px; - color:#fff; - font-size:11px; - font-weight:bold; - margin:0; - padding:6px 10px; - vertical-align:top; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 -1px 2px rgba(0, 0, 0, 0.25); -} -.cart-shared .checkout-types { float:right; width:65%; } -.cart-shared .checkout-types li { text-align:right; } -.cart-shared .checkout-types li:first-child {margin:0 0 10px; } -.cart-shared .checkout-types li button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); clear:both; - display:block; - float:right; - margin:10px 0; - padding:5px 20px; - font-size:14px; - font-weight:bold; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -#update-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#E2E2E2), to(#9D9D9D)); - background:-o-linear-gradient(top, #E2E2E2 0%, #9D9D9D 100%); - float:left; - margin:10px 0; - padding:5px 10px; - font-size:14px; - font-weight:bold; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 -1px 2px rgba(0, 0, 0, 0.25); -} -.cart-shared .checkout-types .paypal-or { color:#333; display:block; padding:0 0 5px; text-shadow:0 0 1px #fff; } -.cart-shared .checkout-types li:nth-child(3) > a { display:inline-block; margin:10px 0 0; padding:10px; } - -.cart-shared .cart-footer { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#FDFDFD), to(#CFD0D1)); - background:-o-linear-gradient(top, #FDFDFD 0%, #CFD0D1 100%); - margin:0 -10px; - padding:10px; - -webkit-box-shadow: 0px 0px 10px 0px #222; - box-shadow: 0px 0px 10px 0px #222; -} -.cart-shared .cart-footer:after { content:"."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } - -.checkout-agreements { - list-style:none; - margin:0; - padding:0; + visibility:hidden; + line-height:0; + height:0; } -.checkout-agreements .agreement-content { - background:#fff; - border-radius:2px; - -webkit-border-radius:5px; - margin:10px 0; - padding:10px; - max-height:250px; - overflow:auto; - -webkit-box-shadow:inset 0 0 3px #000; - box-shadow:inset 0 0 3px #000; -} +.c-list h1 { font-size:16px; line-height:20px; font-weight:bold; } +.c-list .cloned-wrap { position:absolute; padding:10px; opacity:0; } +.c-list .cloned-wrap .product-image img { -webkit-box-shadow:none; box-shadow:none; } +.c-list .product-image { float:left; margin-right:10px; -webkit-transform:translate3d(0,0,0); } +.c-list .product-shop { overflow:hidden; padding:0 30px 0 0; } +.c-list .product-shop h1 { font-weight:bold; text-align:left; margin:0 0 7px; } +.c-list .product-shop .price-box { margin:0 0 5px; } -.checkout-agreements .agree { - margin:10px 0; +.to-cart-animate { + -webkit-animation:bounce-rotate 200ms infinite } -.std { clear:both; margin:10px 0; } -.a-left { text-align:left; } -.a-center { text-align:center; } -.a-right { text-align:right; } +.drop-start { -webkit-transform:scale(1.2); opacity:0.9; } -.page-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - text-shadow:0 1px 0 #fff; - margin:0 -10px 10px; - padding:10px; - -webkit-box-shadow:0 3px 3px #eee; - box-shadow:0 3px 3px #eee; +@-webkit-keyframes bounce-rotate { + 0% { -webkit-transform:rotate(3deg) skew(1deg) scale(1.2); } + 25% { -webkit-transform:rotate(0) skew(0) scale(1.2); } + 50% { -webkit-transform:rotate(-3deg) skew(-1deg) scale(1.2); } + 75% { -webkit-transform:rotate(0) skew(0) scale(1.2); } + 100% { -webkit-transform:rotate(3deg) skew(1deg) scale(1.2); } } - -/* User account +/* Product Info Box -----------------------------*/ -.show-links { position:absolute; top:53px; left:10px; z-index:99; } -.my-account { margin:0; } -.my-account .messages { margin:-10px -10px 10px; padding:0; } -.my-account .messages .success-msg { margin-bottom:0; } -.my-account .messages .success-msg a { color:#fff; } -.my-account .breadcrumbs {} -.my-account .welcome-msg { margin:0 0 10px; } - -.customer-account-index .my-account .messages { margin:0; padding:0; } - -.my-account .box { margin-bottom:10px; } -.my-account .box-account { background:#fff; padding:0 0 10px; } -.my-account .info-box { padding-bottom:0; } -.my-account .info-box .box-head { margin-bottom:0; } -.my-account .info-box .box-title { padding:5px 10px; } -.my-account .info-box .box-content { border:1px solid #aaa; padding:10px; margin:0 0 10px; } -.my-account .info-box .col2-set:nth-child(3) .col-1, -.my-account .info-box .col2-set:nth-child(3) .col-2 { display:inline-block; vertical-align:top; width:49%; } -.my-account .box-content a { text-decoration:underline; } -.my-account .dashboard .reviews ol { list-style:none; margin:0; padding:0; } -.my-account .dashboard .reviews .number { float:left; margin:0 10px 0 0; } -.my-account .dashboard .reviews .details { display:table; } -.my-account .dashboard .reviews .details p { display:inline; vertical-align:middle; } -.my-account .dashboard .reviews .details .rating-box { display:inline-block; vertical-align:middle; margin:0; } - -.my-account .my-wishlist { margin:0 -10px; } - -.my-account .page-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - margin:0 -10px 10px; - padding:10px; - -webkit-box-shadow:0 3px 3px #eee; - box-shadow:0 3px 3px #eee; - text-shadow:0 1px 0 #fff; -} - -.my-account .box-head { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffb76b), color-stop(50%, #ffa73d), color-stop(51%, #ff7c00), color-stop(100%, #ff7f04)); - background:-o-linear-gradient(top, #ffb76b 0%, #ffa73d 50%, #ff7c00 51%, #ff7f04 100%); - border-bottom:1px solid #999; - padding:7px 10px 8px; - position:relative; -} -.my-account .box-head a { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fff)); - background:-o-linear-gradient(top, #eee 0%, #fff 100%); - font-weight:bold; - position:absolute; - padding:2px 10px; - top:3px; - right:5px; - -webkit-border-radius:4px; - border-radius:4px; - -webkit-box-shadow:inset 0 0 2px #000; - box-shadow:inset 0 0 2px #000; - text-shadow:0 1px 0 #fff; -} -.my-account .box-head h2 { color:#f6f6f6; font-weight:bold; text-shadow:0 0 3px #333; line-height:1; } -.my-account .box-recent .data-table { border-spacing:0; width:100%; } -.my-account .box-recent .data-table th, -.my-account .box-recent .data-table td { padding:2px 5px; } -.my-account .box-recent .data-table th { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#ccc)); - background:-o-linear-gradient(top, #eee 0%, #ccc 100%); - border-bottom:1px solid #aaa; - text-shadow:0 1px 0 #fff; -} -.my-account .box-recent .data-table tr:nth-child(odd) { background:#f6f6f6; } -.my-account .box-recent .data-table tr td:nth-child(3) { text-align:center; } -.my-account .box-recent .data-table tr td:first-child a { - display:block; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fff)); - background:-o-linear-gradient(top, #eee 0%, #fff 100%); - font-weight:bold; - margin:4px 0; - padding:2px 10px; - -webkit-border-radius:4px; - border-radius:4px; - -webkit-box-shadow:inset 0 0 2px #000; - box-shadow:inset 0 0 2px #000; - text-shadow:0 1px 0 #fff; -} +.price-box .price-including-tax, +.price-box .price-excluding-tax { display:block; } +.price-box .price-including-tax .price { font-weight:bold; } + +.product-view {} +.product-view .product-name h1 { color:#424242; font-size:18px; font-weight:bold; text-align:left; line-height:20px; margin:0 0 9px; } +.product-view .product-image-wrap { padding:10px; position:relative; } +.product-view .product-image { position:relative;; } +.product-view .product-image li { text-align:center; } +.product-view .product-image li a { display:block; } + +.product-view .product-image-wrap img { position:relative; } +.product-view .product-image-wrap img.cloned { position:absolute; top:10px; left:50%; margin:0 0 0 -72px; -webkit-transition:all ease-in 400ms; -moz-transition:all ease-in 400ms; -o-transition:all ease-in 400ms; transition:all ease-in 400ms; } +.product-view .product-image-wrap img.animate { z-index:101; } + +.product-view .product-shop { padding:15px; } +.product-view .product-shop .buttons-set { margin:10px 0 0; } +.product-view .product-shop .product-main-info .price-box { color:#424242; font-size:18px; line-height:26px; margin:10px 0; } +.product-view .product-shop .product-main-info .price-box-bundle .price-box {} +.product-view .product-shop .product-main-info .item-options { margin:10px 0 0; } +.product-view .product-shop .product-main-info .item-options dt { color:#424242; font-style:15px; font-weight:bold; } +.product-view .product-shop .product-main-info + .options-container-small { margin:15px 0 0; } + +.product-view .product-shop .availability { color:#424242; font-size:13px; font-weight:bold; margin:0 0 9px; } +.product-view .product-shop .availability span { font-weight:normal; } +.product-view .product-shop .tier-prices { margin:10px 0; } + +.product-view .product-shop .add-to-box {} +.product-view .product-shop .add-to-box .qty, +.product-view .product-shop .add-to-box label { display:none; } +.product-view .price-box .price-label { vertical-align:baseline; } +.product-view .price-box .old-price { color:#ccc; } +.product-view .price-box .special-price .price-label { color:#222; } +.product-view .price-box .special-price .price { font-weight:bold; } + +.product-view .add-to-cart label[for="qty"], +.product-view .add-to-cart input.qty { display:none; } + +.product-view .product-img-box .product-image:before { background:url(../images/i_zoom.png) no-repeat 0 0; content:''; display:block; position:absolute; top:15px; right:25px; height:14px; width:14px; } +.product-view .product-img-box .controls .prev, +.product-view .product-img-box .controls .next { height:auto; top:40px; bottom:40px; width:auto; z-index:101; } +.product-view .product-img-box .controls .prev { left:0; right:80%; } +.product-view .product-img-box .controls .next { left:80%; right:0; } + +.product-view .short-description { margin:0; padding:15px; } + +.product-view .product-add-to { padding:0 15px 15px; } + +.send-friend .fieldset, +.send-friend .buttons-set { padding:15px; } +.send-friend .buttons-set .back-link { display:none; } +.send-friend .fieldset .btn-remove { float:right; position:relative; top:-4px; right:-4px; } +.send-friend .fieldset .legend { color:#424242; font-size:18px; margin:0 0 10px; } +.send-friend #max_recipient_message, +.send-friend #add_recipient_button { margin:10px 0 0; } -.my-account .box-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#ccc)); - background:-o-linear-gradient(top, #eee 0%, #ccc 100%); - border:1px solid; - border-color:#bbb #aaa; - color:#333; - font-size:13px; - text-shadow:0 1px 0 #fff; - position:relative; -} -.my-account .box-title .separator { display:none; } -.my-account .box-title a { position:absolute; top:5px; right:5px; text-decoration:underline; } -.my-account .box-title h3 { display:inline-block; } +.product-collateral { clear:both; } +.product-collateral .box-collateral { padding:15px; } -.my-account .box-content h4 {} -.my-account .col2-set .col-1, -.my-account .col2-set .col-2 {} -.my-account .col2-set .col-1:last-child, -.my-account .col2-set .col-2:last-child {} -.my-account .sub-title, -.my-account .legend { color:#333; font-size:15px; font-weight:bold; margin:0 0 5px; text-shadow:0 1px 0 #ddd; } -.my-account .back-link { display:none; float:left; margin:0 15px 0 0; } -.my-account .input-box select { font-size:16px; } -.my-account .buttons-set, -.my-account .buttons-set2 { clear:both; text-align:center; } -.my-account .buttons-set:after { - content:"."; - display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; -} -.my-account label em, -.my-account .buttons-set .required, -.my-account label[for="street_1"] { display:none; } +.product-collateral .box-additional { background:none; padding:0; } +.product-collateral .box-additional h2 { display:none; } +.product-collateral .box-additional .data-table { color:#424242; border-collapse:collapse; width:100%; } +.product-collateral .box-additional .data-table th, +.product-collateral .box-additional .data-table td { padding:15px; text-align:left !important; vertical-align:top; } +.product-collateral .box-additional .data-table th { font-weight:bold; } -.my-account .storecredit .account-balance { margin:0 0 10px; } +.rating-box { background:url(../images/i_star_blank.png) repeat-x center left; height:18px; width:100px; } +.rating-box .rating { height:18px; background:url(../images/i_star.png) repeat-x center left; } -.sales-order-view .my-account { - margin:0; -} -.sales-order-view #my-orders-table { - border-collapse:collapse; - margin:10px 0 15px; - -webkit-box-shadow:0 3px 6px #ccc; - box-shadow:0 3px 6px #ccc; -} -.sales-order-view #my-orders-table th, -.sales-order-view #my-orders-table td { - background:#fff; - text-align:left; - vertical-align:top; -} -.sales-order-view #my-orders-table th { - color:#222; - width:33%; -} -.sales-order-view #my-orders-table .product-name { - font-weight:normal; -} -.sales-order-view #my-orders-table tbody.collapsed tr, -.sales-order-view #my-orders-table tbody.collapsed td dl { - display:none; -} -.sales-order-view #my-orders-table tbody tr:first-child { - display:table-row; -} -.sales-order-view #my-orders-table tbody { - border:1px solid #ccc; -} -.sales-order-view #my-orders-table tbody tr:first-child { - border:1px solid #ccc; - border-bottom-color:#bbb; -} -.sales-order-view #my-orders-table tbody tr:first-child th, -.sales-order-view #my-orders-table tbody tr:first-child th + td { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#ddd)); - background:-o-linear-gradient(top, #f6f6f6 0%, #ddd 100%); - display:table-cell; - padding:5px; - font-weight:normal; - text-shadow:0 -1px 0 #fff; -} -.sales-order-view #my-orders-table tbody tr:first-child th + td { - padding-right:30px !important; -} -.sales-order-view #my-orders-table tbody tr:first-child th + td:before { - background:url(../images/i_arrow.png) no-repeat 0 0; - background-size:12px 12px; - content:''; - display:block; - height:12px; - width:12px; - margin:2px 0 0; - position:absolute; - right:17px; - -webkit-transform:scaleY(-1); -} -.sales-order-view #my-orders-table tbody.collapsed tr:first-child th + td:before { - -webkit-transform:scaleY(1); -} -.sales-order-view #my-orders-table tr:nth-child(even) th, -.sales-order-view #my-orders-table tr:nth-child(even) td { -} -.sales-order-view #my-orders-table td[colspan="2"] { - color:#808080; - font-size:12px; - padding:10px 0 0; - font-weight:bold; - text-transform:uppercase; - text-shadow:0 -1px 0 #fff; -} -.sales-order-view #my-orders-table td[colspan="2"] .option-label { - padding:5px 10px 0 5px; -} -.sales-order-view #my-orders-table tfoot tr:first-child th, -.sales-order-view #my-orders-table tfoot tr:first-child td { - padding-top:10px; -} -.sales-order-view #my-orders-table tfoot tr:last-child th, -.sales-order-view #my-orders-table tfoot tr:last-child td { - padding-bottom:10px; -} -.sales-order-view #my-orders-table tfoot th, -.sales-order-view #my-orders-table tfoot td { - border:0; -} +.product-view .rating-box { margin:0 0 10px; } +.product-view .rating-links { color:#666; text-align:right; } +.product-view .rating-links a { color:#1394ca; display:inline-block; text-decoration:underline; } +.product-view .rating-links a:first-child { float:left; margin-right:10px; } +.product-view .rating-links .separator { display:none; } -.sales-order-view .box .box-content { padding:10px; } - -.sales-order-history .data-table { border-spacing:0; margin:-10px 0 0 0; width:100%; } -.sales-order-history .data-table th, -.sales-order-history .data-table td { padding:2px 5px; } -.sales-order-history .data-table th { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#ccc)); - background:-o-linear-gradient(top, #eee 0%, #ccc 100%); - border-bottom:1px solid #aaa; - text-shadow:0 1px 0 #fff; -} -.sales-order-history .data-table th:nth-child(4) { width:20%; text-align:left; } -.sales-order-history .data-table tr:nth-child(odd) { background:#f6f6f6; } -.sales-order-history .amount { display:none; } -.sales-order-history .pager { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #FFB76B), color-stop(50%, #FFA73D), color-stop(51%, #FF7C00), color-stop(100%, #FF7F04)); - background:-o-linear-gradient(top, #FFB76B 0%, #FFA73D 50%, #FF7C00 51%, #FF7F04 100%); - border-bottom: 1px solid #999; - margin: 0 0 10px; - padding: 7px 10px 8px; - color: #F6F6F6; - font-weight: bold; - text-shadow: 0 0 3px #333; - line-height: 1; - text-align:right; - overflow:hidden; -} -.sales-order-history .limiter { - float:left; -} -.sales-order-history .limiter select, -.sales-order-history .pages select { - padding:3px 30px 3px 7px; -} -.sales-order-history .back-link a { - margin-left: 10px; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} -.customer-account-edit .buttons-set a { - display:block; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} - -.my-account form label, -.my-account form .field label, -.my-account form .wide label { color:#5e5e5e; display:block; font-size:12px; line-height:16px; margin:8px 0 0; padding:0 0 3px; font-weight:bold; } -.my-account form .buttons-set { padding:10px 0; } -.my-account .form-list label { display:block; margin:5px 0 2px 0; } -.my-account .form-list select { border:1px solid; border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; border-radius:5px; font-size:18px; padding:5px 30px 5px 5px; width:100%; margin:0; } -.my-account .form-list .control .checkbox + label, -.my-account .form-list .control .input-box + label { display:inline; margin-left:2px; vertical-align:middle; } -.my-account button { - display:inline-block; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - color:#FFF; - font-size:14px; - border:1px solid #FFF; - border-radius:5px; - margin:0; - padding:5px 10px; - vertical-align:top; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -.newsletter-manage-index .my-account .back-link a { - display:block; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} -.customer-address-index .page-title h1 { float:left; padding:5px 0 0 0; } -.customer-address-index .page-title button { - float:right; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fff)); - background:-o-linear-gradient(top, #eee 0%, #fff 100%); - font-weight: bold; - padding: 6px 10px; - border:0; - -webkit-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 0 2px #000; - box-shadow: inset 0 0 2px #000; - text-shadow: 0 1px 0 white; -} -.customer-address-index .page-title:after { - content: "."; - display: block; - clear: both; - visibility: hidden; - line-height: 0; - height: 0; -} -.customer-address-index .addresses-list {} -.customer-address-index .addresses-list ol { list-style:none; margin:0; padding:0; } -.customer-address-index .addresses-list ol li {} -.customer-address-index .back-link a { - display:block; - margin:0 0 0 10px; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} +.product-view .box-description .std { margin:0; } -.block-account { margin:0; padding:0; position:absolute; width:100%; left:-100%; z-index:100; -webkit-box-shadow:0 3px 3px rgba(0, 0, 0, .25) } -.block-account .block-title { display:none; } -.block-account li { background:#eee; border-bottom:1px solid #ccc; padding:10px 10px 10px 100px; } -.block-account .back { background:#333; color:#fff; padding:10px; position:absolute; top:0; bottom:0; left:0; width:60px; } +.product-view .product-shop .add-to-box button, +.product-view .product-options-bottom .add-to-cart button { background:url(../images/bg_gradient.png) repeat-x 0 0 #1394ca; color:#fff; font-size:24px; display:block; border:0; height:45px; line-height:45px; margin:15px 0 0; padding:0; -webkit-appearance:none; appearance:none; text-shadow:0 -1px 0 rgba(0, 0, 0, .45); width:100%; } +.product-view .product-options-bottom .add-to-cart + .add-to-links { margin:10px 0 0; } +.product-view .product-options-bottom .add-to-cart + .add-to-links li:first-child a { width:100%; } +.paypal-logo { text-align:center; } +.paypal-or { display:block; padding:10px 0; text-align:center; } -/* Order ------------------------------*/ -.sales-order-invoice .my-account, -.sales-order-shipment .my-account, -.sales-order-creditmemo -.sales-order-view .my-account { padding:0 10px; } -.sales-order-invoice .page-title, -.sales-order-shipment .page-title, -.sales-order-view .page-title { margin:0 -10px; } -.sales-order-invoice .page-title span, -.sales-order-shipmente .page-title span, -.sales-order-view .page-title span { display:none; } -.sales-order-invoice .page-title h1, -.sales-order-shipment .page-title h1, -.sales-order-view .page-title h1 { float:left; padding:3px 0 0; } -.sales-order-invoice .page-title a, -.sales-order-shipment .page-title a, -.sales-order-view .page-title a { - float:right; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fff)); - background:-o-linear-gradient(top, #eee 0%, #fff 100%); - font-weight: bold; - margin:0 0 0 10px; - padding: 6px 10px; - border:0; - -webkit-border-radius: 4px; - -webkit-box-shadow: inset 0 0 2px #000; - box-shadow: inset 0 0 2px #000; - text-shadow: 0 1px 0 white; -} -.sales-order-view .page-title .link-print { - display:none; -} -.sales-order-invoice .page-title:after, -.sales-order-shipment .page-title:after, -.sales-order-view .page-title:after { - content: "."; - display: block; - clear: both; - visibility: hidden; - line-height: 0; - height: 0; -} -.sales-order-invoice .box .box-title, -.sales-order-shipment .box .box-title, -.sales-order-view .box .box-title { margin:0 -10px; padding:3px 10px; } -.sales-order-invoice .box .box-content, -.sales-order-shipment .box .box-content, -.sales-order-view .box .box-content { padding:10px 0; } -.sales-order-invoice .back-link a, -.sales-order-shipment .back-link a, -.sales-order-view .back-link a { - display:block; - margin:0 0 10px; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} -.sales-order-invoice .order-details .data-table, -.sales-order-shipment .order-details .data-table, -.sales-order-view .order-details .data-table { width:100%; font-size:12px; } -.sales-order-invoice .order-details .data-table th, -.sales-order-shipment .order-details .data-table th, -.sales-order-view .order-details .data-table th { background:#909090; color:#FFF; } -.sales-order-invoice .order-details .data-table th:first-child, -.sales-order-shipment .order-details .data-table th:first-child, -.sales-order-view .order-details .data-table th:first-child { text-align:left; } -.sales-order-invoice .order-details .data-table th:nth-child(4), -.sales-order-shipment .order-details .data-table th:nth-child(4), -.sales-order-view .order-details .data-table th:nth-child(4) { width:20% } -.sales-order-invoice .order-details .data-table .even tr td, -.sales-order-shipment .order-details .data-table .even tr td, -.sales-order-view .order-details .data-table .even tr td { background:#EEE; } -.sales-order-invoice .order-details .data-table th, -.sales-order-invoice .order-details .data-table td, -.sales-order-shipment .order-details .data-table th, -.sales-order-shipment .order-details .data-table td, -.sales-order-view .order-details .data-table th, -.sales-order-view .order-details .data-table td { padding:2px 5px; } -.sales-order-invoice .order-info dt, -.sales-order-shipment .order-info dt, -.sales-order-view .order-info dt { display:none; } -.sales-order-invoice .order-info dd, -.sales-order-shipment .order-info dd, -.sales-order-view .order-info dd { margin:0; } -.sales-order-invoice .order-info dd ul, -.sales-order-shipment .order-info dd ul, -.sales-order-view .order-info dd ul { float:left; } -.sales-order-invoice .order-info dd ul li, -.sales-order-shipment .order-info dd ul li, -.sales-order-view .order-info dd ul li { - display:inline-block; - margin:0 10px 10px 0; - font-size: 16px; -} -.sales-order-invoice .order-info dd ul li a, -.sales-order-shipment .order-info dd ul li a, -.sales-order-view .order-info dd ul li a { - display:block; - padding: 5px 10px; - border: 1px solid #cecece; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} -.sales-order-invoice .order-date, -.sales-order-shipment .order-date, -.sales-order-view .order-date { display:inline-block; padding:6px 0 15px 0; font-size: 16px; } +/* Carousel */ +.carousel-wrap {} +.carousel-wrap li { display:inline-block; vertical-align:top; white-space:normal; } +.carousel-wrap .box-title { max-width:80%; } +.carousel-wrap .ratings { display:none; } +.carousel-wrap .carousel-items { white-space:nowrap; -webkit-transition:all 150ms linear; -moz-transition:all 250ms linear; -o-transition:all 250ms linear; transition:all 250ms linear; } +.carousel-wrap .carousel-items-wrap { overflow:hidden; } -/* Wishlist ------------------------------*/ -.my-wishlist h1 { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - margin:0 0 10px; - padding:10px; -} -.my-wishlist h2 { font-weight:bold; line-height:16px; } -.my-wishlist .buttons-set { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#cfd0d1)); - background:-o-linear-gradient(top, #fdfdfd 0%, #cfd0d1 100%); - margin:10px 0 -10px; - padding: 10px; - -webkit-box-shadow:0px 0px 10px 0px rgba(0, 0, 0, .25); - box-shadow:0px 0px 10px 0px rgba(0, 0, 0, .25); -} -.my-wishlist .buttons-set:after { content:"."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } -.my-wishlist .buttons-set li { float:left; } -.my-wishlist .buttons-set li:first-child { padding:0 8px 0 0; } -.my-wishlist .buttons-set li:last-child { float:right; } -.my-wishlist .buttons-set li .add-all-to-cart, -.my-wishlist .buttons-set li .btn-share { - text-align:right; - padding:5px 10px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - font-size:11px; - font-weight:bold; - color:#fff; - border:1px solid #fff; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9f9f9f; - box-shadow:0 3px 3px 0 #9f9f9f; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -.my-wishlist .buttons-set li .btn-share { - margin:0; - line-height:18px; - -webkit-appearance:none; - appearance:none; -} -.my-wishlist .buttons-set li .update-wishlist { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#e2e2e2), to(#9d9d9d)); - background:-o-linear-gradient(top, #e2e2e2 0%, #9d9d9d 100%); - color:#fff; - border:1px solid #fff; - border-radius:5px; - margin:0; - padding:5px 10px; - float:left; - font-size:11px; - font-weight:bold; - line-height:18px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 -1px 2px rgba(0, 0, 0, 0.25); - -webkit-appearance:none; - appearance:none; -} -.my-wishlist .buttons-set li span { display:inline-block; } - -#wishlist-list { margin:-10px 0 0; min-height:200px; } -#wishlist-list li > a { float:left; padding:10px; } -#wishlist-list li > a img { border:1px solid #FFF; -webkit-box-shadow:1px 1px 3px 0 #ccc; box-shadow:1px 1px 3px 0 #ccc; } -#wishlist-list li { border-bottom:1px solid #CCC; position:relative; min-height:80px; } -#wishlist-list li:last-child { border-bottom:0; } -#wishlist-list .wishlist-item { overflow:hidden; } -#wishlist-list .wishlist-item { padding:10px; position:relative; } -#wishlist-list .wishlist-item .price-box { margin:0 0 5px; } -#wishlist-list li.no-qty .qty-holder { display:none; } -#wishlist-list .qty { width:25px; margin:-2px 0 0; padding:2px 3px; border-radius:5px; font-size:12px; } -#wishlist-list button { margin:0; padding:0; border:0; } -#wishlist-list button.btn-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f39823), to(#f37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - text-align:right; +@media all and (-webkit-transform-3d) { +.carousel-wrap .carousel-items { -webkit-transform:translateX(0); -webkit-perspective:1000; -webkit-backface-visibility:hidden; } +} + +.box-up-sell { position:relative; padding:15px; } +.box-up-sell h2 { color:#424242; font-size:18px; font-weight:bold; line-height:25px; margin:0 0 10px; } +.box-up-sell .item { color:#424242; font-size:15px; line-height:18px; } +.box-up-sell .item a { color:#424242; } +.box-up-sell .item h3 { max-height:36px; margin:0 0 5px; overflow:hidden; text-overflow:ellipsis; width:100%; } +.box-up-sell .item img { margin:0 0 5px; } +.box-up-sell .price-box .price { font-weight:bold; } +.box-up-sell .product-image {} +.box-up-sell .controls { background:url(../images/bg_divider_dark.png) no-repeat center; position:absolute; top:15px; right:15px; height:24px; width:49px; } + +.controls .prev, +.controls .next { display:block; position:absolute; top:0; right:0; height:24px; width:24px; } +.controls .prev { background:url(../images/arrow_left.png) no-repeat center; } +.controls .next { background:url(../images/arrow_right.png) no-repeat center; } +.controls .prev.disabled, +.controls .next.disabled { opacity:.25; } +.controls .prev { right:25px; } + +.counter { padding:5px 0 0; text-align:center; } +.counter span { margin:0 2px; } +.counter span:before { content:'\2022'; color:#ddd; font-size:20px; display:inline-block; -webkit-text-stroke:1px #ddd; } +.counter span.active:before { color:#fff; } + +.product-shop .grouped-items-table { border:none; border-spacing:0; font-size:15px; margin:0; -webkit-border-radius:0; width:100%; } +.product-shop .grouped-items-table th, +.product-shop .grouped-items-table td { padding:5px 0; } +.product-shop .grouped-items-table th { display:none; } +.product-shop .grouped-items-table td { background:none; border:none; border-bottom:1px solid #e4e4e4; text-align:left; vertical-align:middle; } +.product-shop .grouped-items-table tr:last-child td { border-bottom:none; } +.product-shop .grouped-items-table input.qty { text-align:center; width:40px; } + +/* ------------ */ + +.product-view .box-tags { padding:15px; } +.product-view .box-tags a { color:#1394ca; display:inline-block; font-weight:bold; } +.product-view .box-tags li { display:inline; margin-right:10px; } +.product-view .box-tags h2 { color:#424242; font-size:18px; font-weight:bold; margin:0 0 10px; } +.product-view .box-tags h3, +.product-view .form-add-tags { display:none; } + +/* ------------ */ + +.add-to-links { display:table; font-size:12px; margin:0; position:relative; width:100%; text-align:center; } +.add-to-links > li { display:table-cell; text-align:center; line-height:1; vertical-align:top; } +.add-to-links > li > a, +.add-to-links > li .split-button strong { background:url(../images/bg_gradient.png) repeat-x 0 0 #1394ca; background-size:auto 30px; color:#fff; display:inline-block; font-weight:normal; height:30px; line-height:30px; text-shadow:0 -1px 0 rgba(0, 0, 0, .45); width:99.5%; } +.add-to-links > li .split-button strong + a { display:block; height:30px; margin:0 0 -30px; position:relative; top:-30px; overflow:hidden; text-indent:-200%; } +.add-to-links > li .split-button.active .list-container { display:block; } +.add-to-links > li .split-button .list-container { border:1px solid #e4e4e4; display:none; position:absolute; top:0; left:0; text-align:left; } +.add-to-links > li .split-button .list-container li { background:#fff; border-bottom:1px solid #e4e4e4; height:30px; line-height:30px; padding:0 10px; box-shadow:0 0 3px rgba(0, 0, 0, .15); } +.add-to-links > li .split-button .list-container li:last-child { border:none; } +.add-to-links > li .split-button .list-container .new { background:#e4e4e4; color:#424242; text-shadow:0 1px 0 #fff; } +.add-to-links > li .split-button .list-container .new:before { content:'+'; display:inline-block; margin-right:5px; } +.add-to-links .separator { display:none; } + +.product-view .options-container-big .product-options { padding:15px; } +.product-view .options-container-big .product-options-bottom { padding:0 15px 15px; } +.product-view .options-container-small .product-options {} +.product-view .options-container-small .product-options-bottom .price-box, +.product-view .options-container-small .product-options-bottom .price-box { display:none; } + +.product-view .product-options dt { margin:0 0 10px; } +.product-view .product-options dt label { color:#424242; font-size:15px; font-weight:bold; } +.product-view .product-options dt label em { color:#f9721f; margin-right:5px; } +.product-view .product-options dd { font-size:14px; border-bottom:1px solid #ccc; padding:0 0 15px; } +.product-view .product-options dd + dt { padding:15px 0 0; } +.product-view .product-options dd:last-child { border:none; padding:0; } +.product-view .product-options dd:last-child .input-box { margin:0; } +.product-view .product-options select { width:100%; } +.product-view .product-options input.qty { width:20%; } +.product-view .product-options input.qty:disabled { background:#f5f5f5; } +.product-view .product-options .input-box { margin:0 0 10px; } +.product-view .product-options .qty-holder { display:block; margin:5px 0 0; } +.product-view .product-options .qty-holder label, +.product-view .product-options .qty-holder label + input { vertical-align:middle; } +.product-view .product-options .options-list {} +.product-view .product-options .options-list li { margin:0 0 8px; } +.product-view .product-options .options-list li:last-child { margin:0; } +.product-view .product-options .options-list input, +.product-view .product-options .options-list input + label, +.product-view .product-options .options-list input + .label { vertical-align:middle; } +.product-view .product-options .options-list input { float:left; margin-right:10px; } +.product-view .product-options .options-list input + label, +.product-view .product-options .options-list input + .label { display:table; } +.product-view .product-options .options-list a { text-decoration:underline; } + +.giftcard-send-form { padding:15px 0 0; } +.giftcard-send-form em { color:#f9721f; } +.giftcard-send-form label { color:#424242; display:block; font-size:15px; font-weight:bold; } +.giftcard-send-form .gift-card-amount-field { padding:0; } + +.giftcard-amount-form .notice { padding:5px 0 10px; text-align:right; } +.giftcard-amount-form .notice span { float:left; font-size:12px; display:block; } +.giftcard-amount-form .notice span:last-child { float:none; } + +.product-view .product-options-bottom .required { font-size:10px; line-height:12px; margin:10px 0 0; text-align:right; } +.product-view .product-options-bottom .price-box { color:#424242; font-size:18px; line-height:24px; } + +.catalog-product-gallery .buttons-set { padding:10px; } +.catalog-product-gallery .buttons-set a { text-align:center; } +.catalog-product-gallery .product-gallery { background-color:#fff !important; padding:10px 0 0; position:relative; overflow:hidden; height:300px; width:100%; } +.catalog-product-gallery .product-gallery .prev, +.catalog-product-gallery .product-gallery .next { background-color:#fff; background-position:center; border:1px solid #e4e4e4; border-radius:100%; box-shadow:0 0 3px rgba(0, 0, 0, .15); top:50%; z-index:101; } +.catalog-product-gallery .product-gallery .prev { right:80%; } +.catalog-product-gallery .product-gallery .next { left:80%; } +.catalog-product-gallery .product-gallery ul { display:table; width:200%; } +.catalog-product-gallery .product-gallery li { display:table-cell; padding:0; text-align:center; overflow:hidden; max-width:100%; } +.catalog-product-gallery .product-gallery li img { vertical-align:bottom; } + +.catalog-product-gallery .add-to-cart {} + +/* Catalog Search */ + +.catalogsearch-result-index .note-msg { padding:15px; } + +/* Product review +-----------------------------*/ + +.product-review { padding:15px; } +.product-review .product-img-box { text-align:center; } + +.box-reviews .box-title, +.box-reviews .box-content .product-name { display:none; } +.box-reviews .box-content { padding:15px; } +.box-reviews .form-list { margin:0 0 10px; } +.box-reviews p.required { font-size:10px; line-height:12px; margin:10px 0 0; text-align:right; } +.box-reviews .form-add h4 { display:none; } + +#product-reviews-list { display:none; } +#customer-reviews:target #product-reviews-list { display:block; } + +.ratings-table { margin:0 0 10px; } +.ratings-table th, +.ratings-table td.label { color:#424242; font-weight:bold; text-align:left; } +.ratings-table th, +.ratings-table td { padding:3px 15px 5px 0; } +.ratings-table td { vertical-align:middle; } + +#product-review-table { margin:10px 0; } +#product-review-table thead th { display:none; } +#product-review-table tbody th { color:#424242; text-align:left; padding:0 5px 5px 0; } +#product-review-table tbody td input { background:url(../images/i_star.png) no-repeat center; border:none; display:inline-block; height:18px; width:20px; opacity:0.25; margin:0; -webkit-appearance:none; -webkit-transition:all 100ms ease-in-out; } +#product-review-table tbody td input:checked, +#product-review-table tbody td.checked input { opacity:1; } + +.review-product-list .breadcrumbs .product { display:none; } +.review-product-list label { display:inline-block; font-weight:bold; padding:0 0 5px; } +.review-product-list label em { margin:0 5px 0 0; color: #F4641E; } +.review-product-list .pager { display:none; } + +.product-view .box-reviews { padding:15px; } +.product-view .box-reviews h2 { color:#424242; font-size:18px; margin:0 0 15px; } +.product-view .box-reviews h3 { margin:10px 0; } +.product-view .box-reviews dl { margin:0 0 15px; } +.product-view .box-reviews dt { color:#666; font-size:12px; margin:0 0 10px; } +.product-view .box-reviews dt h3 { color:#424242; display:inline; font-size:15px; } +.product-view .box-reviews dd { margin:0 0 20px; } +.product-view .box-reviews dd:last-child { margin:0; } +.product-view .box-reviews dd .date { color:#666; font-size:11px; display:block; } +.product-view .box-reviews dd + dt { border-top:1px solid #e4e4e4; padding:20px 0 0; } + +.review-product-page .product-review, +.review-product-page .product-essential { display:none; } + +/* User account +-----------------------------*/ +.my-account {} +.my-account .breadcrumbs {} + +.account-links a, +.account-links strong { padding-left:30px !important; } + +.my-account .page-title {} +.my-account .page-title.title-buttons { height:auto; } +.my-account .page-title.title-buttons h1 { display:inline; white-space:normal; } +.my-account .page-title.title-buttons button { + background:none; + border:none; + color:#424242; + display:inline; + float:right; + font-size:15px; + font-weight:normal; margin:0; - padding:5px 10px; - font-size:11px; - font-weight:bold; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -#wishlist-list .wishlist-item button.btn-cart { - position:absolute; - bottom:10px; - right:10px; + padding:5px; + text-decoration:underline; } -#wishlist-list .edit-wishlist-item { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ff9822), to(#f30)); - background:-o-linear-gradient(top, #ff9822 0%, #f30 100%); - border-radius:5px; +.my-account .box-head, +.my-account .sub-title, +.my-account .table-caption { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.my-account .welcome-msg { margin:-10px 0 0; padding:0 15px 15px; } +.my-account .welcome-msg p { display:none; } +.my-account .welcome-msg .sub-title { font-weight:normal; margin:0; } +.my-account .messages + .welcome-msg { margin:15px 0 0; } + +.cart-collaterals, +.my-account > p, +.my-account > .col2-set, +.my-account > .order-info, +.my-account .fieldset, +.my-account .my-rewards, +.my-account .box-account, +.my-account .storecredit, +.my-account .order-history, +.my-account .order-details, +.my-account .review-history, +.my-account .giftregistry > p, +.my-account .recent-orders > p, +.my-account .review-history > p, +.my-account .recurring-profiles, +.my-account .billing-agreements, +.my-account .dashboard .reviews, +.my-account .order-page .order-info, +.my-account .order-page .order-date, +.my-account .product-review .product-details, +.my-account .dashboard .recent-orders, +.my-account .review-history .list-item, +.my-account .product-review .product-img-box, +.my-account .downloadable-products-history > p, +.my-account .downloadable-products-history .list-item { padding:15px; } + +.my-account .box, +.my-account .info-box { margin:0 0 10px; } +.my-account .box .box-title, +.my-account .info-box .box-title, +.my-account .order-history .pager, +.my-account .review-history .pager { background:url(../images/bg_gradient.png) repeat-x center #7f7f7f; color:#fff; height:30px; line-height:30px; padding:5px 8px; } +.my-account .box .box-title a, +.my-account .info-box .box-title a, +.my-account .recent-orders table a, +.my-account .order-history table a { + background:#3f3e3f; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; color:#fff; display:inline-block; - font-size:16px; - padding:7px 15px; - -webkit-box-shadow:0 0 1px #000; - box-shadow:0 0 1px #000; - text-shadow:0 1px 1px #111; -} -#wishlist-list a.btn-remove {} -#wishlist-list a.btn-remove img { vertical-align:top; } -#wishlist-list a.btn-edit { - background:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1, #f5d605), color-stop(0, #ff9d05)); - background:-o-linear-gradient(top, #ff9d05 0%, #f5d605 100%); - font-family:Arial Rounded MT Bold; - border:2px solid #fff; - border-radius:15px; float:right; - display:inline-block; - color:#fff; - font-size:14px; + font-size:11px; font-weight:bold; - line-height:14px; - margin-right:5px; - padding:0 5px 2px; - text-shadow:0 1px 1px #999; - vertical-align:middle; - -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.25); - box-shadow:0 0 5px rgba(0, 0, 0, 0.25); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -#wishlist-list .add-to { - color:#666; - display:inline-block; - line-height:1.1; - margin:10px 0 10px 10px; - border-bottom:1px dashed; -} -#wishlist-list .gift-registry-select { + line-height:11px; + padding:9px 15px; +} +.my-account .box .box-title h3 { display:inline; } + +.my-account .info-table th, +.my-account .info-table td { text-align:left; padding:2px; vertical-align:top; } +.my-account .box-content table { border-spacing:0; margin:10px 0; } +.my-account .box-content table th, +.my-account .box-content table td { padding:2px 5px 2px 0; text-align:left; vertical-align:top; } + +.my-account .order-history .pager, +.my-account .review-history .pager { height:auto; line-height:34px; text-align:right; } +.my-account .order-history .pager .amount, +.my-account .review-history .pager .amount { float:left; } +.my-account .info-box .box-title .separator { display:none; } +.my-account .box .box-content, +.my-account .info-box .box-content { padding:10px 5px; } +.my-account .info-box .box-content a {} + +.my-account .fieldset > .fieldset { background:none; padding:0; } +.my-account .fieldset > .fieldset + .fieldset { margin:15px 0; } +.my-account .fieldset > .fieldset > .buttons-set { padding:15px 0; } +.my-account .fieldset h2, +.my-account .fieldset h2.legend { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.my-account form > .buttons-set { padding:15px; } +.my-account form > .buttons-set button + button { margin:10px 0 0 !important; } +.my-account .back-link { display:none; } +.my-account p.required { font-size:10px; line-height:12px; padding:0 15px 15px; text-align:right; } +.my-account > .buttons-set { padding:15px; } + +.my-account .dashboard > .sub-title { padding:15px 15px 0; margin:0; } +.my-account .dashboard > .sub-title + .col2-set { background:none; } +.my-account .dashboard .box .box-title:before, +.my-account .dashboard .info-box .box-title:before { + background:rgba(0, 0, 0, .5); + border-radius:5px; + content:'+'; + font-family:Arial; display:inline-block; - vertical-align:top; + line-height:15px; + padding:5px 0; text-align:center; + margin:2px 5px 0 0; + vertical-align:top; + width:20px; } -#wishlist-list .btn-gift-registry { - padding:10px; -} -#wishlist-list .btn-gift-registry select { - font-size:13px; -} -#wishlist-list .btn-gift-registry strong { - display:block; -} +.my-account .dashboard .box .box-title.collapsed:before, +.my-account .dashboard .info-box .box-title.collapsed:before { content:'−'; } +.my-account .dashboard .box-reviews ol { list-style:none; padding:0; } +.my-account .dashboard .box-reviews li + li { margin:10px 0 0; } +.my-account .dashboard .box-reviews .number { float:left; margin:0 10px 0 0; } +.my-account .dashboard .box-reviews .details { display:table; width:90%; } +.my-account .dashboard .box-reviews .details p { display:inline-block; vertical-align:middle; } +.my-account .dashboard .box-reviews .details .rating-box { display:inline-block; vertical-align:middle; } + +.my-account .dashboard .recent-orders .box-content { padding:0; } + +.my-account .order-details .data-table + .order-additional { margin:15px 0 0; } + +/* My Orders */ +.my-account .recent-orders .pager, +.my-account .recent-orders + .buttons-set { display:none; } + +/* My Downloadable Products, My Reviews */ +.my-account .review-history { padding:0; } + +.my-account .downloadable-products-history .list, +.my-account .review-history .list { color:#424242; font-size:12px; list-style:none; margin:0; padding:0; } +.my-account .downloadable-products-history .list-item, +.my-account .review-history .list-item { margin:0; } +.my-account .downloadable-products-history .list-item dt, +.my-account .review-history .list-item dt { font-size:15px; line-height:18px; font-weight:bold; margin:0 0 10px; } +.my-account .downloadable-products-history .pager, +.my-account .review-history .pager { display:none; } + +.my-account .review-history .list-item h2 { display:inline; } +.my-account .review-history .list-item dd { padding:5px 0; } +.my-account .review-history .list-item .date { font-size:12px; } + +.my-account .review-history table { border-collapse:collapse; } +.my-account .review-history table td { padding:4px; vertical-align:top; } +.my-account .review-history table td .rating-box { margin:0 0 10px; } + +.my-account .recent-orders table, +.my-account .order-history table { border-collapse:collapse; color:#4c4c4c; font-size:12px; width:100%; } +.my-account .recent-orders th, +.my-account .order-history table th, +.my-account .recent-orders td, +.my-account .order-history table td { padding:4px; text-align:left; vertical-align:middle; } +.my-account .recent-orders th, +.my-account .order-history table th { font-weight:bold; padding:11px 8px; } +.my-account .recent-orders td a, +.my-account .order-history td a { font-size:12px; float:none; padding:6px 8px; } + +/* My Billing Agreements */ +.billing-agreement-view .my-account .page-title { height:auto; } +.billing-agreement-view .my-account .page-title h1 { display:block; margin:0 0 10px; white-space:normal; } +.billing-agreement-view .my-account .page-title h1 span { display:block; } + +.my-account .billing-agreements > p { padding:15px; } +.my-account .billing-agreements .box-content > p + .form-list { margin:10px 0 0; } +.my-account .billing-agreements .box-content .form-list select { margin:0 0 15px; } -#wishlist-list .btn-gift-registry button.btn-cart { -} -.wishlist-wrap { position:relative; } -.wishlist-wrap.grouped-items #wishlist-list li { min-height:initial; position:static; } -.wishlist-wrap .remove-all { display:none; top:12px; right:10px; } -.wishlist-index-index .my-account > a { display:none; } +.my-account .box-recent .data-table { border-spacing:0; width:100%; } +.my-account .box-recent .data-table th, +.my-account .box-recent .data-table td { padding:2px 5px; } +.my-account .box-recent .data-table th {} +.my-account .box-recent .data-table tr:nth-child(odd) {} +.my-account .box-recent .data-table tr td:nth-child(3) {} +.my-account .box-recent .data-table tr td:first-child a {} + +.my-account .order-details .data-table { border-collapse:collapse; width:100%; } +.my-account .order-details .data-table th, +.my-account .order-details .data-table td { padding:10px; text-align:left; vertical-align:top; } +.my-account .order-details .data-table tbody tr:first-child { } +.my-account .order-details .data-table tbody th, +.my-account .order-details .data-table tbody td { border-bottom:1px solid #e4e4e4; } +.my-account .order-details .data-table tfoot { background:#f5f5f5; } + +.my-account .product-review { padding:0; } +.my-account .product-review .ratings { text-align:center; } +.my-account .product-review .ratings .rating-box { display:inline-block; padding:15px 0; } +.my-account .product-review .ratings .rating-links { color:#424242; } +.my-account .product-review .product-details .product-name { color:#424242; font-size:18px; font-weight:bold; line-height:22px; margin:0 0 15px; } +.my-account .product-review .product-details .date, +.my-account .product-review .product-img-box > p, +.my-account .product-review .product-details .product-name + strong { display:none; } -.wishlist-wrap.grouped-items .remove-all { - display:block; -} -.wishlist-wrap.grouped-items .price-box, -.wishlist-wrap.grouped-items .truncated, -.wishlist-wrap.grouped-items b, -.wishlist-wrap.grouped-items button, -.wishlist-wrap.grouped-items input, -.wishlist-wrap.grouped-items .add-to, -.wishlist-wrap.grouped-items .btn-remove, -.wishlist-wrap.grouped-items .btn-edit, -.wishlist-wrap.grouped-items .btn-gift-registry { - display:none !important; -} -.wishlist-wrap.grouped-items #wishlist-list .wishlist-item { - padding:10px 0 0; -} -.wishlist-wrap.grouped-items #wishlist-list li { - border:0; - padding:3px 0 0 77px; -} -.wishlist-wrap.grouped-items #wishlist-list li:last-child { - padding-bottom:15px; -} -.wishlist-wrap.grouped-items #wishlist-list li > a { - position:absolute; - top:0; - left:0; -} +.my-account .storecredit .account-balance { margin:0 0 10px; } -.giftregistry-table-wrap { margin:-10px -10px 10px; } -.giftregistry-table-wrap table { border-spacing:0; border-collapse:collapse; width:100%; } -.giftregistry-table-wrap th { background:#f6f6f6; text-align:left; white-space:nowrap; } -.giftregistry-table-wrap th, -.giftregistry-table-wrap td { border:1px solid #ddd; padding:5px 7px; } -.giftregistry-table-wrap td { vertical-align:top; } -.giftregistry-table-wrap td[colspan="2"] { background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#ddd)); border-bottom-color:#ccc; text-align:center; text-shadow:0 1px 0 #fff; } -.giftregistry-table-wrap td .separator { color:#666; margin:0 2px; vertical-align:baseline; } +.customer-address-index .addresses-list ol { list-style:none; margin:0; padding:0; } -.data-table-gift-registry-wrap { margin:-10px -10px 0; } -.data-table-gift-registry { border-spacing:0; border-collapse:collapse; margin:0 0 10px; width:100%; } -.data-table-gift-registry th { background:#f6f6f6; vertical-align:top; } -.data-table-gift-registry th, -.data-table-gift-registry td { border:1px solid #eee; padding:5px 10px; text-align:left; } -.data-table-gift-registry tr:nth-child(even) td { background:#f9f9f9; } +.my-account .my-rewards .info-box { position:relative; } +.my-account .my-rewards .info-box .box-content { padding-bottom:50px; } +.my-account .my-rewards .info-box .box-title a { position:absolute; bottom:10px; left:5px; } -/* Checkout +/* Order -----------------------------*/ -.checkout-cart-index .messages { - margin:0 -10px 0 !important; -} +.my-account .order-page .order-info {} -.checkout-onepage-index .page-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - margin:0 -10px 10px; - padding:10px; -} -#checkoutSteps { margin:-7px; padding:0; list-style:none; -webkit-box-shadow:3px -3px 2px 0 #F0F0F0; box-shadow:3px -3px 2px 0 #F0F0F0; color:#636363; } -#checkoutSteps .step-title h2 { font-size:16px; font-weight:bold; } -#checkoutSteps select { border:1px solid; border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; border-radius:5px; font-size:18px; padding:5px 30px 5px 5px; } -#checkoutSteps li { margin:0 0 3px; } -#checkoutSteps li .step-title { - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - margin:-1px 0 0 0; - padding:5px 10px; - border:1px solid #CECECE; - border-radius:2px; -} -#checkoutSteps li.allow .step-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fbfbfb), to(#d1d3d4)); - background:-o-linear-gradient(top, #fbfbfb 0%, #d1d3d4 100%); - margin:-1px 0 0 0; - padding:5px 10px; - border:1px solid #c6c6c6; - border-radius:2px; -} -#checkoutSteps li.active .step-title { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffa84c), color-stop(100%, #ff7b0d)); - background:-o-linear-gradient(top, #ffa84c 0%, #ff7b0d 100%); - color:#fff; - text-shadow:0 -1px 0 #ff7b0d; -} -#checkoutSteps li .step-title a { display:none; } -#checkoutSteps li .step { - background: -webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fefefe)); - background:-o-linear-gradient(top, #eee 0%, #fefefe 100%); - margin:-1px 0 10px; - padding:10px; +/* Wishlist +-----------------------------*/ +.my-wishlist .data-table { border-spacing:0; border-collapse:collapse; width:100%; } +.my-wishlist .data-table th, +.my-wishlist .data-table td { padding:15px; text-align:left; vertical-align:top; } +.my-wishlist .data-table tr { } +.my-wishlist .data-table .select { display:none; } +.my-wishlist .data-table .btn-remove { float:right; } +.my-wishlist .data-table .product-name { font-size:18px; margin:3px 0 10px; } +.my-wishlist .data-table .product-image { float:left; margin:0 10px 10px 0; } +.my-wishlist .data-table .product-image img { display:block; margin:0 0 10px; } +.my-wishlist .data-table .price-box { margin:10px 0; } +.my-wishlist .data-table .comment { clear:left; margin:10px 0 0; } +.my-wishlist .data-table .btn-cart { background:transparent; border:none; color:#1394ca; font-size:15px; height:16px; display:inline-block; margin:0 5px; padding:0; text-decoration:underline; -webkit-appearance:none; vertical-align:middle; } +.my-wishlist .data-table .added-on { font-size:11px; } +.my-wishlist .data-table .qty { vertical-align:middle; width:50px; } +.my-wishlist .buttons-set { padding:15px 15px 10px; } +.my-wishlist .buttons-set:empty, +.my-wishlist .wishlist-empty + .buttons-set { display:none; } +.my-wishlist .buttons-set button { margin:10px 0 !important; } + +.my-wishlist .cart-cell { display:table; margin:0 0 10px; } +.my-wishlist .item-manage { display:table; } +.my-wishlist .item-manage .split-button { + background:#ececec; + border:1px solid; + border-color:#e4e4e4 #e4e4e4 #dcdcdc; border-radius:2px; - border:1px solid #CECECE; -} -#checkoutSteps li .step select { width:100%; } -#checkoutSteps li .step .input-box .v-fix { display:inline-block; width:49%; } -#checkoutSteps li .step .input-box .v-fix .year { width:auto; } -#checkoutSteps li .step .input-box .cvv-what-is-this { display:inline-block; vertical-align:top; margin:0 0 0 5px; font-size:13px; color:#F4641E; } -#checkoutSteps li .step .tool-tip .btn-close { padding:0 0 5px 0; text-align:right; font-size:13px; } -#checkoutSteps li .step .tool-tip .btn-close a { color:#DF2327; } -#checkoutSteps li .step .tool-tip .tool-tip-content img { width:100%; } -#checkoutSteps li .step .control .input-box { display:inline; } -#checkoutSteps li .step input[type="radio"] { vertical-align:top; } -#checkoutSteps li .step .sp-methods dt { font-weight:bold; } -#checkoutSteps li .step .sp-methods + div { padding:10px 0 0; } -#checkoutSteps li .step .please-wait { margin:0 0 0 10px; } -#checkoutSteps li .step .please-wait img { vertical-align:middle; } -#checkoutSteps li .step fieldset .required em { margin:0 5px 0 0; color:#F4641E; } -#checkoutSteps li .step .buttons-set { padding:10px 0 0; } -#checkoutSteps #customerbalance_placer { padding:0 0 10px; } -#checkoutSteps li .step .buttons-set:after { - content:"."; - display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; -} -#checkoutSteps li .step .gift-messages, -#checkoutSteps li .step .gift-messages-form { margin:0 0 5px; } -#checkoutSteps li .step .gift-messages h3, -#checkoutSteps li .step .gift-messages-form h4 { margin:0 0 3px; } -#checkoutSteps li .step .gift-messages-form ol { list-style:none; margin:0; padding:0; } -#checkoutSteps li .step .gift-messages-form ol .input-box textarea { width:98%; } -#checkoutSteps li .step .gift-messages-form .inner-box p { display:none; } -#checkoutSteps li .step .gift-messages-form .product-name { font-size:14px; } -#checkoutSteps li .step .buttons-set .required { padding:0 0 10px; color:#F4641E; font-weight:bold; } -#checkoutSteps li .step .back-link { float:left; } -#checkoutSteps li .step .back-link a { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f39823), to(#f37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - display:block; - padding:5px 10px; - font-size:11px; - font-weight:bold; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -#checkoutSteps li .step-title h2 { display:block; } -#checkoutSteps li.allow .step-title h2 { background:url(../images/bg_checkout_step_passed.png) no-repeat center right; } -#checkoutSteps li.active .step-title h2 { background:none !important; } -#checkoutSteps li .step-title .number { display:none; } -#checkoutSteps .form-list .field label, -#checkoutSteps .form-list .wide label { padding:0; font-weight:bold; } -#checkoutSteps li .step .buttons-set button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f39823), to(#f37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - float:right; - padding:5px 10px; - font-size:14px; - font-weight:bold; - color:#fff; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -#checkoutSteps .validation-advice { color:#F4641E; } -#checkoutSteps .back-link small { display:none; } -#co-payment-form dd, -#checkoutSteps li .step dd { margin:0; padding:0; } -#opc-billing .step .required em { display:none; } -#checkout-review-table { border-spacing:0; width:100%; font-size:12px; } -#checkout-review-table th { background:#909090; color:#FFF; } -#checkout-review-table th:first-child { text-align:left; } -#checkout-review-table tr.odd td { background:#EEE; } -#checkout-review-table th, -#checkout-review-table td { padding:2px 5px; } -#checkout-review-table td { vertical-align:top; } -#checkout-review-table td.last { text-align:right; } -#checkout-review-table .label { white-space:nowrap; } -#checkout-review-table .cart-price { font-weight:bold; } -#checkout-review-submit .buttons-set:after { - content:"."; - display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; + color:#555; + margin:0 0 10px; + box-shadow:0 1px 3px #eee; + position:relative; } -#checkout-review-submit .buttons-set button { float:right; } - -#checkout-review-submit .buttons-set .f-left { - float:left; +.my-wishlist .item-manage .split-button .list-container { + background:#fff; + border:1px solid #e4e4e4; font-size:12px; + display:none; + top:100%; + right:0; position:absolute; - margin:-16px 0 0; -} -#checkout-review-submit .buttons-set .f-left a { - display:block; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#333), to(#111)); - background:-o-linear-gradient(top, #333 0%, #111 100%); - border:none; - color:white; - font-size:13px; - line-height:1; - font-weight:bold; margin:2px 0 0; - padding:8px 10px; - text-shadow:0 1px 0 black; - -webkit-border-radius:5px; - border-radius:5px; -} -#checkout-step-login .checkout-login { - border-bottom:1px solid #ccc; - padding:0 0 12px; -} -#checkout-step-login .checkout-register { - border-top:1px solid #fff; - padding:10px 0 0; -} -#checkoutSteps #checkout-step-login .checkout-login h4, -#checkoutSteps #checkout-step-login .checkout-register h3 { - font-size:16px; - text-shadow:0 1px 0 #fff; - margin:0; + min-width:100%; + white-space:nowrap; + z-index:10; + box-shadow:0 0 6px rgba(0, 0, 0, .15); } -#checkoutSteps #checkout-step-login .checkout-login p, -#checkoutSteps #checkout-step-login .checkout-register p { - margin:0 0 4px; +.my-wishlist .item-manage .split-button .list-container li { + border-bottom:1px solid #e4e4e4; + color:#1394ca; + padding:8px; } -#checkoutSteps #checkout-step-login .checkout-login label { - font-weight:bold; +.my-wishlist .item-manage .split-button .list-container li:last-child { + border-bottom:none; } -#checkoutSteps #checkout-step-login .checkout-login .buttons-set button { - float:none; - margin:6px 10px 2px 0; +.my-wishlist .item-manage .split-button .list-container li.new { background:#e4e4e4; color:#424242; text-shadow:0 1px 0 #fff; } +.my-wishlist .item-manage .split-button .list-container li.new:before { content:'+'; display:inline-block; margin-right:5px; } + +.my-wishlist .item-manage .split-button strong { background:#fff; border-radius:2px; display:block; border-right:1px solid #e4e4e4; font-size:12px; margin:0 25px 0 0; padding:5px 10px 5px 10px; } +.my-wishlist .item-manage .split-button strong:after { + content:''; + position:absolute; + border-left:3px solid transparent; + border-right:3px solid transparent; + border-top:6px solid #555; + position:absolute; + font-size:0; + line-height:0; + width:0; + top:11px; + right:11px; + z-index:2; } -#checkoutSteps #checkout-step-login .checkout-register .control input[type=radio] { - height:20px; +.my-wishlist .item-manage .split-button strong + a { display:block; text-align:center; line-height:28px; overflow:hidden; position:absolute; top:0; left:0; right:0; text-indent:-200%; } + +.my-wishlist .truncated .details { display:none; } +.my-wishlist .truncated .item-options p { font-weight:bold; margin:10px 0; } + +.wishlist-empty { padding:0 15px 15px; } + +.item-manage .split-button {} +.item-manage .split-button .change { text-decoration:underline; } +.item-manage .split-button.active .change { color:#424242; text-decoration:none; } +.item-manage .split-button.active .list-container { display:block; } + +.item-options { font-size:13px; } +.item-options .price { font-weight:bold; } +.item-options dt { color:#424242; font-weight:bold; margin:0 0 2px; } +.item-options dd + dt { margin:12px 0 0; } + +.wishlist-management { padding:15px; } +.wishlist-management .sub-title h2 { display:inline-block; line-height:18px; position:relative; } +.wishlist-management .sub-title .item-count { margin:0 5px; } +.wishlist-management .table-caption .label { display:inline-block; vertical-align:top; } + +#wishlists-move, +#wishlists-copy { display:none; } +#wishlists-select { display:inline-block; position:relative; } +#wishlists-select + p { margin:10px 0 0; } +#wishlists-select.active .list-container { display:block; } +#wishlists-select .list-container { background:#fff; border:1px solid #e4e4e4; display:none; margin:5px 0 0; position:absolute; white-space:nowrap; box-shadow:0 2px 6px rgba(0, 0, 0, .25); } +#wishlists-select .list-container li { border-bottom:1px solid #e4e4e4; } +#wishlists-select .list-container li:last-child { border-bottom:none; } +#wishlists-select .list-container li a { display:block; padding:5px 10px; } +#wishlists-select .list-container li.new { background:#e4e4e4; color:#424242; padding:5px 10px; text-shadow:0 1px 0 #fff; } +#wishlists-select .list-container li.new:before { content:'+'; display:inline-block; margin-right:5px; } + +/* Gift Card Account */ +.my-account .giftcardaccount .error-msg { background:#333; color:#fff; padding:15px; text-shadow:0 1px 0 #111; } +.my-account .giftcardaccount .please-wait { position:absolute; top:103px; left:103px; } +.my-account .giftcardaccount .buttons-set button:last-child { margin:10px 0 0 !important; }} + +/* Cart +-----------------------------*/ +.cart .page-title.title-buttons { height:auto; padding:0; } +.cart .page-title.title-buttons h1 { padding:10px 15px; } +.cart .page-title.title-buttons .checkout-types { padding:15px; } + +.cart-table { border-spacing:0; border-collapse:collapse; width:100%; } +.cart-table td { padding:10px; vertical-align:top; } +.cart-table td:first-child { width:75px; } +.cart-table .price-box { display:table; width:100%; } +.cart-table .cart-price-box { display:table-cell; text-align:left; vertical-align:middle; } +.cart-table .cart-price-box .cart-price { font-size:12px; display:block; } +.cart-table .cart-price-box .cart-price + .cart-price { margin:5px 0 0; padding:5px 0 0; } +.cart-table .cart-price-box + .cart-price-box { margin-left:10px; text-align:right; } +.cart-table .cart-price-box + .cart-price-box .cart-price { color:#424242; font-size:15px; font-weight:bold; } +.cart-table .qty-wrap { display:table-cell; vertical-align:top; width:55px; } +.cart-table .qty { font-size:13px; text-align:center; vertical-align:middle; width:35px; } +.cart-table .qty + span { font-size:12px; margin:0 2px; vertical-align:middle; } +.cart-table .gift-registry-name { font-size:12px; margin:-12px 0 10px; } +.cart-table .btn-remove { float:right; position:relative; top:0; right:-5px; } +.cart-table .messages td { background-color:#444 !important; color:#fff; font-size:12px; padding:0 10px 10px; text-shadow:0 1px 0 #111; } +.cart-table .messages p { margin:10px 0 0; } +.cart-table .product-image { display:block; margin:0 0 10px; vertical-align:top; } +.cart-table .product-name { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.cart-table .product-name a { color:#424242; } + +.cart-table tfoot button + button { margin:10px 0 0; } + +.cart-table .downloadable { margin:10px 0 0; } +.cart-table .product-options td { background:none; padding:0; } +.cart-table .product-options .toggle { color:#1394ca; cursor:pointer; display:inline-block; margin:10px; } +.cart-table .product-options .item-options { padding:10px; } + +.cart-table .toggle { font-size:13px; display:inline-block; } + +.cart-collaterals h2 { color:#424242; font-size:15px; font-weight:normal; line-height:18px; margin:0 0 5px; } +.cart-collaterals label { display:none; } +.cart-collaterals button { background:none; color:#1394ca; display:inline-block; border:0; font-size:15px; margin:0; padding:5px; text-decoration:underline; vertical-align:middle; } +.cart-collaterals button + button { padding:5px 0; } +.cart-collaterals .v-fix { display:inline-block; margin-right:5px; vertical-align:middle; width:60%; } +.cart-collaterals .v-fix + button { vertical-align:top; } + +.cart-collaterals .discount { margin:0 0 10px; } +.cart-collaterals .giftcard .error-msg, +.cart-collaterals .giftcard .please-wait { display:block; font-size:12px; line-height:15px; margin:0 0 5px; } +.cart-collaterals .btn-gift-registry { margin:10px 0 0; } + +.cart .totals, +.cart .checkout-types { padding:15px; } +.cart .checkout-types a { font-size:12px; display:block; margin:5px 0 0; padding:5px; text-decoration:underline; } +.cart .checkout-types li { margin:0 0 10px; text-align:center; } +.cart .checkout-types li .paypal-or { padding:5px 0; } + +.cart .totals table { border-spacing:0; border-collapse:collapse; font-size:13px; width:100%; } +.cart .totals table th, +.cart .totals table td { padding:5px; } +.cart .totals table .price { white-space:nowrap; } +.cart .totals table .btn-remove { height:20px; width:20px; vertical-align:bottom; } +.cart .totals table .btn-remove img { display:none; } +.cart .totals table .summary-total .summary-collapse { display:inline-block; border-bottom:1px dashed; } +.cart .totals table .summary-total .summary-collapse:before { content:'+'; display:inline-block; margin-right:5px; } +.cart .totals table .summary-total.show-details .summary-collapse:before { content:'-'; } + +.failed-products { border-bottom:1px solid #eae8ea; margin:10px 0 0; padding:0 0 10px; } +.failed-products h2 { font-weight:bold; } +.failed-products .cart-table thead { display:none; } + +.checkout-success, +.paypal-review-order { padding:15px; } +.paypal-review-order select { width:100% !important; } +.paypal-review-order .sub-title { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.paypal-review-order .legend { font-size:16px; line-height:20px; margin:15px 0; } +.paypal-review-order .info-set { margin:0 0 15px; } +.paypal-review-order .buttons-set button + button { margin:10px 0 0; } +.paypal-review-order .buttons-set .please-wait { display:block; font-size:12px; padding:10px; text-align:center; } + +.paypal-review-order .data-table { border:1px solid #eee; border-spacing:0; border-collapse:collapse; font-size:13px; margin:15px 0; width:100%; } +.paypal-review-order .data-table tfoot { background:#eee; } +.paypal-review-order .data-table th { text-align:left; } +.paypal-review-order .data-table th:last-child { text-align:right; } +.paypal-review-order .data-table th { border-bottom:1px solid #eee; padding:5px; } +.paypal-review-order .data-table td { border-bottom:1px solid #eee; padding:5px; vertical-align:top; } + +.checkout-success .sub-title { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.checkout-success p { margin:10px 0; } + +/* Checkout +-----------------------------*/ +.opc { list-style:none; margin:0; padding:10px 10px 0; } + +.opc p.required { font-size:10px; line-height:12px; margin:10px 0; text-align:right; } +.opc .back-link { display:none; } +.opc .v-middle { vertical-align:middle; } +.opc .please-wait { display:block; font-size:12px; padding:10px; text-align:center; } + +.opc .step-title { background:url(../images/bg_gradient.png) repeat-x center #7f7f7f; color:#fff; height:30px; line-height:30px; padding:5px 8px; } +.opc .step-title h2 { font-size:15px; font-weight:bold; } +.opc .step-title a, +.opc .step-title .number { display:none; } + +.opc .step { background-color:#fff !important; padding:10px; position:relative; } +.opc .step .form-list { margin:0 0 15px; } + +.opc .section { margin:0 0 10px; opacity:.5; } +.opc .section.allow.active { opacity:1; } +.opc .section.allow .step-title h2:before { + background:rgba(0, 0, 0, .5); + border-radius:5px; + content:'+'; + font-family:Arial; + display:inline-block; + line-height:15px; + padding:5px 0; + text-align:center; + margin:2px 5px 0 0; + vertical-align:top; width:20px; - vertical-align:middle; } +.opc .section.allow.active .step-title h2:before { display:none; } -.add-gift-message, -.gift-message-form { - margin:10px 0 20px; -} +.checkout-onepage-payment-additional-giftcardaccount { margin:15px 0; } -.add-gift-message h3, -.gift-message-form h4 { - margin:0 0 5px; -} +#checkout-step-login h4 { color:#424242; margin:0 0 10px; } +#checkout-step-login p { font-size:14px; margin:0 0 10px; } -.gift-message-form p { - margin:0 0 8px; -} +.opc .sp-methods > dt { color:#424242; font-size:15px; font-weight:bold; line-height:18px; margin:0 0 10px; } +.opc .sp-methods > dd + dt { margin:10px 0; } -.gift-message-form .product-image { - margin:0 0 2px; -} +.opc .tool-tip { background:#fff; position:absolute; padding:10px; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5); } +.opc .tool-tip .btn-close { padding:0 0 15px 0; text-align:right; font-size:13px; } +.opc .tool-tip .btn-close a { color:#DF2327; } +.opc .tool-tip .tool-tip-content img { width:100%; } -.gift-message-form .product-image img { - -webkit-box-shadow:0 1px 2px #999; - box-shadow:0 1px 2px #999; -} +.opc .cvv-what-is-this { border-bottom:1px dashed; display:inline-block; margin:5px 5px 0; font-size:13px; vertical-align:top; } -.gift-message-form ol { - list-style:none; - margin:0 0 10px; - padding:0; -} +.opc li:last-child .step { padding:0; } -.gift-message-form .gift-item:after { - content:""; - display:table; -} -.gift-message-form .gift-item:after { - clear:both; -} +#checkoutSteps li .step .input-box .v-fix { display:inline-block; width:49%; } +#checkoutSteps li .step .input-box .v-fix .year { width:auto; } -.gift-message-form .number { - display:none; -} +.tool-tip .btn-close { padding:0 0 5px 0; text-align:right; font-size:13px; } +.tool-tip .btn-close a { color:#DF2327; } +.tool-tip .tool-tip-content img { width:100%; } -.gift-message-form .form-list { - clear:both; - border-bottom:1px solid #ccc; - margin:0 0 10px; - padding:10px 0; -} +.opc .order-review .data-table { font-size:13px; border-spacing:0; border-collapse:collapse; margin:0 0 15px; width:100%; } +.opc .order-review .data-table thead tr, +.opc .order-review .data-table tbody tr:first-child { text-align:left; } +.opc .order-review .data-table tbody tr:last-child td:last-child { font-weight:bold; } +.opc .order-review .data-table th { text-align:left; } +.opc .order-review .data-table th:last-child { float:right; } +.opc .order-review .data-table th, +.opc .order-review .data-table td { padding:5px; } +.opc .order-review .data-table tfoot { background:#eee; } +.opc .order-review .data-table tfoot th { font-weight:normal; text-align:right; } +.opc .order-review .data-table .product-name { color:#424242; } +.opc .order-review .data-table .item-options { font-size:12px; margin:10px 0 0; } -.gift-message-form .product-img-box { - float:left; - margin-right:10px; -} +.checkout-review-table { padding:0; } -.extra-options-container { clear:both; } +.opc .order-review .buttons-set > p { margin:15px 0; } -/* Sitemap ------------------------------*/ -.sitemap { margin:-1px -10px -10px; } -.sitemap li { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - border-top:1px solid #ccc; -} -.sitemap li a { background:url(../images/i_arrow_small.png) no-repeat 96% 50%; background-size:8px 12px; display:block; padding:10px; font-size:16px; } -.catalog-seo-sitemap-category .page-title { display:none; } -.catalog-seo-sitemap-category .page-sitemap .pager, -.catalog-seo-sitemap-category section .links, -#sitemap_top_links { display:none; } - -/* Returns ------------------------------*/ -.sales-guest-form .page-title { display:none; } -.sales-guest-form .breadcrumbs { margin:0 -10px 10px; } +#checkoutSteps #customerbalance_placer { padding:0 0 10px; } +.opc .gift-messages, +.opc .gift-messages-form { margin:10px 0 20px; } -/* Search terms ------------------------------*/ -.catalogsearch-term-popular .page-title { display:none; } -.catalogsearch-term-popular .tags-list li { display:inline-block; padding:0 10px; line-height:2; font-size:16px; } +.opc .gift-message-form .price, +.opc .gift-wrapping-form label { font-weight:bold; } +.opc .gift-wrapping-form label { color:#424242; } +.opc .gift-options-for-order { border:1px solid #e4e4e4; border-radius:2px; box-shadow:0 0 3px rgba(0, 0, 0, .15); margin:10px 0; padding:10px; } +.opc .gift-options-for-order div > a { display:inline-block; margin:10px 0 0; } +.opc .gift-options-for-order .fieldset { margin:10px 0 0; } -/* Contact us, Share Wishlist ------------------------------*/ -.contacts-index-index .page-title { display:none; } -.contacts-index-index .fieldset h2 { display:none; } -.contacts-index-index .messages { margin:0 -10px 0; } -.contacts-index-index section form, -.wishlist-index-share section form { - background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #eee), color-stop(1, #e8e9e9)); - background:-o-linear-gradient(top, #fcfdfd 0%, #eee 80%, #e8e9e9 100%); - display:block; - border:1px solid #d1d1d1; - margin:2px -7px -7px; - padding:9px; - border-radius:2px 2px 5px 5px; -} -.wishlist-index-share section form { margin:2px 3px -7px; } -.contacts-index-index label, -.wishlist-index-share label { color:#5E5E5E; font-weight:bold; } -.contacts-index-index label em, -.wishlist-index-share label em { display:inline; margin:0 3px 0 0; color:#F4641E; } -.contacts-index-index textarea { width:99%; height:200px; } -.contacts-index-index .fields .field { margin:0 0 8px 0; } -.contacts-index-index .buttons-set .required, -.wishlist-index-share .buttons-set .required { float:right; font-size:12px; font-weight:bold; color:#F4641E; display:block; } -.contacts-index-index .buttons-set button, -.wishlist-index-share .buttons-set button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f39823), to(#f37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - padding:5px 10px; - font-size:12px; - color:#fff; - border:1px solid #fff; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9f9f9f; - box-shadow:0 3px 3px 0 #9f9f9f; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} +.opc .gift-wrapping-design { padding:10px 0 0; overflow:hidden; } +.opc .gift-wrapping-design .image-box { float:left; margin:0 10px 10px 0; } +.opc .gift-messages h3, +.opc .gift-messages-form h4 { color:#424242; font-weight:bold; line-height:18px; margin:0 0 10px; } +.opc .gift-messages-form p { margin:0 0 10px; } +.opc .gift-messages-form ol { list-style:none; margin:0 0 10px; padding:0; } -/* Advanced search ------------------------------*/ -.catalogsearch-advanced-index .breadcrumbs { margin-bottom:10px; } -.catalogsearch-advanced-index .page-title { display:none; } -.catalogsearch-advanced-index .advanced-search h2.legend { display:none; } -.catalogsearch-advanced-index .input-range { font-size:16px; } -.catalogsearch-advanced-index .input-range input { width:40%; } -.catalogsearch-advanced-index button[type=submit] { - padding:5px 10px; - border:1px solid #CECECE; - border-radius:2px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size:16px; -} -#advanced-search-list > li:nth-last-child(-n+3) { - display:inline-block; - width:32%; -} -#advanced-search-list > li:nth-last-child(-n+3) select { - width:100%; -} +.opc .gift-messages-form .number { display:none; } +.opc .gift-messages-form .product-image { margin:0 0 2px; } +.opc .gift-messages-form .product-name { color:#424242; margin:0 0 10px; } + +.extra-options-container { clear:both; } +.checkout-agreements { border:1px solid #e4e4e4; list-style:none; padding:10px; } +.checkout-agreements .agree { font-weight:bold; margin:10px 0 0; text-align:center; } +.checkout-agreements .agree input, +.checkout-agreements .agree label { margin-right:10px; vertical-align:middle; } -/* Contact us +/* Advanced search -----------------------------*/ +.catalogsearch-advanced-result .search-summary, +.catalogsearch-advanced-result .page-title + p { display:none; } +.catalogsearch-advanced-result .toolbar { top:-100px; } -/* +.catalogsearch-advanced-index .fieldset, +.catalogsearch-advanced-index .buttons-set { padding:15px; } +.catalogsearch-advanced-index .fieldset .legend { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } -.sendfriend-product-send .page-title { background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); border:solid #999; border-width:1px 0; border-top-color:#ccc; margin:0 -10px 10px; padding:10px; } -.sendfriend-product-send .fieldset h2.legend { font-size:18px; margin:0 0 5px; } -.sendfriend-product-send textarea { width:99%; height:200px; } -.sendfriend-product-send label em { margin:0 3px 0 0; color:#E23130; } -.sendfriend-product-send .validation-advice { color:#E23130; } -.sendfriend-product-send .fields .field { clear:both; } -.sendfriend-product-send .buttons-set { padding:40px 0 0 0; position:relative; } -.sendfriend-product-send .buttons-set:after { - content:"."; +/* CMS */ +.cms-home .std { display:none; } +.cms-home section { padding-bottom:0; } + +.std ul, +.std ol, +.std dl, +.std p, +.std address, +.std blockquote, +.std table { margin-bottom:1em; } +.std ul { list-style:disc outside; padding-left:1.5em; } +.std ol { list-style:decimal outside; padding-left:1.5em; } +.std ul ul { list-style-type:circle; } +.std ul ul, +.std ol ol, +.std ul ol, +.std ol ul { margin:.5em 0; } +.std dt { font-weight:bold; } +.std dd { padding:0 0 0 1.5em; } +.std blockquote { font-style:italic; padding:0 0 0 1.5em; } +.std address { font-style:normal; } +.std b, +.std strong { font-weight:bold; } +.std i, +.std em { font-style:italic; } +.std hr { margin:1.5em 0; color:#d9d9d9; } +.std table { width:100%; max-width:100%; } +.std table thead { background:#e8e8e8; } +.std table th { background:#f7f7f7; word-break:break-word; font-weight:bold; } +.std table thead th { background:#e8e8e8; font-weight:bold; } +.std table th, +.std table td { padding:2px 4px; border:1px solid #d9d9d9; } +.std table[border="0"] { border-width:0; } +.std table[border="0"] th, +.std table[border="0"] td { border-width:0; } + +ul.disc li { padding-left:10px; background:url(../images/bkg_bulletsm.gif) no-repeat 0 0.5em; } +.std ul.disc li { padding-left:0; background:none; } + + +/* Common Buttons Design */ + +.btn-checkout, +.account-login button, +.cart-table tfoot button, +.opc .buttons-set button, +.checkout-success button, +.box-reviews .buttons-set button, +.my-account form > .buttons-set button, +#contactForm .buttons-set button, +.giftregistry .buttons-set button, +.wishlist-view .buttons-set button, +.send-to-friend .buttons-set button, +.account-create .buttons-set button, +.catalog-product-gallery .buttons-set a, +.my-account .my-rewards .buttons-set button, +.my-account .my-wishlist .buttons-set button, +.popup-block .block-content .buttons-set button, +.customer-account-forgotpassword .buttons-set button, +.my-account .billing-agreements .box-content .form-list select + button { + background:url(../images/bg_gradient.png) repeat-x center; + color:#fff; + font-size:21px; display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; -} -.sendfriend-product-send .back-link { float:left; } -.sendfriend-product-send .back-link a { display:block; } -.sendfriend-product-send .buttons-set button { float:right; } -.sendfriend-product-send .back-link a, -.sendfriend-product-send .buttons-set button { + border:0; + height:35px; + line-height:35px; margin:0; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 2px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#FEFEFE), to(#EEE)); - font-size: 16px; - text-transform: small-caps; -} -.sendfriend-product-send .btn-remove { - float:right; - display:block; - margin:0 0 10px; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 2px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#FEFEFE), to(#EEE)); - font-size: 16px; - text-transform: small-caps; + padding:0; + -webkit-appearance:none; + appearance:none; + text-shadow:0 -1px 0 rgba(0, 0, 0, .45); + width:100%; } -#add_recipient_button button { position:absolute; top:0px; right:0; } -*/ - -.cms-home .std { display:none; } -.cms-home section { padding-bottom:0; } +/* Theme options */ + +/* Custom colors */ +/* Main color */ +body > header, +body > footer ul, +body > address.copyright { background-color:#e76212; } + +.map-popup-checkout button, +.more-button, +.btn-checkout, +.account-login button, +.add-to-links > li > a, +.cart-table tfoot button, +.opc .buttons-set button, +.checkout-success button, +.box-reviews .buttons-set button, +.my-account form > .buttons-set button, +#contactForm .buttons-set button, +.giftregistry .buttons-set button, +.wishlist-view .buttons-set button, +.send-to-friend .buttons-set button, +.account-create .buttons-set button, +.add-to-links > li .split-button strong, +.catalog-product-gallery .buttons-set a, +.my-account .my-rewards .buttons-set button, +.my-account .my-wishlist .buttons-set button, +.product-view .product-shop .add-to-box button, +.popup-block .block-content .buttons-set button, +.customer-account-forgotpassword .buttons-set button, +.product-view .product-options-bottom .add-to-cart button, +.my-account .billing-agreements .box-content .form-list select + button { background-color:#e76212; } + +/* Links color */ +#nav-container li a { color:#111; } + +/* Buttons background color */ +.block-subscribe button { background:green; } + +body > header dd.menu-box a, +body > header dd.menu-box strong, +#nav-container li a, +.page-title, +.c-list > li, +.catalog-product-gallery .product-gallery, +.cart-table .messages td, +.opc .step, +.cart-empty, +body > section > form > .fieldset, +.account-login .col-1, +.account-login .col-2, +.account-create .fieldset, +.customer-account-forgotpassword .fieldset, +.customer-account-logoutsuccess .page-title + p, +.more, +.filters-block, +.product-view .product-shop, +.product-view .short-description, +.send-friend .fieldset, +.send-friend .buttons-set, +.product-collateral .box-collateral, +.product-collateral .box-additional .data-table th, +.product-collateral .box-additional .data-table td, +.box-up-sell, +.product-view .box-tags, +.product-view .options-container-big .product-options, +.catalog-product-gallery .buttons-set, +.catalogsearch-result-index .note-msg, +.product-review, +.box-reviews .box-content, +.cart-collaterals, +.my-account > p, +.my-account > .col2-set, +.my-account > .order-info, +.my-account .fieldset, +.my-account .my-rewards, +.my-account .box-account, +.my-account .storecredit, +.my-account .order-history, +.my-account .order-details, +.my-account .review-history, +.my-account .giftregistry > p, +.my-account .recent-orders > p, +.my-account .review-history > p, +.my-account .recurring-profiles, +.my-account .billing-agreements, +.my-account .dashboard .reviews, +.my-account .order-page .order-info, +.my-account .order-page .order-date, +.my-account .product-review .product-details, +.my-account .dashboard .recent-orders, +.my-account .review-history .list-item, +.my-account .product-review .product-img-box, +.my-account .downloadable-products-history > p, +.my-account .downloadable-products-history .list-item, +.my-account .info-box .box-content, +.my-account .dashboard > .sub-title, +.my-account .review-history table td, +.my-account .recent-orders th, +.my-account .order-history table th, +.my-account .recent-orders td, +.my-account .order-history table td, +.my-account .order-details .data-table tbody tr:first-child, +.my-wishlist .data-table tr, +.my-wishlist .buttons-set, +.cart-table td, +.cart-table .product-options .item-options, +.cart .totals, +.cart .checkout-types, +.checkout-success, +.paypal-review-order, +.paypal-review-order .data-table, +.opc, +.opc .order-review .data-table thead tr, +.opc .order-review .data-table tbody tr:first-child { background:url(../images/bg_shadow.png) repeat-x 0 0; } + +@media +only screen and (-webkit-min-device-pixel-ratio: 1.5), +only screen and (-o-min-device-pixel-ratio: 3/2), +only screen and (min--moz-device-pixel-ratio: 1.5), +only screen and (min-device-pixel-ratio: 1.5) { + + #nav-container li.subcategory-header { background-image:url(../images/bg_gradient_retina.png); background-size:auto 45px; } + #nav-container li.subcategory-header .button-wrap button { background-image:url(../images/bg_back_btn_retina.png); background-size:47px 27px; } + + #nav-container li a span, + .c-list > li > a { background-image:url(../images/custom/arrow_retina.png); background-size:7px 12px; } + + body > header dt { background-image:url(../images/bg_divider_retina.png); background-size:1px 45px; } + body > header dt.menu a { background-image:url(../images/i_menu_retina.png); background-size:50%; } + body > header dt.cart-icon a { background-image:url(../images/i_cart_retina.png); background-size:50%; } + body > header { background-image:url(../images/bg_gradient_retina.png); background-size:auto 45px; } + body > header .search input { background-image:url(../images/i_search_retina.png); background-size:17px 17px; } + .header-bg { background:url(../images/custom/bg_header_retina.png) no-repeat center; background-size:auto 45px; } + .header-bg .header-logo { background-image:url(../images/custom/bg_logo_retina.png); background-size:45px 45px; } + + .toolbar .sort-by > label { background-image:url(../images/bg_gradient_retina.png); } -.front-banner { - padding:20px 0; - text-align:center; + body > header dd.menu-box a { background-image:url(../images/bg_shadow_retina.png); background-size:1px 40px; } + + .rating-box { background-image:url(../images/i_star_blank_retina.png); background-size:20px 18px; } + .rating-box .rating, + #product-review-table tbody td input { background-image:url(../images/i_star_retina.png); background-size:20px 18px; } + + .controls { background-image:url(../images/bg_divider_dark_retina.png); background-size:1px 30px; } + .controls .prev { background-image:url(../images/arrow_left_retina.png); background-size:7px 12px; } + .controls .next { background-image:url(../images/arrow_right_retina.png); background-size:7px 12px; } + + select, .select-multiple { background-image:url(../images/i_dropdown_retina.png); background-size:30px auto; } + + a.btn-remove, .btn-remove2 { background-image:url(../images/btn_remove_retina.png); background-size:11px 11px; } + a.link-edit { background-image:url(../images/btn_edit_retina.png); background-size:18px 18px; } + + .product-view .product-img-box .product-image:before { background-image:url(../images/i_zoom_retina.png); background-size:14px 14px; } + + .map-popup-checkout button, + .btn-checkout, + .account-login button, + .cart-table tfoot button, + .opc .buttons-set button, + .checkout-success button, + .box-reviews .buttons-set button, + .my-account form > .buttons-set button, + #contactForm .buttons-set button, + .giftregistry .buttons-set button, + .wishlist-view .buttons-set button, + .send-to-friend .buttons-set button, + .account-create .buttons-set button, + .my-account .my-rewards .buttons-set button, + .my-account .my-wishlist .buttons-set button, + .popup-block .block-content .buttons-set button, + .customer-account-forgotpassword .buttons-set button, + .my-account .billing-agreements .box-content .form-list select + button { + background-size:1px 35px; + } + + body > header dd.menu-box a, + body > header dd.menu-box strong, + #nav-container li a, + .page-title, + .c-list > li, + .catalog-product-gallery .product-gallery, + .cart-table .messages td, + .opc .step, + .cart-empty, + body > section > form > .fieldset, + .account-login .col-1, + .account-login .col-2, + .account-create .fieldset, + .customer-account-forgotpassword .fieldset, + .customer-account-logoutsuccess .page-title + p, + .more, + .filters-block, + .product-view .product-shop, + .product-view .short-description, + .send-friend .fieldset, + .send-friend .buttons-set, + .product-collateral .box-collateral, + .product-collateral .box-additional .data-table th, + .product-collateral .box-additional .data-table td, + .box-up-sell, + .product-view .box-tags, + .product-view .options-container-big .product-options, + .catalog-product-gallery .buttons-set, + .catalogsearch-result-index .note-msg, + .product-review, + .box-reviews .box-content, + .cart-collaterals, + .my-account > p, + .my-account > .col2-set, + .my-account > .order-info, + .my-account .fieldset, + .my-account .my-rewards, + .my-account .box-account, + .my-account .storecredit, + .my-account .order-history, + .my-account .order-details, + .my-account .review-history, + .my-account .giftregistry > p, + .my-account .recent-orders > p, + .my-account .review-history > p, + .my-account .recurring-profiles, + .my-account .billing-agreements, + .my-account .dashboard .reviews, + .my-account .order-page .order-info, + .my-account .order-page .order-date, + .my-account .product-review .product-details, + .my-account .dashboard .recent-orders, + .my-account .review-history .list-item, + .my-account .product-review .product-img-box, + .my-account .downloadable-products-history > p, + .my-account .downloadable-products-history .list-item, + .my-account .info-box .box-content, + .my-account .dashboard > .sub-title, + .my-account .review-history table td, + .my-account .recent-orders th, + .my-account .order-history table th, + .my-account .recent-orders td, + .my-account .order-history table td, + .my-account .order-details .data-table tbody tr:first-child, + .my-wishlist .data-table tr, + .my-wishlist .buttons-set, + .cart-table td, + .cart-table .product-options .item-options, + .cart .totals, + .cart .checkout-types, + .checkout-success, + .paypal-review-order, + .paypal-review-order .data-table, + .opc, + .opc .order-review .data-table thead tr, + .opc .order-review .data-table tbody tr:first-child { background-image:url(../images/bg_shadow_retina.png); background-size:1px 40px; } + } diff --git a/skin/frontend/default/iphone/images/arrow_left.png b/skin/frontend/default/iphone/images/arrow_left.png new file mode 100644 index 0000000000000000000000000000000000000000..b4fbf068570fe0ad61e8bb8c6fceee7792eb98c2 GIT binary patch literal 1101 zcmaJ=U27v%7@jnxErr^+)~{ORFkRM_ZD!_7^U)a-n{+1KW--~4hBhKfCo`w%(9WE3 z=G3G`ibe|YN`+;&7iC+$5W%Hl1uyKv?n3rr#b4l^6~PNdiueJFdZuk!FN_0c&Iix) zywCfd_q;uwzueb5*vl|XUv^3@(7A_>hkCl`|J>}$*Xi^m$&|w zNwU=GaSE1mDrJbUSvAR01YZ?n_FiCHE>F$y{>A?5qFYC_d;H~T+tSTx<0G4PyGz@;{^C0U z`XugU)pW7;b$LtjE(8ZdUFA4;!#W#IlJ^gNd zd+Jv)2run@obG*$IUKmS{ZymEd^)h#5&DQZ_;&j9Sm?JP9Nw#clG+M1`S<@60H@9} z9XED%|L*@T{#Jb`c|M&^Jo@E&U-R}z>EMGv<7&rY46JvD=9!mnvd{cneD0e6z_XdW Jx;rsn{|BFNUP=G} literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/arrow_left_retina.png b/skin/frontend/default/iphone/images/arrow_left_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e5d4987269afcf28f5f6a5bf3a4acf9b6dbfc4 GIT binary patch literal 1156 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}OBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anW2K2iJqZ} zfu)J1j)IYap@F`kk-mYsuAzaIskxPbp#l^r0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQ>bTzbeHFvbIFgJBE zGH^C=Gc||lb;(aI%}vcKf$2>_=rzHq7nBro3xGDeq!wkCrKY$Q<>xAZy=;|<+bxDT z&4cPq!R;0!oO<b-rIhy@x@-o3A(`w4-7k2`*^zRZBevUcFS?tuOueBWcjgk_g6AMaO#)6$?-DT zq4I@uo9nMRJ6LaNEL$&j-KE}XNx$Tjjq^8%>+ak3#JVZ|UFWYo=Kpr~?qlL%xTLs$ UoAp`2W1w=u)78&qol`;+0LFZU$N&HU literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/arrow_right.png b/skin/frontend/default/iphone/images/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..27235ae43b8a52e98f6a990b027cb0e6403dee21 GIT binary patch literal 1102 zcmaJ=TSyd97#He+s>8?uFAUT8VQaw$92+~GtL~{(F)2g z*hBduy%hBlL==_v=!0ZvDTD<*^%6xUJw;&{z1W$}wI13A&YTP1_x<1hpZ{ELX*yO? zTv<#IL`kecOyIc)k8MSp@P9{J=QTXJP&9>FVGqhkCLqEJ>;_~^lhPmoBxQJD9@G&; zA*Ci$C>3uMWT?@SgQ0EBz-)r3J8T=0+y@ZZ4brL}qP|Q`Q>3bdsCIvxjT;frt2T_7 zpmn4vDUbBYyh0tWC+lnh3upjIq^+gHdW3{{bUhZ{g{WSH41r-X znGBur($GvZ9MAI%>tQ?|H%7RvVI4`fTetS+6hvUjrfMJ+>ZGG6b;CgvqOjB7DQL!q ztZuEB2^Wm9C4=E;)=4P`jK}{E)wB(?g%aS8-+u~Q$zcO931GoNQ^pt9v)2h_2oV!V z2%1R<`*T%n>4gYdz0e>dt$vy#+f`kG87qsA$Ay?~AxW1(Obk(2fmT&T2=Y;u^@^Tg zZB*pAD94L|V8j<;MX#^cjSqC(?Iv#P!s`<>eiAb=F`TsD zo_IaEwLq$P{&gx+<5HgdC~RD~MV^1z9USX#3@jaRRa8HW)m-oBn3$!`uN_HEoGW;D zZ+T^<{`=k4%<8V2rxyKlwT-*W`Uf&^?CK9=Wk0X_!|$)$|5$!Q zy7;JNlwqd7`O{~%$4=~TURqcyovl1HF*&(5+kCcwcs;l0jxyeM+j-%!Xp{KhNZ05u DK+SDg literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/arrow_right_retina.png b/skin/frontend/default/iphone/images/arrow_right_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6145078b374b76aa43166fdff23641de025c87 GIT binary patch literal 1175 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}OBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anW2K2iJqZ} zfu)J1j)IYap@F`kk-mYsuAzaIskxPbp#l^r0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQP!raMg0_@sL=p*0#=~dV>GClpQ^3 z{rRbrZav;SFO>JwO0{RNrzk$su6Y`G&0MLpO-;q-=P7AX=CgG-*T|hO3hfhJ`RMZJ z-BkuDG1FGF^YoVWbUZ$~L7MOWvu$08PjAeq*nV1|{feTe(5ZheGNOHYC7gHfE`PuK q`>yWR6F+aISO4eueE$9m?E?%98aw?BW2M_bMTMuUpUXO@geCw3N1R{) literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/bg_back_btn.png b/skin/frontend/default/iphone/images/bg_back_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..7b55e92b560a6dd9374616ea053f4f534a39d87b GIT binary patch literal 1220 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

    P=bCdFB%x@M@{xXK)`{lWw zoh|9PZTcHB(S~4TWb;t$#BJ@x!(J5;*fTp?qtm!tu61|c)$;OkEst&6T5hF{*gQRP zxOi2&=Ehr=@t{tIl@*OPJnW#8>iXN6{?NW6L$q_?`GD%td%e9fBQ4a^X^av|Tj!GO zc=W+Na~Ci4nl<{P$oJ^bI~6%i^IOX9oAqdS3`NaYAk4cM{{DkSYjP_ky#=;r23p2h z`E%VJh=GJniR z*FUN`o|}6snu0*<=<2Gt#)stBLZGai9N9a=GrgJLBX8!@nSw3{kw|ohWnC-zfJ7)d zuF1xqpm-)#CeC)gco9n=9bMK9$W-_G`kYgyM_O~s%F1d*kFPGT z&_-c1vd;0nk{(PBsMmIMbkxkO2l6H+CzY3qzdO<>8k*Y~6*azDL-G(&D{^^n8 zfsv7vzZV8&Pd&WI=t=kQ@9Q&YNm*!KziE^Drg~$+o3@}|>21Sx{5$U~EG$Zn!O7Xz zu;&y$a4=64{v@i%yK;*QnD^}_pFU-4!gOd)S65f{-o1MrY)*R_olG6nKhR@$r1LdD zF7CAt-S}{U2Y^1Q7qVe^cz8?zd6&DLA_e;2wfV=5>u;VPc{$W*=~q2yIyqD0i>j)v z4VzK0SlMpRlX{@W>7sMz?&V}tUW^b`_lgT(%vN1V%qj6I+r=6xS6o-RmtMIz)OA)&CWAicP^Zp{b_8>H0z9C w6TZ)+y=g_bww*^@kp?>$Gk%@gw`d%WIJ8C65T05hUiu?rdH66dxre9!2kEsgH2?qr diff --git a/skin/frontend/default/iphone/images/bg_divider.png b/skin/frontend/default/iphone/images/bg_divider.png new file mode 100644 index 0000000000000000000000000000000000000000..c60164a93497b912a1925e1b8ba89613946a569b GIT binary patch literal 995 zcmaJ=O=}ZD7~WDSwc3J;N+ZI!1y5#YHqA$O=~~llKO)^w(_n)lbh|rgmUeg6-HF+x zAjOM{2QMOeklI@hA|3?=FA54C3zmYvz=PF;p8S|ilhlK8VRk-vp67kuciy=(o15zI zi}Z0E*PoqM^K9;7Bih@;{$#c54Vwn(M3K&s60PbU=F%ov#2{pcp3tZh;#uO~#CCgFxFE3y7z%mtnKA|Da&ET>%UH9-@ zJy$U5%Z6m~W9PtVATt3QQym2MisQ?H!Z&nfwhoUW4;m1E$jHrGO>ce zKzE@ipfIHtP}BYowe2?Ar+K{Z_n*Rkq2^+k$3Cfe2D`Y@P#DUUGal9{@d|{jw5m8; zCY1PP;)2XvLJ+~c<(Q=EH}IM!XC0sFj)AkP!ZQWIvP@ZukEF*@YCIK>4~yc2I5L?= zQX-j3s*)5NPG?$Nl^7KpJG8|$_qmyl+^`jFmqk{wXI;nUq(^MfNLjWzdyzWoHMwSI zFX@h4$jrd-V*k46))DKTaM^BKwrMv$c38K2tgUZ+`}C7NiTSLWE(AO3hpB-zbV$8; zw0`i%*qN(aPuAZ)uSKqWFZQ0UlpdU)dGu~$EfOhj+#2ZF-KjlRFKiZ$eLnSS_x8z4 t+Y28@?jAn=@cyrR-MJTACl0K0-Q4Ea!OKThe?JYMU3Ma;J{w=S`3EgjIurl^ literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/bg_divider_dark.png b/skin/frontend/default/iphone/images/bg_divider_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3155c6e84b0cd6f4f837512150467d148b28eea5 GIT binary patch literal 1147 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 diff --git a/skin/frontend/default/iphone/images/bg_gradient.png b/skin/frontend/default/iphone/images/bg_gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..c33eeb213004d68f4615b4fcf42ebb983b678302 GIT binary patch literal 1094 zcmb7DU2D@&7|w7?84LtL(5tiTQj?sMk7fz0BOk3Rm^r$FyeaZ8suWY$P>m9mBdUWDvn6pCC#h@AcecZx+czEy~Z*ttV_ffk;JKiHRAhGC| zHewN{49#(yTSe*zLrg&z_oJl7|N8Wq2T@q#pJ*QRQU?#B?V}9u9qqJ(qhVl#{MG}o zS(uC<#?%KzJW6u2sPR)?lkLlEi3d{?I;`<$PIbIp;E)UhO@u-Ks|Zw85vkBnjr%}` z2uetnpe`V2YPty#m_0mG%fg=7avL)(cB=6MN>fvkCXPVwT{5OMo_Tr}LY%gu{($BS@+6-ni=|B}{8U0Bl(MN! z8Q&b`c~>LicwwE>7Cv|WQvSSsm}04gb282XR>j`>1*xlrO2b(Ursrov%&OS%M>(GU z@I3P|b3RJ^kxPPcj1$^)Yy5Z|g{Go9vgW8z*A1l(5wf7J*t%o8vemE+U6~VH1Trl# zWLVu+E!}WrT}3uRb!2N6Y}mG@Dw?Y~RdtSSCOP$!0GFaAHaf?mE3u}NVV{z$O~`28 zO}hg^Nj@McaP~Cd`9YMF=d#p{n}zD)EP95+Mn+;V&AJ&~qOZzT3s$WDO0xq literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/bg_gradient_retina.png b/skin/frontend/default/iphone/images/bg_gradient_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..abefea993aac5cc68caa2814de830922e83bcbf3 GIT binary patch literal 1096 zcmb7D&ui0A9FN-&H@1Ta;yi^6JlW*EG;NyDI@u6p6g*Eoi|A4D;N3sKtN(%XrE9kxWMCk9Kl1&2KHr}&_ZoLM)^4tG9Jf*5F`I0? z#NJ0&F0=3SarqNlHmTL2Ez+YC6l1RHkuK)z0qWx>M&9(vH(chp<#&F&Lp#o{?vg-6 znT?nR5kqrac{`1eJH(Xl;=UhNgx?=O3%u`Dga-u&IFW$|{?0*+TL+D{doXl0PuRZ0 zms6b)1ehW|4Mt(2rxjtwtFwJ}EeZV0gbpjhiBlbCk2gq+`GN>?E+|62sEAMjnxft2 zWdMN$WeKP`2=s!g1IW)GfvLq_Pj8y`T#KD5!hq69m!!#LB2MxmiTe`NG))4sB+EHw zkxQl_MQJWfwiXN~PTbg!s82#ZV?SLo_mpI}UJ2>t;n5k9|+iD~4P!6rieF-U1L-fts(WM$MF~c1=_B3xe}N zrX_j|s{&}*YAvrSum+(8OPW@#sU@{kQf<>PtOd3nCKQD(&O|e;e}_6CHKWI!U`Xcc$|xqg_Pvr;o|7OIJ3|0(wDm<0SR>$?9BeMK%-L9uE9TZY9F zgc<~zVL>1l^R{UkvM|Sb|D7<2c_L+9cCPCdSFDw@?dc4$!|4>_kQFUvGxkgA-DmSD z)y--<{n_3Bvh?Tp_{Z0kw;!(VK7Tk^X{;)Tn@6u+zrS(qy4YB~^#ZMPOY7YCXUlKY QW7^7QyKXhiquT!AU-HRRLI3~& literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/bg_nav_brd.png b/skin/frontend/default/iphone/images/bg_nav_brd.png deleted file mode 100644 index 229016e862823c14021888b3ec17093e6136dfe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3P7yH!3HGlHr@UYq*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3Ce%xSv=@zZEnX*%?#zYON94Ne_6Ac^ZTKX z)AsxSW(l~P#c-kb7oWj~*k9S^H$~mkGX2aVm$b&!Fig%BvJL8z0osND56l~M4wXG) vKE=^+i9JM+;rOyYymL!Ze!p0Dn?-_Q!?rBWeJK|ng4BDu`njxgN@xNAUie=q diff --git a/skin/frontend/default/iphone/images/bg_nav_brd_inactive.png b/skin/frontend/default/iphone/images/bg_nav_brd_inactive.png deleted file mode 100644 index 4c9a05c893074586ec48296550a6821a728235c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 zcmV-r1DgDaP) zb>7d)?sz;7yWMVi#&P^O48!N!?e;$2ZxW`J`|I^OwASw5+UGl0?t^Z@#d-<&ufY2j z`yYvuG?&X|829`ALKwoo1j6@to&)wOnIxR=TofX>&IA+Ae4f0Xz@}A^!SxpyuSz_Z^4GCV$XwmPQ2-4l%rJ&`K7HzsWmK4cg}zBu+8JdY^OrrD>w-m2CoQu!jpQ{h&+2e_JnN> ztgTkf5G_gQ!^q3V8CJKSDny3FuDtg{sVY_lByE^n~9%;RA))-MezR8+)^W zhV?q_wAI(Wq?+aB6t}J$MNU7?!H1!6BYf8r1(flG)wOOwc=ebltGVJ_PJ!H6-BpH$q zXNo*Ph2_Cj63R0F5A+erJ0r`O4U1=6e_E3WQ+PGM&*$^QeyiVm1MA(CWZ*O-j-KIe zQ7;58aOXU-pB3 vOy0)kYju;UGW}nQ_I_dt+?4tIuK)u8Q=d50UyL3-00000NkvXXu0mjfg?^e- diff --git a/skin/frontend/default/iphone/images/bg_qty.png b/skin/frontend/default/iphone/images/bg_qty.png deleted file mode 100644 index af5b07c25df496fd70d21f954397935dfe30bd39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv-!3HGrL)l7z6id3JuOkD)`V;1?T`z%r$r9Iy zlHmNblJdl&R0hYC{G?O`&)mfH)S%SFl*+=BsWw1GYdu{YLn>}1{rUgjo_Q;SFtaEl zcSk}>ii)SO-u(x~Gld0q2OSoRRrtqnbk~h935Rd+2(v!Atza8aBdz7ODKW>PhUcV$ zgdN+|!`TwbGaOtTSOtukKSnC-V@Q4N^if}7UWY!@1>VJxIea;bme%n(Fj)rt;xJ)y zaA57&yYNlt5*9U$U;as+QVNECMZ#}wRhr*ToSmV0%J0Xene0>UIp$a`&RUduP~CFD dOCE&-3?JU_tLaM&e+YCqgQu&X%Q~loCIDhKV$A>m diff --git a/skin/frontend/default/iphone/images/bg_rating_star.png b/skin/frontend/default/iphone/images/bg_rating_star.png deleted file mode 100644 index dd3da542867283363e06a19adb420621801f4dab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1081 zcmaJ=TSyd97@n}pVpz}C%QQatpgWg!XKg1}S$DjwII^t^uF-?z%+Vcm=1enZFWO5A z+65~pP3JpD#(BCMy*ArYSflSy>JNSRR>T}9S#CIZmPo|2~>UT%u~=r zQ5B4lN~5&WEosnXRS&}!Oq;MNs;Q-5tJ(-a^dJ~EtO)b{;R-_=dW7i{6<)DpAY*in zJD_*GC#8*#XkndcX{MVB5)m)~Qt5&@YPnJ&!ffeEWbGYu47~+GBN1lXR9Z>UG3WqV zWO={FhXgtlWQ8Cf4u>^ACAzR|O zd_K?S8(8QJb3!;A=J)^?2>1!Y?~YkWE%+_BrlcSPS91&-8PK9VMRgEnQG_8*w^K0f z9a+mQmWdRME2uUnu)LR238*OlhnnUN+C@pQ>-V3+ZfeX1ToSl2>uBWShHAV}wiI)K zilCE%aI{p#LSdPP>C`wUBmd3Ou1C{o;Vk!oomE=L%mz#4`wg=4{BAlxcO z17d?9wDD0n7L10X$J;}ps2C815?6*=)&v$RarIqps4UlO1=A*xW#AY&ptn2Fq_!M3XqI|m*?=SCH!FxKe&#+yutGs{BjAef5a1Ac=0^`^$p*d!nd;c z(LA2)!uThCzluM-#!nXT!r0?yw^xXGA}&W$g?FhJ{fEx+zP*X*Wq3ckv3WoYPUf0@ zS1I{gZlQi-_UK#ub>h_T>e*veSJpo-)JJ|3gcz--%%L=Wv=q}l(BR9dE;gb#q_0a9&26p|!gRgj<;}+fq%@%DrTe?R= z!Od-iEQ}eNaMzryb+4s>D@_kzu%1n(YgH@&02r}_NG z1F)Xyj3C6+1z9+VQa!8iV_u!@^J|d@V-wo1@TX3-oE>121Or8Y1rL@GC=~@%gj!Ks z0}@0~M3M;A0)o1t>JWj+!!xzS-`5+KJ<(#P3g4qN)RJUtB|j2l6>N7EU3lunYx(k5nZEFuAl z$=D{3Z;Eo9%MoEXvrcIPpE-Xaf7(2ZvDm;V873a9;{NJ6smq0O!$}Of<0gH~s%X1| z6pw#6j{b-_A4KlJBHl2>5v^MlemD$#T`roEViuvQYH|%CWI$D}s%F)a47;kS@|55_ zkZB1%!&+6V49iAYElM^*HDs8wR5caFRBb3%4SR~MM=5n959gveHaNqomtu7@!7e39 zlaRr*n|6AHlC(!+VD2gc0((K^lTn(NnsKvGEt~|;ux}?M1mmph!3Fw7sbs*CQG>RG zN@avJ1U0jUpj47=%Q7W?g7yD9VIuQH%)9Jd*G;cjE9cwU46(y(3US1WmarLndbfUu z&8J+qjAr(u({8tq{rOub#+N6}`L(|{w&23Gdmp|(zxjIk8|DsP{60BZ`TTPZaP!x> Wm0wGH%hJ2Y`Fz)F+t!z$p6C61+1P)uwz{z@2*O%@&usGb z3V$2dR`~blr@O!Svd(I4c0hY<;>1L#c(hAEJ#hM@NgVI!>1VPn2v^_wtu|}h4|SIY zl9Sm;X%KO=AZ+iZk>d^t16|Vh!?O7M-Fp%EURgXW+Q^O!GVu3~V{&l3-*S(KuI7om zJ77E2IYB^}1JYm=CVE;Hr@T7fXV*{!Qxi5Ui>FSt?FKMtOh8dWc^8#1C@B(Fkfvxk zAR~+*mLXE}80ke-M;Oc=k*mdCPj8ymOpBk&;()P8hj22PNRxs@<37Zira>e_S;=H_PI9?0b4aG3275AXU{0HH2{msfDU)R86^JRW-FRCpZt} zT9U`HhNf9Y!7@}uwlJ-~4aAom1jU3RYP=2yIxv+ZJr_+c@HB;-Yl`HbEF_T@XD z&wF*V(n?RdolfUfZ|TP0%7@)tZuI2G^_5(1`StVluS+*KZwt$Jgx2F*J12iW!fdGP LwSDtVwe#X1D5p>_ literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/btn_edit.png b/skin/frontend/default/iphone/images/btn_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3b3f7d145c74cf2ca426cdf2d42992253ab2c9 GIT binary patch literal 1321 zcmb7EZD<>19KWV$yV+@xD%K)9FR~A6axcl{dS}lxxl3G}sWlBO;E-MKo+d|fFTJ~% z7tyx+*6CBnzeuFH0s)`U%{s+qm&HQOV@?2u<6xww)BX=lp&7 z?R3Qicna7?(UM^mN4#64wij{@8!>Q6$;ty*#kf?kLH!_^VfF zbW9W|Ax4P|$%+iq#3ppxk#rfjqApgwhZVQQa)JdU$FS0dQD}D4V9sz1J7<`vFhu)F zbib-AM#*+d4Y^^cBCymqffBb24XtOLQ}3fs2jdhI3q^x8MTB}uvX>#_B0~h?0vQa@ zp$OK%D*roSIP?T}yKGC>HMd|ZyVK1(1Q(mP5a_UI7QAC;ZtE8jq@^<cmPP`UN~#Kco4y<_WZ3+-0dH*?Dy<3H;i7soT6XXXdOSGm=$ z`B3*8p@Wl1cR#=S(QGH*KeJxzQTQuM=+m{u3mtQ9pS7{X%t8-YoyqOHbnG`dTbpkC z^#fF^{;_-PPUY{ll^;${js6vxJHIb6xx4Vwksjm5mB`$+%ZuTMpPN1;A3hq~;XI+) d$j3{FrvvewF8z5T&++chD-jzIKaUVO9bf#${^Kp}!8oEN=5&F4PE_~npM&~1#-P#B^Sq_8*|7X0-)OOqHX z2JBds#Z9=wEC`CFEefb?DfjwY>ixC=R$PP@Mj1#D0-AtELk*J3MD5rHF9YZLHjbei zCR)86d+e0YU4gQ)0#J*Q$oCUg61AF*q?xdpZFwj~kOWRrI6>!=1Y@BYf=EmNnz~Icshi1yX~UyJ7$=Pcu58%o@ok~p?%ffg(6+Uz zdB79rpUSU#o5KM2099^M{IH6(h8GAw9VuqNYX*jCMV50Im*F1ZM12NU?&i283Pc@aW0#S zwOVMFg-93auR4kc75XY2T2!N^P&s??$79?hwe@#v>m_m+zaEU4ShxH zYdx=J8OBy#nH}wo+s9x>t8TvY_pNZk*$=N@U4H-5jP`-JtXH26lCv$%r^wG61lfK3)k0DgIPCLvXxJS>G+Pu zJ6HBbujbg+|9bPimlykEj}DBST39O?2RU;knKPYZeboc$^|!FYN6z^84_c@4j`R+9 zzxWMxc{PqzMlaM{oG3VbZQ%`mt_XKII`{Su=gd>_zo$MEeJN#%%`A-{7RUN~=G#6l zoJpQv{5+>~fB*M`ZAsN-XIE2y9Sz;TDNjBU<{#bg{7AvbQ}evbUJ lw0Ldx&!JYsbkRv90Wo;zZ+!OKV5a_qEOV7}=bXph{SRQ%`#k^v literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/btn_remove.png b/skin/frontend/default/iphone/images/btn_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..fd22fdc6b64242756fc18e063bd3e73d2bc6d430 GIT binary patch literal 1185 zcmaJ>ZD`zN9FGp?sH+UN)%698neNjrd2%nkCf=>yCB5sxQqJqKR&d%}@?0C*|O{fL^pdfBzZYq-^vuNS+sd zzu*7uM_y0&C7YYtnh1huPW6fzyguZ;>(=7$kz<8zcxiQd2AzJCcM7rviI|FVkWA_F zFw8(%E$;aeMhIdJrDX@5L1`ziAf1*y4DISBW)noD+cjln6gp%M4r@k~x^?CpMQUo4 z8VE^1G6guI^_DEyU+T*$rBQ`bsqP(Q#O1Mo4jq|v^)bWd-6*xJ%j3Ow%~0er#2JlJ zcas{F(xiYaNQP+OQ$Qz6b_QuS2)H1(o%911Fsz>eVIK?lP?!fSx$;mrnx*FXjF?!7 zg-=mx#BofXVG4x;T?o*~8fI9I;~3y){C*!s`0S$L$ga<@x7HOzXe*XxIvO%aPf^aH zaVJXQOz)PUo2#;hz0xM!FvgWlhNXd5QXMEs{}0vmRkZD7;JtkRQ`pWHO~_=Rjm9kn z4=%se3uW?x1!V_WS%k*wT}+Q42iYUYB!&JE&5{F}p`wDljF%)nW!R2vC@>{PDXc(i zn#y+x@lZS%?g7QOmIR_6vAN;u5(4CjO);F>Rk06H_?#mSwS~(WD#20 z3s6m1NGF#|=C#JT2o3dCxN75E#D-i3C&PGy{nw!DSJ*w?cGb4{uxfm0V7FV?)`bfl zy##UJ=9C!Ax>s_M_O{Zl%im=t%Y?gsX<>JZoJ{%_XLdduKRDUdb@Hw1-wS_iys$X` zd;9s>J9AHO+PmgZ^&s;geH=y=TmF<;P>s96tNm?CgA{d&5$(R;_K`c&K(_?$U#M zYWun3?b;K*4{Oge&k}cHzg{!)*RSW&&z*j=EJ)2WbDaStef6Vqd2-^BN^EH1;{#jX y7#lNR2Gj2zJ=pQh&FyIZ*15Ioh4*qB$Z29`oBgvtKJl&h(@6F7iO1tZFZ~0QHKhFj literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/btn_remove_retina.png b/skin/frontend/default/iphone/images/btn_remove_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ca6b8ecd61287c893d53fb13d82dbdccaac9a4 GIT binary patch literal 1319 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh*)icxGNo zet9uiy|1s8XI^nhVqS8pr;Du;&;-5A%oHnQGc#Zq8=06pI~y1px*9sU7#lenIhvZ7 zyPCNfn7Y99y5uL9=BDPA!1Sgd^qS(-3rY&P1wfl!Qj0RnQd8WD@^clyUbf1_?G_`P z=0WwQ;C72KPQCg-$LND17Ac}(Lcr7mV#1RxkONQnsd>QEUIa|m=lIrgFfcIA_H=O! zskrqf)HdHSP@>NC$to}9m#@r1H!AXknRWK|o;`5kApZyXo}k6|71+G96?m@x$XJ>g z>KQEDEH?f0+TYh~oo?;0yLD;h`69n_Cx1UV`P=5b#SpWYMTqrhpmn% zwEEb!XoGBje%`%#PK@nl(gkPLLhioPKjq%bwuhzp!z_;j`{MW?=am;9HMXhT>vGk{ zGFT(w=u@Ti@-XePOPNn1!$LmZlDYoppXJZRw|&2DPct_9`RA0(dU=6)$EBMa1>#nR zq@-q>KCygP&TRDVtHZjhewU3Te6BwfPzic@p1oyl$bxsD4@MhtaxE6@vym(M_n<(h z|B=?`9~U`(KmBAA)D*ZkChy<{KdrBO<@}XezL)*JvqJKvQgTe~DWM4fcih@s literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/btn_trash.gif b/skin/frontend/default/iphone/images/btn_trash.gif deleted file mode 100644 index 8784187ef1f2ffa7a9d8afaa3a24e9702ef8a6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1353 zcmZ?wbhEHbs{B7gLAIFY;-@g5cwDcoR&LVOC1Fx149FSLnD0yb6rCND^qhT149KUPy*Ukl#*r@w&$amzVPg@)As;uP=V3xw&xF#U(+h2=`(& zxHzP;AXPsowK%`DC^;3VTp46lft7PnYGO%#QAmD%4lEP{GV)9Ei!<^I6r6)i^$Zol zGxJjN%ZtJ4eSNJw^NLFn^O93NU2K(rCg^2mrdXMqI~zEPQCg-$LND17Ac}(Lcr7mV#1RxkONQnsd>QEUIa|mjQ{`r{qy_R z&mZ5vef{$J)5j0*-@SeF`qj%9&!0Vg^7zri2lwyYy>t84%^TORUA=Po(!~qs&z(JU z`qar2$B!L7a`@1}1N-;w-Lrew&K=vgZQZhY)5ZeMTG_VdAT{+ zS(zE>X{jm6Nr?&Zaj`McQIQehVWAaT^(&LO$~K5RTX6=MFn{|Ss7_5NeOW=Q4wJwK>>a~ULI~PP7Zc9Ru*O^ zMg|7OpDf^FM+ZcL$~y)&FNcZg%357&b9vN7K8f(pn&5aPv5cirfFtmWfu!Q00~$dF vj;uuw5Ao>sFgtNPPB3%f2+&aY5i*05O;L>9RbD`mU!FlQMTkMfk--`O6h+iL diff --git a/skin/frontend/default/iphone/images/btn_trash.png b/skin/frontend/default/iphone/images/btn_trash.png deleted file mode 100644 index 43d00f17d8552113ff1ecaab7ab7e26286ac9c82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1227 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 T@WcF{U%up|lq74!O@jUp1gMBI literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/custom/bg_header_retina.png b/skin/frontend/default/iphone/images/custom/bg_header_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f03f0159556c1921eebf61e9d8c4a85267863d GIT binary patch literal 57132 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%0DoA-27ZJ9hJJBF7er3<0$7Eq9;> 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 il><_?fieGo0R{lj8_M}cqZRf50000?if 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 literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/custom/bg_logo_retina.png b/skin/frontend/default/iphone/images/custom/bg_logo_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3acdb2f7c3eca4787b88b6a440c078d5318fd2 GIT binary patch literal 5850 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 MqJ~1r6HEX90VCeir~m)} literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/fabric.jpg b/skin/frontend/default/iphone/images/fabric.jpg deleted file mode 100644 index afbf8e478d4d15a48870b1e4e30c2af2e26ca349..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57452 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 diff --git a/skin/frontend/default/iphone/images/flip.png b/skin/frontend/default/iphone/images/flip.png deleted file mode 100644 index bf4d9ab58b0d13524268bf811e99ececc9814617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3124 zcmaJ^c{J2(A0M(*a_!2}Z454DnHgpVV`s=1dm~G78#9B6S=}2 zDxsBR&62B|rLty3vLwm!j&60|Ki=NwoZs(R&gb*_uID-DIpgNCUvj(hb^rh%iFQDF z2xbkzr@d87@XvVcJt~-#n0DUG1Jpn!3r8mctO?WrA`nf+1ra@nI6`Dt3(*V!*a9M9 zy_w$5PDnhJtdHBo=(EW*0UH1?vt-k7_z)r!7(fgnQOrTJbq_#562Tng1$Txx(`<>s zB!?(E@j#Rd79SOYHz9y5Er4chq(Fd7Wa5Bqawvs?WSfJ&>LLZ}&0{bK_!YtoF$ewQ zl((}R(3VOk0^#})Jv;;f1tMVjP#DAnW}*u;fIuN&r~w#aqz8o{;YLUZ6!>j`1lH(; zK%@uC{+lhq&KwlXWYUmeFpI^~XBp~K=|NzqiHQjqVgNQU&=Vl^7?Bhvj;%*wsDD>L z5gB+oiN+*RDZoudTmUtkX$}&2`cDXC+7DR@<6D{p2?MinG%!>jvKi8MptJM;hmy%Z z&Nh5+ihzx2t9WN+cp!%jM8q$_d#4)LKER`DiJ&SI^R3?=XOr-&B z55V=IKra%7KxHw$;+>t5XbOXgqu_~XlsQPCpid$ZkVbYedx)()+zw?8gF@{f)-Zdx zG2GY)Wo-jN8N+P8b5T@$IGIRce&-VYOe7XDSY+dS8{j2kUog$AUFYN{C>mIa|PijiiR1R`fVXB&bOeO8eDvW?e zWH)6xIXVBV^z8Gi*Rx*+&J~@-*9=k2O-)S$`^tSDbT&69Ui`dkY1ePHi2M1oFL_$bXMdVl zmY0=%*{7*Ft`&MzrSo(KwEhoGI6S=cIX~r>9XnEdZXNxLb?DHcPj!C!SEi{I zp6V^}#bA;TdU|s6D-?4#5SEr3_e3QW7hQG%g>HttsC+54$D-YKOI28KbBdB-HR*W~ zX?=Y?J2f>`Oj{2KwAvEeL`B*99zT9>X|h|rLNKHsMtW8Heb(w%KBi>l4+h{dj*hJ} zQ&Uk|7ogEgq2!fCzH;C^;D&EScBRy{ymC=d(MT&Xaq$p196mQZJgmaTo@Cxnf#*t0 z4&G%vqK#@$b9l!-(wl++1YU->RbFwQ)Mn>j|4QGKWD=Qm% zhccv`_UYHpG4CAYZul7A-q=c>mWG5*3aKY(L#_r^ziB!a2kOi<=Ox`GBzYAs=7Vq&6rWMm|DILFJ@w&8H@UHkE_TOlt_3R1DU?MRQJp6}Rj z62KkUsNwGJe%OrBo@06^d&_QVld;~C10`mkM$(=+Uq&dLI(5o#0&JAF-yvZh!I7)s ztgW~%XLk<`4T;OWs%6iOC{3(w1Q~Fq??f(4$i+Gws%PI2PXVMsjg7Ulr*J$23kjdv z1g!cD+uy_0)m8XJ_qMnCHMy6Kj~d6U zuf873R7-Cem;;InZy*tfgL1AOM;hgIyegRlBJp^vy~Pne1I2bf2V4C3@#8{0?&VFQ z@R;m8wXkK{a|CG0dcR7dQfI+`zYe%FpdcA4ZK+hXs%mJO0AsGLeEd*URCEPn294v- z&c5iYJbWl#=~d85ywKGlg0PNq*;oiKQ!Fg|R)8{x&*uwC{c1LekJ*!d;!m~QWLeO5 z35l2nDn~cBm{-!7Wf-&+XKbIQ^Gq55ujv6~T0+*6Gfy=5c67h!vXPkI6_z606u0*9 z#1_`l%m8bPs{%b*wXw6aa}?Ho=k547SuvTP7J~GjFRi)VC`J5@Gsq(k+-96s+V?V# zC2z#q25DS78Qi7!>a@>-SC#+a(^(JDry8MW4h6R^jkTm3`E2h^-D8<6HWj>WZC{tQ z2btf)eF9j040vu-d5Uzyp`B#4egoHVnkUkx7$z?jbUm?4L{HQDJr{|lOHe8?i=O>L z4n~8Yb)Jid_Ek7PgtUM8JzsZjW}gVF%xYhWc&kXpg$sl!Gq&BXszlu>jp-M8tpj2{ zTA{mCqubj!+Y=*r8I3k>T0WujmDL69qIqAARTznvZ&RJQ8rhC5snPH~Pv}VO$y(Ow z^ia0Jr%HZ`aD^#1Fwc6wu{7@OsvSeK<#l62Tm9^@5z*1nMoBlTTU2&qB|RJO=I>PG zzQI}`n+GQf_eOBfg_XHkpbK0Bvj5~xsm;+2i^YoBAHC>C+2dp2^nnIPAfiUQ8_t`0 zi-kA$avjAz+W^592WHVC1ny$y-nUs5ag2{sX>EH+Hj>K)=EqlHE>|Zsgy+Y(_>N~9 z6AfAY;dJy}jqZG12aX!T&fSfCVa%l4q0pg@HJh7bGo!$$k>RFcLc$#rK-;{N{I04U zRl8SSJ}p^fou0RQfdBj&FAtsBnqyBKF0$R*y;I+B8Gh!Lf0naNto%YT#;*&6^5t=u4=a{q`a;P87f1$K;2PEI0u8O6!Bnwy&+CM6|VQi2>jOo>g1?gi)kJXb;IAnJ05&K{eaU?_agZan#9>9CsH5+LZ7-1UH!flU07T z3n%fKbowPMD%XS&IB;&aX`w$D%RTpm8C&loGH;%=ZiK;L)OkGK0>7iv@$;FcsCHkp ziwh@5cuhNRW&}_(1H8eluCMolnMsX^E&MK#;CO7#IO%Rhz`Zz^3Ei=0JBh_RZ>L}_ z_x$leJATVF&2c(P1+u$Uq}njKw6xTPcBFREtH;FQiPohZY;J-ay+-~xT?%;OU~I8G z4kp#n`z|J6Bh_c6|IOS2)pCd1bB%h8M2cB@twUc)0)vlr&Ev!ng&F)Z(EX!~_D=x& zO1itA%oR13B;>t2SS7`P=Wc9p)oP)mqa*zFgO~@RQgfFmkNozxuoeb)pxz68 zsLW_=Y`jbmBB^dK>I+CUMq~T*f#(a-xj58P=0*qsbzDQ8k)eTKq7V zKKDj?J{xWsXf=_jb5;nHuXd}rIM~!*3H=m8`|#$`r@8WghWMP*Fg3C)KG&-tRRlKi z?uf?LGy7kamX*~p=f_$M9ZzmTI3=!yzal?A5g4SC)KtL>76=bDg1TpeP zV%)KMK?ICNkg=spkcSHb4N_MFsst)i4B#ttZxN!0 zD(F8!SsR%GkzNE0P(cPF?E-;AfpC}%6b3=S5K=%n2oxdCyJ6X*+3_6S*Q#| z7LPxf*KcWGqB-Wj!}uSieJx4e7+G_Sua_Ueg|Z&5!he)0x%=N8{SidF{3GY>N5K7_ zC)!08gTvr4oZ4RaetuZAvI0sDqJ)rxA>_4m zP+CwZ0t(YqQb0gZ@=yhc5>n~J*@=OFD^fTzXo{|mj*hmHwl)lbgi;=Dh$bAVt%+1X zK@muVlBOK|kFLI_FVV@<1#{x`L>K$ty7K?4t}>ED7a zqy_9`{r-*+L%{lD&^iP!Jn;7dC}aNzzlty@R8dDqUJe3LghJs;T5>2&B_*UH1gWV7 z(M0Kh{?q%6RJt;aImLmHb{YOpqU&em3|5c@bBq^nT0{`hb3h__ZVmv9WN}%-Qsr|7F z001vRAEjv-_;J;K(CeJOzf7M4dMqd5Yr&*GoDm`o46yKh+gaVAF|VKj+=A)qYlPcT z>#5K)0++MX#idd#07GFB?!cv3HL&;H9|Nm~Dh-0ZJp+LWHgONc+M6cq{ExppT0TF& zOT|jk;chv+JZiNbyt6#|k*ItcQ2cTw>}N~)k&lS%0r`+T{p%Tf6+ro6gd>2p4mO`m zLt1-#d|j$0R39d6%>?KK*z}flI~Wx2jfcm%QpZyPd7npH$C?_?pXU47M_Yd)0VcR7 zi<_J0u)k^n@LO0sOy<%X*Ae0 z;graGOM+Z_QNN=)1F}%mDQ8BsBP2OkW|Hlc zS087H#<;5wRiFt`Csqx>F;kM_3qA~RG#4YiH538kxF8A@7)yyb8Kp}zAV-Z=R6L22 z2z1crpyXzqeO#iKedXYpU#KU5w&4M?DvD^_W&~!c&Y5#S< zqs_X-ugVb7D0g8)B(L1cN^E$_$z~98JnMHjp#Jk*>sf<`FKNl%r;n|^2W_=VAsXv0 z9eVTzH-BgU^-S~^+4ZYAf8EjEz2<}E2h9gZVYy#+fZ222q0)~!_OJQuS9Q?X{ zn+ey~`N4j4Mz{wF@0Ma*>4@t%4*Jku<51G!)`iaoF0t$`CN>{{I6cmX06&CnW;w5k zsc#C!n1=lj=u1&$E5m_I2KtSOxsXSNp+a5BVd0&#otDw=^HRDE0&j!ZeB@oC?0EXY zB*YyfuZ5I+h=vR>`}*thrRi98)UO;XcsHRUag^DGoFNIOL(oP(V4q*rZI~JLlJ#=c zHrO8bI6JyIijb}FCX3XBg83v{hEN(@)J7~YO@L_Q!<_48%}XC#6^eDpD4Sq zU62u5D)&c;D7)UzDQD;m25+|D*)qZd`ySuwPcfp|cM&#%YqCW+W}3t8)ei~ays0CO zU(;&+CFY#Xf#n_CH<}Qz@jS%Rv36Ns`Pb1=UIHU0)(<`6_0#s@;l41 zqYb4nf~!2WIAuxXNqaq4t)qn%cT2_E-qDq!k8R0*7ay)5*zYc(CWbM5HT!?2B60!RPoo$U6#pdX%;pv2EMS{zmlc5e>|)cxGN zwqL<)$M1BhUZjRjR8kY7G3xpg6;ZWQ6lPcBcAwhxS{N0je5fSW=~R9#mN$=9t7lEU z8T{FJFnB24SF%(wMA-(GMe|`Eh4dmE$Bj9P6x-z`Kj+RF)1SyuUE|As)y!=*Nk1K-V`0ZKb981zd-g9 zilJz{4w4Uf9nmk%(2J#_kcU(B`q|SaT^~)pljO#xLoPfLlXWzmp&vJ5Z57Mg3K9UG zp`;B!$qfL&!9qE&{sEK?{6Cx%paG!}e?Yh+g*f5-2Ave*9}r1Jp-wm_;Kb}d;P;XG zkE8#;$M7fPS!1-W)=UZW3ejgZAU9_Re=evWZ1vn~rLTQ83`(=IZQ99feFb4)EO$@K z>8+Cd^|ZTzzgFc-pNB=0tV$MtGb@*p5FaROsDDsxt+z;b>-uwv$8>+aZpV!YJj8F5gEYhe9>qT(==js@SHDL!(`bJHyj zYTi`BToic04a|PV$%;KNf->_t+qCfUHt;W}^)UJF(L}b=^?~<4Z!EYK4JYVp&hR`m z&*lHPWPKJ8X`@C)rRj4TiHFhG>Xj&Ejxh={GrFFRb)}We09}rVjNqlL#-Eh`1OAo! zaL&J6k6&gLh4L|qa8LuY%ff3C-qYxFFKu1Fn$}-(h?cdF?Bb?pA2G=UNHXO1o@=U5bF>_FNGfMt#4`@Hco=5}O zh?+qBgmWL1y)k9mZs+g9Jd`0ulg%Y5#ja8kYe9Eav~7Yd_Y7cpr87Gc{+{(zrf%c% z5bOwdPlTP>n$X*RI+px{d8>4tP^5C_7+)&^??pn`S=7fwkOud3=-S5~b-O(n(&c3f zM>-2>Ax!png!M`Z3?T)WvjBi7hvEI_8Y9#iZA{?CJsgtl=x*z6eDXRKK!Z+| zH*)u~09&P|Al36zoQCn~)2&l9MyCJ@V!RIY1CdEfyM3I7?a7`1!048vWnpg@lqx&T zL44Ri%~-CT82~`c2oEJCl`CD^x7U~&O#d>hi_pHDuw*?iOUDF|q;trQ8@(h_Q-U|Y zeuZ5}G&NS`mUa-7e?mXL!w_~(hK48#2n(;k%lr=1a0M0_*j=Ca96jv7EQgiR^JGQ4Y{PhuP~HQU6t?spOJ$UB$wL z4Q{X5h0VZUBVv5RK^dcyu#imCH-umw{6g`eYWZ3HsbKVGfl-ss;C2qz1)5!pRj9Fw zf#u!9U%&-&#e2PlLEpJfL5V5RZ@w-~J6*+-S`sdxU!lD&w|W;1e|9MB|LO$`Krd## zI@cMJ_9GtUR>GiPweU=uA0M8;nzprqUJ|$;D%0<9;al;47gl03!vX;hU=UZOh-!fkRWLLv^#O-+=K(>x9Z$KgifC)pI>{oOk3`%Gc4iteUjo$0~3q27+fLAmQ_cjQ5f{l0+xH%sV)(!TNc zi6yHG`LQ@Rhv`6j!)AMiLi^hA@P_<-?hVvN@$(nx*X_L`IZH5OP-#+G^@GqL8_z}M zAy2ubz66-;vc%8&4I8`Hkiwin*0yM=#2cO~k9$`VF4`6@#Yz5ZbBuH+2R&k%fC)4% zV3Jg-cz2g#*R|$twM(f;<{X{TxlG@*n&VtvH5GPTgYB|xPam$56auMp_rTdOc30f2 z=Bg6!wsdy`3(ptRQQ*j{OqBpB2@fCi=Dx34$Ra`hrk&xSiJWNb_k0m9k=7RGS#Zkq z1$XsHd)By?{7=rd0gL=mv3Nz!_2sc`=i~`+>uj#$;%6ug-2@%;_z2GgUtA_>Mk+AN zjHIt5F$HJn*=T#FLxa1cRohb{dx5J~qsrzr~k_tCPG@y79$W!1ac%R-J^% z`lx)Y=;Jh0|FnWNgsHUqy|J{($9LW1uW&1y)aQCo%7%fO5idMcoV*l&9y&SHD8{4e zhhOD7dI{_DJ6XwJB+o?9b#_Iq7q;TJ7Dh18`F)Md@l3BpvfsfpFhe=`$r;$o zMlLXeFG!opeumuaTX?r~ZYhZpgW%*{C2ye9nN$OwmJDME-$h*#p>@wom_6Dd7sZMA zv`KQc!VC$zg)}`Ii@q>?abiIHrjhFh@t39LX$hbCo;;}HPLP`3d_HQ>49?b*w=Gu) zbWH7Pyq8^f%cf|sp(Qx|J5mzd7;sbG+x~+%+o_O(@}3;^we@o{lRt8S+fuW)&aUHc zN|7M!u!fW*1rzQB)%UEHH=nr773$s|k4)FHj=NKMsKSekDUdN|(OBV

    Ax!>AP}0 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 N^K|udS?83{1OS%Q<%R$N diff --git a/skin/frontend/default/iphone/images/i_add_to_wishlist.png b/skin/frontend/default/iphone/images/i_add_to_wishlist.png deleted file mode 100644 index 4713a7b1d9b3e54ab3a08f0b264bbf9da48e50a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1240 zcmeAS@N?(olHy`uVBq!ia0vp^svyk41|*NpQ(y*Ck|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh*)icxGNo zet9uiy|1s8XI^nhVqS8pr;Du;&;-5A%oHmZa~CsbH$x{!GgA{oLstVQV*^(gGe=8f zS0@(}GdD|^UYGpj(%jU%5}4i;gkEQydO=Acw*Y9fOKMSOS!#+~QGTuh*vnR#xZPrj z(>$o&6x?oc#Hm*w=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6y74OCJ_ZIxA5Ry@ zkcwMLfByfsKb*kq!_zF#W0iF!Q29`xPK$_vkx|o?Bg`Aw1-b(=?n^7&V?4s$=z39p zlkCx>N2f{&3I^t-rKue}e*Cy!XSZGLuP>jktPEbJ9kwQcxoG+1w<~7Mn89RiZCxqw z`~LoV5msS-e*WE)Cr`HF=JsZE?K3hm3R-f-@Wz=X8onDhZ{Gax@9*iW`j}>VPF&nk z7~ti_rEFAxZjR;u%vrxraH@JaPg}6~-=Ck(n-)HKAz3OCD-#+Qch1AZzp&7-ZPvMS z=l(NG1x=Y{Y$E&h_xJpgg?}TaSPBI-AC-C48sh5O%DihJQ%*xVgu=$(p`e5$LYS;LyOx5SqGTN5Ss@pFw4fr>mdKI;Vst E0F+FvvH$=8 diff --git a/skin/frontend/default/iphone/images/i_arrow.png b/skin/frontend/default/iphone/images/i_arrow.png deleted file mode 100644 index 3e08a331e5e3a2553c01793a36633f80ea63daae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GlRRA~)xptcKfP#Q);M@HjQ@(f^aRgrZA#Hr@tZ>YZ z6L*>wj#xcEb261vp@D(PkGY54rsK4H{jH9>EFZ*`j%7F8*lrGHDXI!InVYV)-hv3iPV5T!ln|7Ebv{W1|XNc-}xHX%}i)Bf%2?Jx} m)c4NQ|1+})I2_PDz|c44yJOe8U}fi7AzZCsS=07?_nZLn2Bde0{8v^K*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-xUqS~&|m@vn0`fKfxe-h0mw@*g}%P{mFDKcRTq~8r6Sym)!^cg z%7Rq=pw#00(xPNw#HA^NtSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&JJ*LU?9g zN`84USiP^Wm1kaYNn&1ds;7&s63_&_%*+%kCj)bHGbbZ+OJ^rDLqk^s3l|e3Cr1ls zBU2*-V-rUwm|mCsATTyALtl;P{bldG)xGXdO%EgvITPB2|qOtnA(eg$(q;jp&tVSV~?kc zV@SoVo+;?dp- zbj3+Z*4z_ymmZPWZ@2v1i_*K*>3+4dtl#hXy!ZLM>T}$|&5l>R7O>?#v_5e#X=175 znZuGL()-ph3EA*I-gU2GU5rc8tZi@R^w_L#JsacVly%|MdrpyvKjj82?jIhXdLYyG z@aCiS&808Sgf-{RXi-0H{WVH>wZ}c5&-Z^Z#Vus+>iI5ofz7;1XSKtEi8y_TWAzl7@n*eYHCVC#o9pOWCRt{ojJ2^Htvwkn%&8m0XHn0r3v*xXJ<~5A(=Vj z%t>~#_+X4zygUUe*s2i`G$QFk3!w?^Ln&!|6TIR>DA`t8sr3p0LC?f&>_fK$Gv~th zegEZrXHKL$c2!r^RWS@xt+Y!SIs*Uwppt&wLg57+J|%74q!ag$yy_sPRmV956jSX* z8KmmN`+r5v46}+gvfZRRwOiD%$*Deu^Gutv8Kybz*{ar$2*{yc!-}y_e)y3Eh8|

    D=GuS+E2l{W11k zQr)RENMZ+pMh*rw7!g1u%n4x_4M#r*At*pz2=TBfC_u5XNrVDeepnjK(R;*}q> zxSmaZC|gWANF~_GVmwglV!96#?Dk#oHH!!?#|w z?l~4&9EUI7JYq(w>f2|(tsmL7TH3k#bu}1;$Nw4IkeSPg(`)a4^Zfb5U(?MmIc4_h z*7GoSVCbUw`{Lk*D=jx0hG#zeJHAj+^K4;Yi(LF_??LzH?Bd4xb>rJE1g@Vs+t5|< zMe@bAeN}-xniHFwkjzm}V!7PwM0HalPi3bMnJK>#kfn uGIsX6$%A}OnOb)`zPYxhV!UF8S;g$DSI%F)c67r311N1B(v8HvLvI1jhk3&Q diff --git a/skin/frontend/default/iphone/images/i_cart.png b/skin/frontend/default/iphone/images/i_cart.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e08527ab47b769604c3f241fcf8770d0cdd458 GIT binary patch literal 1604 zcmaJ>drT8|94|$AMJH~66J?$!IzecAebR=4rKPmQBD6JhZPb_;Mz7D^=|Ik7Gw-XI?@;=3-_dp@x&#p6}D0!zm&S`$nX=&>{ykfPcQSPpCT zdE2kR(Ik>5h$vOKO16Qg!%&LWjiFdkBf%z-qGPQ_tu713fiyS+G4R3B78?j4dOn!S zlF?*FA)JXw@=dTJKS`;}&(d-AU~CK!ZRHUHD2!_XE1GRE^Q?SuN|#6M-PcqQn1bM0 zeDGCLDp@ih#7r>2qR=9BG&TgVnG}dg<1)Ds0G$TWs1Th><3vI<9*e`HLBR9_646Zh zbe>!!o{mMF_+TcE8+lZ!#bTjY7!=HuL4~+nE|o^7(&>=|BGQ~^z_r#$gL&1Af(SP2 zOo$OjFazLL)TUuMI3FZ3eN_T#oRu}0r`tp{jB3>ysSt(cE@=iRll?ywMQ71wTn@j^ z_dkWr$~+@XmBVH%$D|_$m%hp!%E%L%U@eZBlo*yh)5YXW49Cowm=O>vSQH3IMGSh( zVxGdwWIUSili7*&HS$hM;&TN)#6rFQ#*75QEKvgsd5^ z2-D@DumPXp>R)p?b8_8QK#fFX5o|(oVZGRdp}brrPcfy|-+wT@aMB}9w;QbsN=yz#ir1j0 z&lZNFBJ`%{dEccfwJvL!*`c`Gd}nm0^R{_J7gRQIxMygWNCdXI#>Zp53NLs!sfT^U ze7no#8WVrg+&8kgNiA!w`DI&^`01`?G>`BRJZiaOXlN+0@B*;qU}{nO#sw=T1e*Gu zddK*>lz_iGIy#gQLC?r7CkIW`#po}Ql0 zB)guzx$oAkTTezuor>pgoZDfws$O&@Z!hpITJg~7L=faLK9N`OL$LbLNL$UNd4czu zo12y3p-1`qhOe$<1Rt*nFToJRXZ1;VUxHQd~T zdzJMVtGm6ty%~ojMStb*N=Vy6F7FU(G@8Q=4Gl-)Y7cJJXm*gd9x2(ox0}Xfigw#x zHZT|4vt8)g0Qtz1C-`#q?$HxB5VcBm@Pxds=Xy+ZY)D85|3HLC%CnO7U6%qqLa>dK zG3dJqj~_W4dlJ8_@EhVHZ`C;F-?<#pao6uBkMpD(K>E?6{fknIi=+<5Y2Vuq&VNQ; ZKq}R>DKu9c8ux!)8lNQkF7Evg{{cM7bkzU= literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/i_cart_retina.png b/skin/frontend/default/iphone/images/i_cart_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..02b9475a900a1f4d2b84f56d671f42585d9b90fc GIT binary patch literal 1686 zcmeAS@N?(olHy`uVBq!ia0vp^dO)nh!3HFy3cGB8lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$yA^sW~I!Kh>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGgL4$(K9qL zur#sMQ7|$vG|)FR(l;>IH8ij?HMcS_RDc2{plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&px_*As%NMWo|%`D zUtSDW@9S&jnO9trn3tUD>0+w{G(j&jGsViy($vt&($(19#L&&q(AChw$-vOrz|s)N zb#gW`aD?e~$xklLP0cHT=}kfCHNmMDloWCcfHu3N7G;*DrnnX5=PH1`Y?X=IErvMF zgX&Ge?G_`Pdi8;h(Fa8=QbfaqfT;(>geO}d2cGa#^MI+n2$-zp&G%aYa|@TJi(^Q| ztt&JAJA?vdj^AI?dFod`Um`d6!nwDcqvLjQl%4k0Es3y-ymYlVMci7VVq-9~ce~l% zmi9?Zx)YWhP!)<&oTd;aa;itg*t9gLq<;OfRN?#Yq{~b0)jWL8lRxjX-TV9R|K5}4 z`+HUBMx}wQ)Oy_w&pQlXR?O=!-F^4lgat8r-`SowN2_f2)meXi_ZE2*vATC3E6y3R z^3|8|Yl?Iqt+;mJVuHa6d6qa0k!^~*XNrDM{?Y!}!aQbP!(4^bEw|tDO+Q`A{OOv+ zjOm4a0k1_jD*0$lKDp+c;5^j?r!axTN{x%-)_)I}`ao@Rrtj1T3xXD3Jh4(xX6D(n zI3TZ7;`RP39DOW~70bK|7GIPIQ?<~zpS9I)6AN$gdvjikOBp8LBbmyr=BoA?UD(+4 zH=*UX)DiF3#ZzX!zMA#bQ2WB}MBSxpd8S^yy4UojhU zsjuoW=X#vH^9lE%LUnu3I-iwPbe-&yR;G7$qULs|h0%{s9TF9+p3Nsye@E$ONMYb4QJJdGx-0io*wi&vDGPSGhgTe~DWM4f DX8nu( literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/i_dropdown.png b/skin/frontend/default/iphone/images/i_dropdown.png index 7298fc9a696b43819a3411220564fe49601188e4..27ba94c73e40f3ccb4105caaa902057cc8e505db 100644 GIT binary patch delta 467 zcmdnVag{@{Gr-TCmrII^fq{Y7)59eQNXr2+KL;C-{Jg7v&PGL5rWi9P12bb&M<;Vj zCv!tXS3^rP6JtkXXH!QL16LOlM@J=virfNUUn`gV@3r6L64^lAI%i@bvs8|3EXFT^fxmzGvxC|Z2^C#M|&OK^s1?| z9NFAh!6vYsaifxH^DOZWd!~&x0{JYD*c8&(l7c7jH(Ic+ddDlUIq>qMtqyOPj-)RT zyT<%6QQ=-1=aDLhKhhnm8!QAm@`J1k8+A&VA6W+MQx)KLdVE#5<96c@{7P zBXdJTR|6*l7iT9YLrV)YBPRnR6H6t9irfNUUn`gV~nrG+@^wC;R7srr_TS;$TzwYks zOg)^RX2@!NI|^jZ(cLA|zUNXI<4=aN_>{`i;B0XU>%D z-~I3J@8t^@dNF>va(cRcqsjzc5k>nqjk8QmP3PO!^CdES#=LUBeEq|T+sX@LWOMy{ mwmog@+3j{#iIagvf?`KM4%?)5;IGkCiCxvX3YS>` diff --git a/skin/frontend/default/iphone/images/i_dropdown_retina.png b/skin/frontend/default/iphone/images/i_dropdown_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0188c2ad4947805dd93a696d8a09b46c319acc GIT binary patch literal 1204 zcmeAS@N?(olHy`uVBq!ia0vp^Hb5-L!3HD?X4LuvDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_)*%u1Od5hW46K32*3xq68pHF_1f1wh?E1MMpc5|gu2OB9k) z(=+pImEP~(ucVNfVyhHx>TBRz;GCL~=}}db8eHWUl3bOYY?-2DZ>L~WVFffGH?<^D zp&~aYuh^=>Rtapb6_5=Q)>l#hD=EpgRf0Gw!Z$#{Ilm}X!Bo#cH`&0^~=l4 z^~#O)@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc06!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf^)E`o}of`W?o8u zc`;bMudkJ7UU5lcUUI6Zi>(sS1ij466e}}RV>4qHb3=1WCv!tXS3^r9XJa=v69X4F zLnCt|Hz$~0m;B_?+|;}hnBEkGUL%}(K}jLE0BEyIYEfocYKmJ?ey#%8%T}2<-D2j3 z(>$o&6x?nxz^PXs=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6nmfC3HvFZQ+$%DKF%r_m}6Pl}3)0?JdiLO6d z;H#&S+yCYCfB7wS4WDi1uX^#b&*SKRjXiA^hnpVjCkj_g z5s2nW_;`A*m{xUWsi;8YtYuqW^ExJYuCC_Wxm;0u&FV`lzMh+B5tp^0d^^wOODo>3 zN!D>-x7L05 z>e%6g!XoZ!=64%*2y<7n=0)1DT{v|7q2mWtIk0EIUfP{y&dA14Z`rutnmhb2s2uTh L^>bP0l+XkKM(UWX literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/i_gallery.png b/skin/frontend/default/iphone/images/i_gallery.png deleted file mode 100644 index e1d0deacf1e75e08b19a66bb82d41980d1ecbd44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1129 zcmaJ>TWHi+7>-n{TkN8uipe|Q+t4N_Ca0Zg zkySeEF16rO)jo*@sTHk?`r-wB&?*ZeR7IrVgD;BLU5cptw4T&X^}*RdaxQ$|_g~I; z(i?BsSX{KUh+&xG*d`@G$5Q{DQ%Jv~$3X!dmXO*MX~fMWt+|Ma7`O?6n5DI#1k#MI zeSe`!hACjpWQwHJdP&C?r}-EzV>y(~FqPFAN7LI70ZpjIv}N}1Yd2Y78Zx^rtO}|V zMXlzhZWlFnHzf7$HeEE>>MBr~k*I)$hz2rNyX{FCnVr;?=-l7tSuhD9Z8G~MsgxQA zQS2fR=7fMQltWM+;$TP+L*iNx6rjMvATLw|pdf`SBmsh{ho#Y6qghHQbyKnEN@iOL zaU`Bkr_)?|9f#c(9*UyK3qd{@3{XVC>#~WK3D{mqPC-GQ?wSrUu?>7htqFG!nWdS2 zDZz54Wo>V&O|)TrMss+`34TdApsM~q)Uu}09!a3D`F>Z}OLjSkPaqF>xH>(!<`O@Y zBSl@L5$q;0ZqIcw-iitKTCoG7jbRRgZKiGDv^R-YRVikBM6-1iQ)HGZaHeTUP^?p6 zMYudt9u7fROB)V@5f}+ZLp5S;9fUcqg7ppy*(Ap`zH%$_a(ydU4vnlJ*X%?_or^6n zS+Zp2&n1*sZ;ET=&n29f%hP0d|6sp4=-d`{k3XHZEnQ3-AKBFHF17U!r`L4SEAcd@ zM3R~DHv{UASupSSJ3UKOelb_^0+K&fIR{Naxt9$0sLBM$I7pxL|fwb79Yh zIfJ)`ZbZv^*x~W3qg4#E$2_;M?Qo}j`|!*cJCCf(!ot(>vHFqMhtBWEW%tGY`n@B? z)!Ff~Gk1^oT{+OZtZ(or`uCqZ1J5QV-VT0Pv8ccQ;_%%ev*^^|^RBA*S2p+J-8cF_ z{daF+Wa}1m=i}<^^}>nud*&|c+ww(J%L2j9I)Tzv36 p9{6o#yk>?xYyQH>u9JT<1x)GLv6b5&-S>YXOsuv+Iajl{=QH2KdyN19 diff --git a/skin/frontend/default/iphone/images/i_menu.png b/skin/frontend/default/iphone/images/i_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..9263c5fffe53e90f4975e48271cc128d81a9798c GIT binary patch literal 1053 zcmaJ=O=}ZT6df%{trlyceuLvwiiKuA(xfqC(l*IV+Ng;o2{!7clbP3KY-iqd=EY0{ zB32R1MyhUH=*lh%D&npvh*S|b!Gb9E4|JtPx=?q%Nt4utap2AS;GA>Mz3;x;V~LUW zwnJ?MLA1w4g(RN$;nC5$1OGd}-RZ&8K_q5S3QnS;WC9|jz$_qRnv?@cAStsmA3%U0 zS|~N0L7DhjUWOViIT+g349q5oz>sZ7@)SU17UWbtNUgtoO_8b+q{h8*Hf}^fUL7r& zAXQ4F<+{d04;4-$%Mxj%7GE!}?qt%X@u1%aOH@!qH4+l1~cJS}eQ^Qh9_7o?(i` zB3 zrXifJS8*&45w!BqAR{R+&5`4(uE3&I#mD1(Ot+Av%OEBMDXc)Ns={+(Sd4I@$LHZ9 z94B&Nk2@5OMo;>DA{S*NY@I7Wxu5|Z)w#+R*V~lqw1Q^f$O16cD?o{wP$R1;^J;T1 z?xuP*uF~8~e^V}l%`ncz{&msyBiudCveCA9(`bC4<8C)`Tj%rn3VssvF(H(;S3lid z*?D8QLnzYGmJplySeVJYy?SBf^6A5i;b7P5T1Xeql;N!x9q35!i>q=_+MyE~-|?9Q?~(89&y z!KjJRBL@#0Jb3cr!GlpT=>a_%j%qyc4;Z2cO`70rX^RKzCbRP+@4fGR-+c2RJu}(g zJJ?H6RDWtp&XD;e8Qncy7*a3Y6iQ301!2U1ZTH^F_RbOBE0LLlH zM;qB3&MDK9hD=8FFihFB37ewEC(5>}EkO+OaKW%5^!L~AXkh3OdM>1JiXDeVV`{^J zvl}y6ZDUCjb$a4D7%xjiz=T)@WpmkbrE-L>>q=zp9kVp3L-10BJ~EY4(jbl;2to`O z(6|vEj071z$caJm8W1?1V|jt)!U3L>LSc#HLF1!IG)FH;89CXAMRpOoh_NlPY^hXY zO2Z6t7Fb>sMV1p-K?o2;z+JbnS`Jw5P*XvMuI3mvHjo88MKzCBafBvLk5Vx0maOGA z%0vprmQ|bO8O}?o2~?E-Lrt@Vc5wzC`~9b|n_agdn}IG`bu@Bug&{ALEyW$EV&r5I zT5eV`T|^kUMP!5cY>45(oMGvxg~O7ZMiHl!+IC{*F`svNcVWlR@;(ItMQ>ly4@jd{rG3?3waWilpM{LKj&+Q zhj-5Sd~x8P>^vCgn%+58eYyEd^ra7KhkkqT{^iZBjuSsR4%VL6tS8iYKYOqDX>@PL zR~_5lAKTozSm?a!XXU;5zUr;*+J*F^zTKNb=Sp|>{f$clzvmave)_swd8VG;UDU

    DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}mUbW};_k zVqj@vsiRh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*q`*i_F@Av`lL zCBM8Ftlrnx$}_LHBrz{J)zigR321^|W@d_&qouQxld-v(rIC}Pp`ojRg{z67rJ;*~ zv9Y7Mld+2*(J3ovn(~mttdZN0qkX~Ox$iU z!D${;ZwhX=nBvr{4|I$^C}NQ!8YToxJs>7L*#bH6grAxROzlO$WZmpvHVK#|zI(bj zhE&{2`t$$4J+o>9XUB8qkLDWtSdVOSIKy=$hsD6!Lza8O4~8S}8)ry%gf>=~3)Hts z`JMPQnMXmN!O&iSoB89)|4SN`4WjLsK1M6VIVB1FaVdZ1rtr_JiSf+~HXD{lwki@E zIKj&a!#zkN#hn5y5+8f5QwxPdSn3_Qnds8SO_|`vRo>k|!QM za3f{`{5?R5`WSVAvJ5u#>fx+QhW-% z-!J@SG1|b}!OygjiLZV$)5ju(dmKmRyqM(UP$MSQanFKh0`nvL0MkbdjBE^+UM304 So~8$YiUm(sKbLh*2~7aI?R=a7 diff --git a/skin/frontend/default/iphone/images/i_menu_retina.png b/skin/frontend/default/iphone/images/i_menu_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..fe77744ba35b0f117012aaff08917da1e561cc84 GIT binary patch literal 1030 zcmaJ=O=#0l9FL5ZIabeZyTt4u=$fy#D-ErqOR}wEYV9g33}IRF+J-H8F?n0lUfc(Q zI@nQ$+fl*O*bbsF#wMPG34$Q%#G8kKB3`}dOV@TDtbv#J{*T}9_y2tNvzf7AcV9O_ z5W)1gl*9XFyvVKq{;xh->cCqsk_%`87EwiY0Flz+3?S2{S^_zs>ebt?L4qJUC?j7$ z1?8HcL6cT}4DFdVW)nnW*t1n_79es4lng6L{n*{7NJCFjlTn3LY!Q@=@tOlBYMH!N zo7LhvHGG9kcmftM0a8iNoU>fPOHy@R0iXSAh9c__G@GPOf+{FkQiKj5qcj`R*ddM_ ziqKqyjYr~xB+qgz!|@Co3vsLvjR`DAHa-e_bM&H+lSUi9u$83B2-yO|R4Ns^5~iV3 zVz_ub&agbg^C64~xm63PUdVC>nhFwdHOH`#0WH#3RA=BkN>Vt|lN3z5C2P5jGU0+T zo@z53&H5=dfr|2fsA;y)F3N$^c>gKv=BqYfa=?Z2j)ogo9PnM)g6IGhK_?I4T(gSV zGDOfVLz@&QqBKWN8kP<#ZXK^ELfUeXYH1)XB`K^x8-_0M;dq4QMLrhcM2?fWR2W+$ z@=#2c!!a?%HMtVh=1pLsCRab@hTC%eQ7~=nSptr+0Q6A@nq)m?!Dt@~+g7i^)!WCy zwdFE67{+hxUyW{F;py>@t+B;MYw&@Er`^G0y-<4k6+ekuT1w@;Pv73}1Q*#J=|=xf zV3qBf^12>QpL>paMv7-I^gn)(`E~Khox9&RH$E1rpZ8wq+t1|A-SzCj^37LUzvcDX z+UMSmZE@h;7kcH*;f8gvywrKLe>8U7ci8zhc(7Jk5d%|KtH*)C^M&ob{>@7tt}mV; W_VnJwE#>8V|7E7-jI=c}z5E9`hD(kB literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/i_menu_search.png b/skin/frontend/default/iphone/images/i_menu_search.png deleted file mode 100644 index 64ffaa430213e755d12dadfce5a1bce8e614927b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1602 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 literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/i_star.png b/skin/frontend/default/iphone/images/i_star.png index 6998d82b8089f5eaf47199592ffebeec91f96196..1b6389315045410160ba5e6d3c42a5e0200bf084 100644 GIT binary patch delta 1068 zcmbQLu##7?Gr-TCmrII^fq{Y7)59eQNQ(fm5Cn;%{NcqaqP&$wDi2Xec$(f-)H{jQiOb=TZ?>XH`C(Tkws^d z1m?tEJ67jk&ug1L#k8&S(zK|El475iCuh&E^DjF$!SVWym)hP&X3SUGeq3Dm=`4I3;7yarAvyReEDJFze6VuR$1h&UE8D?5gnDAnN@b< zEys*Tqo_Qs_kLY*`X^6DO;2D>wT#g0C}d}l`E@nO&gXyXj)V1=7}styVEP*c7^JK<(fTEz}^i+9&7Uc7nDskX>vv&B`rw*U7| z&srn$!*ou$&(~v0lP11<$=7$iTPbA0V<*E1-f!QrQViud^>le;Ahd^6WnRs!RkNqSD$0kF+|z?z9_(2M<7Z9Te1G-|PX;Hx z6MBl1gB9+)eWrH$QCh5Zy+NOz`PYoBH@lB|Tt0qO?Q2=5y_@t#rRBODH{;!k)CApk zq}4hduya~A^{b)Dxdkt@J2ziTKl5u<)QPM0rpt3|C%129cD{R1^V&oKrvFl*#gEdL zoO_V^^HE<5hoIIAo~K$fpVvH_X|smiW$(Nr*_U6hb^GqJ%YP)bvLi+nA^N{(GHD|b~@`;b8Bo~y<@{Et69zt&%~8W^EAWES1YD( zoirnF_ar9!i6+x+cXB7)y&w@cP4dbI-4oAk??1~uG^v&A-8PB6Yg_iL=h)k+yXmLy a0fwhBYrVKW%k=^a00vK2KbLh*2~7YKUDCDy delta 3499 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 eM)%pZ4k}OSQ1j4tX~ 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 P|5--*m-Q-iuSER^p5<0S diff --git a/skin/frontend/default/iphone/images/i_star_blank.png b/skin/frontend/default/iphone/images/i_star_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..44ada0fad1b6ae7d902cf957f870a3b6c249f9a9 GIT binary patch literal 1905 zcmeAS@N?(olHy`uVBq!ia0vp^B0wy}!3HFwFZ>e#Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?_nZLn2Bde0{8v^K*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-xUqS~&|m@vn0`fKfxe-h0mw@*g}%P{mFDKcRTq~8r6Sym)!^cg z%7Rq=pw#00(xPNw#HA^NtSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&JJ*LU?9g zN`84USiP^Wm1kaYNn&1ds;7&s63_&_%*+%kXBTs0Lvs@oa|;&(Lqk_XCqqXAH)A6U z3lj@7O9M9xm|mCsATTyNI^3>DC zF{I*FPDpe{OsGig^TPK&X-2}vbN9^Z%=MT(Lo8YK;*})BEcvM42lyS=Ha&8$>k6@V z`QpFoLA$~?=ZzX%PT8yNe=Xz)%01e#R-#9O@%wz^)Mm*!<$7H{_b zUh%iM^taa&&-bipO5oYY-@?nLDB*BF>Wg=gO#;U~_NVfU(Q)ZtG;W=pzW0FJ>Vu8n z>vpkqvSsE@N-%Y3_lulvFh5Ro;%&9(TJjenz49}eUM>>;W3cVg{Ok5#+^&Ay81nVO zPp)-A0jK!CZ=Lo1yZT|xq^kBb4GZU!-!^!Z^(JUDyj~y`pvl!$mlSmO@>TO4%W^Y# zIA6Xii;<67KlM(+|FlEW;w2J0yS)3jI1k^ReP@g8#fP;ox}>W+WKM_MSj_96eOPb- z+m67}KCM2dn;$o9v)!kC$C{_?wL#F`*x9G1-JYzw+c8q=?<=LnYW3$H=sf(r@9}Oi z#h`Z#>!2u98$&> zKJCiK`RS+Cnc5~j{Mw;e*K_LC?oJ75j`ubk_a?P$lC4_A%jL=8`g7~;zMpJ#O8vyG!F63( zU~L!Yjm^O)>P+&M)?5GGrmAGEQ6Ic%p}&b3*Olt}=earo-!CV&Z!fVt|84iTxsF#Y zefb^-%;Wkr`|Q)Tn=`*gO%Bv7JHm6sNv18~`fZQ6Q#XH<_8n5p=T%tPCh%HPXz%Qm zw|L&Yc^|N}K9Q%VQT^J1nA&I?I9|>}7Ai3oER6L#kAK z^8J55SP`(1FXUWJ+nn+VJQAC3 z`3CQfyYcGU3FU`Z+(h=*akq9RPZ!s%zcb;H*ViZQ@2y{cj-HiQ&vAF|+uQ%nq)$qj zx03z!HG?IQtGD~>J0~vC7Q7u}TP$;P=jnK>Gd2$l&a_y#pEE1h@vSRgk^Jz`!EGxF zy}cuH^ds&CUNpFTXUUJPuYT*?)RFJyI%@PeJpOD%k$iehTdaD2&`JKi6XwmYkEsgV zw)SR4m$0>LRxERytGDj`+9~@}uFTN8nYEnhf1Bag{|D9Oy+8VQZ?h5?%F&UW+SBky cI`^M&0)zgC-I;A!vfx_K)78&qol`;+0LTLX82|tP literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/i_star_blank_retina.png b/skin/frontend/default/iphone/images/i_star_blank_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..00168b0609a7370d34090481d25fc1d160f7f58b GIT binary patch literal 2427 zcmaJ@dpwi-AAe?UDd8ldi=9bH*~Q#8Et`#u=DMPs)NIc*>^?SIgt>;(jc{BNN=_l9 z3td!4A>~J*qe!QVoXq9uCzbe3C!OCPzkbi_^*rCp>-~OzZtp*yG#{_6x;myh008Jx z+{u2b)l&7EYip{$ud(h`s>MX?8YuSXvBVO(5Cn)!UI+-IaOk0+A4q3L3tGX=004!v zX@TNE>NXsM$3f8NF$gJ#uVMqhW@jm%&Ikv^un;hm&BepV8gIa1Y$hHaU`It!`6O^3 z+g&CE{bgP>hAf^?@q{4E4uP^}pzP5wds_tB7KOFNZi3mM&?qF@28nX8Mx$_c4mcDV_Vt0Qq6wKS zoFCckYb@0X58o#i^KnR|L?S^*FbJM76p6-Su}G8+(#FPGg|HSybH#M2HCJT5pg;yi z3?Z8@X7jkPc}02%FH($$t1|t&1P=e3ELZfkO{#_=rF1?LjX=$pv;d@1|38$&`GyvW z{lI_n{hz`jS~MR-`hg-|q>!N+9Lsz@6dy+tf^;!YNaOJ$7P{!Ok0<7d_VM^IlD{1S z4GUm%nLLT;3!X~FQMe*8oy!0zWISA@fMBzkIFh}M1IZRma&RQ0&}dh*Bhkji1&bj% zV(n25B$DF-m&{{CazL(lfy?}dOa3l*-U=MPDl!=qvZFwzn~=wWeJL5o{(dgR@9KT! zGQXdT%Xhg*RWiu=!T#5v7p_$9ncsf1t?Ka2_#jv1cA?7F1JkrD0MHntkcl*DUwZ&M zg0|go3-5$O&>p9t#cKY^h_yPHMZO-MP7&)28D{W_l%qDu`VfVMrmwlD;>U?YGidwe zE*m{*?v`Pxi#mO>oAlJrq7%7dHKQ7sS9#&*`zt$Q%5#Q~kMh(_hbtl5x7Rlx-=X-q6jf(3^vQE^;oQn5rJZ~An!23QcsZ+kUr;$|qHolwUAD7-1231tk3XoE3O(St)@TYwG+RY{>6 z(j5KIy^F7E%kk&8#;?&X94PEI&FFfJO6=PLypn0LtO$-LFFsqcZhw7B!)J!_zV_kAdAg^#DMvU4fxA3m z{Ruh5OJ{9mMIzL#WYYB2gUgURzUJA?iqddBTtovOZWu!K{tFv9q}Mn0m+v z0@WgqzZ0?gSl48VAg0RK)I3e!Z-?`N^NlZN^O#*n4=6i>f4F-6ghRHL58i<=Xyg-^ zP>Wq9Rk*P&t3K8wN`rA-D|2gi^g6GQxGf*KB(kb2`WP6Hbi88D&2Xsui7&fNHqm31 zlC|v=v&oUk3dlI9s4*%oH_7)5r%#kwd7BWHdEX-g<0Zb6ZHgj~r_;K(Lh}jDYBPt8 zL))SFt+wzWXAqbe$C)1j%!o*c{k!g{)Zj41;DoYxrvKO!-a&HZ^o2@U&$arl(ROT; zgYoYck78?66$TjjbITa@mcb+U^{+im-YFYfkNwx;o2B_b3Ws055oOh{xV+!#<#R%I zdFiVH=x;=KH@$>n2S_@Q7EqGoO&tGisXMILGAi-FEsEJxS4c#VGIy&!mzPYR32yG& zS~RpfeciUnTtJX<4pSmDLQSx2vOJSHP-~sQ|l3#Fdr4 zrfD{5b03_Rtl6bEQ8d}qv0D>9D99NEsNZ6 zCyu1=`U8N}am)6PkuZvkgXDd8ank;r7)aTG#3^gM+0c#IG3%w6k$h3>)j3{|s7|I)W0u}m|XKm0y=sy6Ino_#2G(Ev}Yw_P}Em!&eDyknPz+?@X%qPTjIt6cUb{0HW$^H=}? literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/i_star_retina.png b/skin/frontend/default/iphone/images/i_star_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..38991f643996ff9d3fc9ddca3cda599b8908c81c GIT binary patch literal 2054 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 TzSkF6e{P{c^F=2EmTmY4C86`f diff --git a/skin/frontend/default/iphone/images/i_view_details.png b/skin/frontend/default/iphone/images/i_view_details.png deleted file mode 100644 index ab4f3745209ff81e404c4fea30cefec634a69d1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1694 zcmeAS@N?(olHy`uVBq!ia0vp^svyk41|*NpQ(y*Ck|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh*)icxGNo zet9uiy|1s8XI^nhVqS8pr;Du;&;-5A%oHm(Ll+}w7Xu?lGgA{oLstU}BUf_^7c&bp zCu0{gCo^N1UYGpj(%jU%5}4i;gkEEudO=Acw*Y9fOKMSOS!#+~QGTuh*vnR#xZPra z(>$o&6x?nx#Hm*w=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6x^`3kLSSwY@^on_KZVoe-FTI@64b}Cr(aQpRXISA>sD-_xDdbHhSv1b9QufojZH>Z0W>F zlO8z-mkD(IZup@yC7dddp2Wet&*{}h%axk&TXg!}mM)euJG*_J z4&8q%D=IAN|NlG7aCp9bz1`>M=jUgwu&T|NHIpyZxZz1d);ZC^qvoygJWx)<;p>x3MTb zGjpZDg$aipoVQ%KbhLe`_w+CZSv%p`acODKzRZ|0!!M!Z!(z)9QWtb?zkBztTx4qS z&!0bq97>Nj)VQWpChV%(QvUwlSBGa>ORD%n zkcw|ig=(E^1p|JD+Ejmg^WG#|RYgth7Q@Pu4ml1748HgwkN#oSyX%1Rq z9geA!xk7&M3Cw4Dbo7AOp~6+$m%GhA3{L7R7Q4xsw#cvwBrwExt^IDdDNhDeV|cpy KxvXl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0jxuc7dn~|xp zfwP;VshK5AuSMv>2~2MaLa!T6y`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-`Bk zX&zK>3U0T!;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3z46pVCk6&a2TvEr zkcwM9muxj$6J?Hnd~DHe9m#Vlx?CxUO+Qt^=uVJ}7>}Ep{&pU!Iq(1HKlA?=f2z4(F7j5wl|AOkV}b4) z#Yzuf%{(F)HSrjWSU`KM&)?}8)@L3{T=iHeuzJP8ZTm`Hh1Dmz+RI(+ko2uNsxZ%R z?Wg}jw>Pvg=_E%a&)vXwWMfm*6!y+}limk5O$;#oTGSSOR{PSO`_uhR9?MLX2!ABB zYD1q`&11!wRlFsOIn8$*VP99!YxE_NUH{>c$UVvN+%Xx;c~wf<4P}>F)VQtQ@6LPU zieLGP0OzI+T}CgC27h3llclgyTl1*&F@qNUv)Kn4?`{{5y7+4T^o*3!R72V1)1^h+ s+Jz2tw_1Fhb4PjcyIcQf{}N1K@IT{P8L}p07N~sjboFyt=akR{0FjER(*OVf literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/i_zoom_retina.png b/skin/frontend/default/iphone/images/i_zoom_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8572dd95ce82d680b3fa4cd9f107d7523b0248 GIT binary patch literal 1399 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 diff --git a/skin/frontend/default/iphone/images/media/cell_phone_landing_banner1.jpg b/skin/frontend/default/iphone/images/media/cell_phone_landing_banner1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c123db9fc9ae06d52e470fa80d6b75be3b994bb GIT binary patch literal 21259 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≶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 literal 0 HcmV?d00001 diff --git a/skin/frontend/default/iphone/images/nav_bg.png b/skin/frontend/default/iphone/images/nav_bg.png deleted file mode 100644 index aee684388218459956669f04a8c45e04fd67e8ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 958 zcmaJ=J#5oJ7&Wj|6)D{)2*k-9Scvb=jhontTcvSABh^)uMrzpV*w@5L>@)U-IFS%i zHwN}jY%n1f#Kh16gvx|iS&?95Vx^qZIAtJMI^U1pd*A!M`|fFd_kL#a=As}7ncB9| z;PWLu?k-&B|I*RhUwpd3DlN80582QPiBNKAn}C{Ubx4C)&gkJMQWS(MqT6h-mbs(Z z)RU|PBgJ08*@95qj04N=5eC|%3IrXFq8G8X_C+xSE6tv~ox+M#Cnh{j`epE@d?8(g2kA6bXZU z*LUbJn&3@StN9VLe4Eq^UE~Uq>pGgO7IF$M$wuDT!nlG8<*j_BTq($ve05zhN-5W% z_P`@POS#SkcWo{=X$3Ffkqr{MkBCzZsRt%0Ywmn6Xs+Ir>&*9p=W-!81CxvW>!Q;m z-aW~3*0y{zYkcDKZV!1|zj?8g;ZH)Y8Kq|YwOxq5Uwwb_6@q st^V7eB0Zd+0t+H#p-a0t?189*e&;S4c diff --git a/skin/frontend/default/iphone/images/nextlabel.png b/skin/frontend/default/iphone/images/nextlabel.png deleted file mode 100644 index 6d6a47bb7e841089352cd8a6bba30d7d2f443451..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1374 zcmV-k1)=(hP);5N1jwA6oS27)hom@+7VkR;2M4KcC}J zytugd3J3lYdwn1xCbJ5NP`=K}%GyduNZ`4-xf~wy=SX#RHAf^k_PC3WkN?69*y0`H zT2uiz>3ae!Dk|a#AAgC|*VprihzOpXoP2?6%EaC-W*L7kR0{6?{{GFev9V;#x3{+~ zZrIh;#ogWA`RwehRp6?sDjppj%|k*$e#PE?A{Ig0ie4u;_dD2PXd}U(iSkX zoFg{~l)JgPeJ;W*H{GKI>fqq;$=%(Z9}HPTLxar%M`E$;>})A}Es3Y6Co3r_k)CgF zZ$HByXAx0Jl+XZx{)lwvt*xzA!)ETSEsqx$7rB?07e_sx%Ve@>0W5`B4Sl6hC{_># zn|JkGU}P|t%jKk>Qr?(AHPF{CE-sg9wVI!toYGnwsneB7RAaT0^iS`Bt2Bi1k*`Kg9$o7lmi8&H zgp>cYL1+lNQa)PO@0ppI63Za-Ud%E?9F>)o*XX^(s~`Ql_i_y|fsjaPLV`F0s1Ar0Vwqbty4a+BDir~z=0gEg)V*b(NKGt$_a^9e3HEnHe zY;SLmHX*`&60EPUk2Nxx3~9)o12>re7g%h z5`YhevnQuPD76tUs4vvp*VorSFE8&6h&~7%MoL>mL4R;?us1a|HMg*^u!^N)=z##! zJv9y5oO=ZexeC>YNGOGk)L29fUI?Ibs{7~8y%r~Yao>&tP+^vQ1_7-9uM@tt-!cwn g-@WL!%-;eG04298Loyd$8s@28fQ7Ah+%qrAL4DkvzRs;Vk#Z*Ql;!NF5J z=1F5?<2U?3X}!W1LVtdBetv$L$z*y_TU$%<@$rxfUM860yj%Ipn=vsl&y7YSA$dGrytTDOTCJAW z*VkSCzPGnWcs!+~q>xUho50;#SqW#X3`R1vgOm^pIygAEkPv4C+!3#?t`gq|(pRwd zmP{;%wVd8J0|Ntp<4xn^<6aYbBIU&;6&V>x0RaKuOKX*O*J>0Bg;A|mpM-^l(f0QC zl@Rjc@(K?RCqF;G-?3jW4HTqWrBZnxAY|^95!%mj4g351zrdMWGLwb55wLOuKTvgb z^_3CwIy^jN*Ahba2Ip=|sT8%T3knLF)o3(A=FYFCrlvE5s6U@dh|jQ#@tF>U*po;f z8X7vmKe)1#U&|8bOx)AcF~bhcE) z6iJi^LK~;|&d$!25ic(r2J>eLnS$jFG>{Twdd4=?`c zoV}t>fq1-V0_}|TQgjV(i9IP&LP7!+7Z)Eukt$@Js+<)`2NaZ+mRfUiaxT$ z{r!E)%E}UL5yJm7d(v5v9NG&cLk2BvZEf$^&6n*mHk(a!8CXaS4GlX`qe|Qzb6$HL zT?V*^CcKDQ=#+&YpFa1~ii!#x;`J2^R- zy1TnY8Q5o}+1Xh!Be6`fb)5Or)6-VytqFJJ0AE}*vM8L0Xk}&Pzon%m z8Xg{|=H_Nm3UzgLVo;l!nj-xE|Kj4}-$PRuYAM>V)she;Ku}|7AV^DAs+drexFu00000NkvXXu0mjf D95ptv diff --git a/skin/frontend/default/iphone/images/search_icon.png b/skin/frontend/default/iphone/images/search_icon.png deleted file mode 100644 index 2bc66c97af59e1adfc172af467bbe5a7c3bf347c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1663 zcmaJ?drT8|94~Z&R(WK&@le?1hz=RFy+VN=6eukP#3Djnv4Zw!589R9oxNi%IL074 zAYz7sIHy)rP*Egq+9(kOwv2%&bMjDesKhZQ;@mXO2OI2)!1l-3C3n9^KA+F`^+~QQ zIVsMG<;7w!7)}ZCk`#JfZhIFx&|jm|-70$Vq+-*kR6L6^Ax4xT(%_jWkYGTv(G(QX zJ8-{H*5Hy>?h=?*1h+2)A_(+EKY zU&fUYVpOY(&o`o}`AKqhzFsZRfKib^gc+s<3@C*FWIh1QV}MN&$;5LhAxLNXx CyS9YZK4~-F(U*AVsmXJ%>rez|A!h3b7+!ELI273 zKZQwo9)WUFP!i8Is_DUH`PxDeu-J$q6mFE`c+PAWleIX7lUker#HoBX1SoWv1~-w@ zc$o}Nz(@+g)M$c42+|5{olXNwp&G|QFX z>RbbgQL|jlKV0d&T$>dP1RYs|8g(C{8mSRC0MjMIy7_Yv&#O1X)y$uZWL_?ZPKIL} z?7s#*dqum)ww<#reV8*oiqUR2(zYHxEH7s;?4Kq`L~`@sx$2FjGGys@&jloWpXVv| zFfQ_T=wkXfRCa$;&g($^e0~<`EM0+_KGGwS)y-Q|;x1S4I(Jm;^MyX|;P0+Ne&V^S zdw!p~G1d3gBhJK{?Dzi~`)FdkW$Lc-;YR(Vc>g_5>;qWGik_(!_%TyOOPZN@^y2v9 zcki8dzn*D#qob%r#q_iDjZWWRBXg{52a_GKB6Upxx465_F4%c<7?hrS~RSx59z$NX`yfDpW{!;tVQ~JV0=P=ei7l`kQ)5L zl2>CF;pTZ`*pKl{+Tik|LrGQlL?kr0n6MvrP_(&Za4NNB-C|Y`V}F&)uVc_n$1h?I z6uoU2`_xi*+^V`H&`d4FpzyH;ijnncTkD#0_vx4Ic^KWkLRB^3(w1A%BdV}i$C}2& z4<0{I*yFHWdA8aozv=cyx3{XV2K3`Ks(S25u75+5GRlk(e0#Dty1jJoJKfuwR-G*F zxf9W0J?rYE*}b8V*_vMLy|R3f_k(l;D@_|Q5`HnG*wkh^eXBy@6hqjZxQ<(X+j@!j zGVx3o#j1|84$9Nsd)A*J85*rjtSETQdr`07!N>e#O24di)>keav)kL3?U>$`RT6b7 z@`7@xRXJ30C-l_NhWo^(Rp0x|yxlu{x2-HEm1jH;*{eqmAK#VQ=-G8-vL+*F8!6hE zWVK$fsF_hGSKU8Qaur5)UPgAsZ1PPXI6A>9XsLP(gKK+3N(OGaod3XB*x&uCAok!o zul)7+l_}XyzTWD!g=|Q=@`JnSlipXQ%0}0uzNtg)iTv?euSqlEn)AFxf7;otWJ14J zrHs9OY|`w!B=uu(3@Cv6H&-dJCl@TIpVu|4UU#c&B6CXcM@FN)^O@0mwO?loN9s2p zy*gf&_tNUzzd|^e1$rowE{7`PL gR7TZ}7QW%ZXl`vdciVk?mhG325St`vj8PT;4ZF*Mj{pDw diff --git a/skin/frontend/default/iphone/js/iphone.js b/skin/frontend/default/iphone/js/iphone.js index fd15c7cc48..1adeb1a0cc 100644 --- a/skin/frontend/default/iphone/js/iphone.js +++ b/skin/frontend/default/iphone/js/iphone.js @@ -26,6 +26,15 @@ // Homepage categories and subcategories slider document.observe("dom:loaded", function() { + transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd', + 'MozTransition' : 'transitionend', + 'OTransition' : 'oTransitionEnd', + 'msTransition' : 'MSTransitionEnd', + 'transition' : 'transitionend' + }, + transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; + function handler(position) { var lat = position.coords.latitude, lng = position.coords.longitude; @@ -51,17 +60,102 @@ document.observe("dom:loaded", function() { } - if ( navigator.geolocation ) { - //navigator.geolocation.getCurrentPosition(handler); + var loadMore = Class.create({ + initialize: function (list, href, pattern) { + var that = this; + + this.list = list; + this.list.insert({ after : '

    '}); + this.href = href.readAttribute('href'); + this.button = $('more_button'); + this.holder = new Element('div', { 'class': 'response-holder' }); + + this.button.observe('click', function () { + if ( !that.button.hasClassName('loading') ) { + new Ajax.Request(that.href, { + onCreate: function () { + that.button.addClassName('loading'); + }, + onComplete: function(response) { + if (200 == response.status) { + that.holder.update(response.responseText).select(pattern).each(function(elem) { + that.list.insert({ bottom : elem }); + }); + that.href = that.holder.select('.next-page')[0].readAttribute('href'); + that.button.removeClassName('loading'); + if ( !that.href ) { + that.button.up().remove(); + } + } + + } + }); + } + }); + } + }); + + if ( $$('.c-list')[0] && $$('.next-page')[0] ) { + var loadMoreCategory = new loadMore( + $$('.c-list')[0], + $$('.next-page')[0], + '.c-list > li' + ) + } + + if ( $$('.downloadable-products-history .list')[0] && $$('.next-page')[0] ) { + var loadMoreCategory = new loadMore( + $$('.downloadable-products-history .list')[0], + $$('.next-page')[0], + '.downloadable-products-history .list > li' + ) } + + if ( $$('.review-history .list')[0] && $$('.next-page')[0] ) { + var loadMoreCategory = new loadMore( + $$('.review-history .list')[0], + $$('.next-page')[0], + '.review-history .list > li' + ) + } + + if ( $$('.recent-orders .data-table')[0] && $$('.next-page')[0] ) { + var loadMoreCategory = new loadMore( + $$('.recent-orders .data-table')[0], + $$('.next-page')[0], + '.recent-orders .data-table tbody > tr' + ) + } + + //-----------------------------// - if ( $('giftregistry-table') ) { - $('giftregistry-table').wrap('div', { 'class' : 'giftregistry-table-wrap' }); + $$('label[for]').each(function(label) { + label.observe('click', function() {}); + }); + + $$('input.validate-email').each(function (input) { + input.writeAttribute('type', 'email'); + }); + + $$('.form-list img[src*="calendar.gif"]').each(function (img) { + img.up().insert({ 'top' : img }); + }); + + if ( navigator.geolocation ) { + //navigator.geolocation.getCurrentPosition(handler); } if ( $('my-reviews-table') ) { $('my-reviews-table').wrap('div', { 'class' : 'my-reviews-table-wrap' }); } + + $$('.my-account .dashboard .box-title').each(function (elem) { + elem.observe('click', function (e) { + if ( e.target.hasClassName('box-title') ) { + this.toggleClassName('collapsed').next().toggle(); + } + }).next().hide(); + }); var transformPref = Modernizr.prefixed('transform'); @@ -118,7 +212,7 @@ document.observe("dom:loaded", function() { select_options.down().insert({ bottom : new Element('li', { 'class' : 'select-option', 'data-option-value' : option.value }).update(option.text) }); }); - select_options.insert({ top : new Element('div', { 'class' : 'select-heading' }).update('Choose options...').insert({ top : new Element('span', { 'class' : 'select-close' }).update('x') }) }); + select_options.insert({ top : new Element('div', { 'class' : 'select-heading' }).update('Choose options...').insert({ top : new Element('span', { 'class' : 'select-close' }).update('×') }) }); var closeSelect = function() { select_options.setStyle({ 'visibility' : 'hidden' }); @@ -216,101 +310,6 @@ document.observe("dom:loaded", function() { }); - var groupItems = Class.create({ - initialize: function (handle, removeHandle, photos, form) { - var that = this; - this.handle = handle; - this.removeHandle = removeHandle; - this.photos = this.handle.select(photos); - if ( this.photos.size() < 2 ) { - return - } - if ( !('ongesturestart' in window) && this.photos.size() > 1 ) { - $$('.remove-all-button').each(function(btn) { - btn.setStyle({ 'display' : 'block' }).observe('click', function(e) { - e.preventDefault(); - that.removeAll(); - }); - }); - } - this.form = form; - - this.removeHandle.observe('click', this.removeAll.bind(this)); - this.handle.observe('gesturestart', this.gestureStart.bind(this)); - this.handle.observe('gestureend', this.gestureEnd.bind(this)); - }, - removeAll: function () { - this.handle.select('input[name*=qty]').each(function (input) { - input.writeAttribute('value', 0); - }); - this.form.submit(); - }, - gestureStart: function (e) { - e.preventDefault(); - }, - gestureEnd: function (e) { - if ( e.scale < 1 ) { - this.handle.addClassName('grouped-items'); - this.shuffleImages(); - } - else { - this.handle.removeClassName('grouped-items'); - this.unShuffle(); - } - }, - shuffleImages: function () { - this.photos.each(function (photo, i) { - if ( i % 2 ) { - photo.setStyle({'webkitTransform':'rotate(' + (Math.floor(Math.random()*12) + 6) + 'deg)', 'zIndex' : i }); - } else { - photo.setStyle({'webkitTransform':'rotate(-' + (Math.floor(Math.random()*12) + 6) + 'deg)', 'zIndex' : i }); - } - }, this); - }, - unShuffle: function () { - this.photos.each(function (photo, i) { - photo.setStyle({'webkitTransform':'rotate(0)', 'zIndex' : '0' }); - }); - } - }); - - if ( $$('section .cart-table-wrap')[0] ) { - var cartGroup = new groupItems($$('section .cart-table-wrap')[0], $('remove-all'), '.product-image img', $('shopping-cart-form')); - } - - if ( $$('.cart-table-wrap')[0] ) { - var cartHeaderGroup = new groupItems($$('.cart-table-wrap')[0], $('remove-all'), '.product-image img', $('shopping-cart-form')); - } - - if ( $$('.wishlist-wrap')[0] ) { - var wishlistGroup = new groupItems($$('.wishlist-wrap')[0], $('remove-all-wishlist'), '#wishlist-list li > a', $('wishlist-view-form')); - } - - if ( $$('#remember-me-box a')[0] ) { - $$('#remember-me-box a')[0].observe('click', function(e) { - $('remember-me-popup').setStyle({'top' : e.pointerY() + 'px'}); - }); - } - - // Home Link Actions - - var homeLink = $('home-link'); - - if ( homeLink ) { - if ($$('body')[0].hasClassName('cms-index-index')) { - $('home-link').addClassName('disabled'); - } - - homeLink.observe('click', function (e) { - if ( cartDrag && cartDrag.visible ) { - cartDrag.cartHide(); - } - if (homeLink.hasClassName('disabled')) { - e.preventDefault(); - } - }); - } - //alert(Modernizr.prefixed('transform')); // Home Page Slider @@ -325,14 +324,14 @@ document.observe("dom:loaded", function() { $$("#nav a").each(function(sliderLink) { if (sliderLink.next(0) !== undefined) { - sliderLink.href = "#"; sliderLink.clonedSubmenuList = sliderLink.next(0); sliderLink.observe('click', function(e) { + e.preventDefault(); var transformValue = {} - homeLink.hasClassName('disabled') ? homeLink.removeClassName('disabled') : ''; + //homeLink.hasClassName('disabled') ? homeLink.removeClassName('disabled') : ''; if (last) { diff = e.timeStamp - last @@ -350,6 +349,7 @@ document.observe("dom:loaded", function() { this.clonedSubmenuList.insert({ top: subcategoryHeader }); + subcategoryHeader.insert({ after : new Element('li').update('All Products') }); this.clonedSubmenuList.firstDescendant().firstDescendant().observe('click', function(e) { if (last) { @@ -387,7 +387,6 @@ document.observe("dom:loaded", function() { $("nav-container").setStyle(transformValue); sliderPosition = sliderPosition - document.body.offsetWidth; - e.preventDefault(); }); }; }); @@ -455,43 +454,37 @@ document.observe("dom:loaded", function() { new NoClickDelay(document.getElementById('nav')); } - var supports3d = window.WebKitCSSMatrix ? true : false; - - //alert(Modernizr.csstransforms3d); - //alert(Modernizr.csstransforms); - - //iPhone header menu - $$('dt.dropdown a').each(function (elem) { - elem.observe('click', function(e) { - var parent = elem.up(), transformValue = {}; + + $$('dt.menu a')[0].observe('click', function(e) { + var parent = this.up(), transformValue = {}; if (parent.hasClassName('active')) { parent.removeClassName('active'); - $$('#menu dd').each(function(elem) { - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate3d(0, -100%)'; - transformValue['visibility'] = 'hidden'; - } + if ( Modernizr.csstransforms3d ) { + transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; + } else if ( Modernizr.csstransforms ) { + transformValue[transformPref] = 'translate3d(0, -100%)'; + transformValue['visibility'] = 'hidden'; + } + + $$('.menu-box')[0].setStyle(transformValue); - elem.setStyle(transformValue); - }) } else { - $$('#menu dt').each(function (elem){ - elem.removeClassName('active'); - - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate3d(0, -100%)'; - transformValue['visibility'] = 'hidden'; - } - elem.next('dd').setStyle(transformValue); - }); + this.removeClassName('active'); + + if ( Modernizr.csstransforms3d ) { + transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; + } else if ( Modernizr.csstransforms ) { + transformValue[transformPref] = 'translate3d(0, -100%)'; + transformValue['visibility'] = 'hidden'; + } + + $$('.menu-box')[0].setStyle(transformValue); + parent.addClassName('active'); + if ( Modernizr.csstransforms3d ) { transformValue[transformPref] = 'translate3d(0, 0%, -1px)'; transformValue['visibility'] = 'visible'; @@ -500,48 +493,20 @@ document.observe("dom:loaded", function() { transformValue['visibility'] = 'visible'; } parent.next().setStyle(transformValue); - if ( cartDrag ) { - cartDrag.cartHide(); - } }; e.preventDefault(); }); - }) - - if ( $$('.top-link-cart')[0] ) { - $$('.top-link-cart')[0].observe('click', function (e) { - if ( cartDrag ) { - cartDrag.cartShow(); - $$('#menu dt.menu')[0].removeClassName('active'); - $$('#menu dd.menu-box')[0].setStyle({'webkitTransform' : 'translate3d(0, -100%, -1px)'}) - e.preventDefault(); - } - }); - } if ( $('menu') ) { $('menu').select('dd').each(function (elem) { elem.observe('webkitTransitionEnd', function (e) { if ( !elem.previous().hasClassName('active') ) { elem.setStyle({'visibility' : 'hidden'}); + } else { + elem.setStyle({'top' : '1px'}); } }); }); - - $$('.menu-box')[0].select('a').each(function(elem) { - elem.innerHTML = elem.innerHTML.replace(/\((\d+)\)/, '$1') - }) - - //$$('.top-link-cart')[0].up().remove(); - - var sum = 0; - $$('.menu-box .badge').each(function (badge) { - sum += parseInt(badge.readAttribute('data-value')); - }); - if (sum) { - $$('dt.menu')[0].insert({ bottom : new Element('span', { 'class' : 'badge' }).update(sum) }); - } - } //iPhone header menu switchers @@ -587,9 +552,9 @@ document.observe("dom:loaded", function() { this.itemsWrap = this.items.wrap('div', {'class' : 'carousel-items-wrap'}); this.itemsLength = this.items.childElements().size(); this.counter = this.carousel.insert(new Element('div', {'class' : 'counter'})).select('.counter')[0]; - this.controls = carousel.select('.controls')[0]; - this.prevButton = carousel.select('.prev')[0]; - this.nextButton = carousel.select('.next')[0]; + this.controls = carousel.select('.controls')[0] || this.carousel.insert({ top: new Element('div', { 'class' : 'controls'}) }).select('.controls')[0]; + this.prevButton = carousel.select('.prev')[0] || this.controls.insert({ top: new Element('span', { 'class' : 'prev'}) }).select('.prev')[0].addClassName('disabled'); + this.nextButton = carousel.select('.next')[0] || this.controls.insert({ top: new Element('span', { 'class' : 'next'}) }).select('.next')[0]; this.originalCoord = { x: 0, y: 0 }; this.finalCoord = { x: 0, y: 0 }; @@ -724,8 +689,8 @@ document.observe("dom:loaded", function() { } }); - if ( $$('.carousel')[0] ) { - var upSellCarousel = new Carousel($$('.carousel')[0], $$('.carousel-items')[0], { + if ( $$('.box-up-sell')[0] ) { + var upSellCarousel = new Carousel($$('.box-up-sell')[0], $$('.products-grid')[0], { visibleElements: 2, preventDefaultEvents: true }).init(); @@ -740,8 +705,8 @@ document.observe("dom:loaded", function() { } */ - if ( $$('.product-shop .product-image li').size() > 1 ) { - var productGallery = new Carousel($$('.product-shop .product-image')[0], $$('.product-image ul')[0], { + if ( $$('.product-view .product-image li').size() > 1 ) { + var productGallery = new Carousel($$('.product-view .product-image')[0], $$('.product-image ul')[0], { visibleElements: 1, preventDefaults: false }).init(); @@ -825,239 +790,6 @@ document.observe("dom:loaded", function() { */ - var cartDragClass = Class.create({ - initialize: function (elem, options) { - this.options = Object.extend({ - }, options || {}); - - this.cart = elem; - this.cartHolder = $$('.cart-wrap')[0].addClassName('cart-short'); - this.minHeight = this.cartHolder.getDimensions().height; - this.maxHeight = this.cartHolder.removeClassName('cart-short').getDimensions().height; - this.headerHeight = $$('body > header')[0].getDimensions().height, - this.startMin = this.headerHeight - this.minHeight; - this.startMax = this.headerHeight - this.maxHeight; - this.visible = false; - this.empty = this.cartHolder.hasClassName('cart-empty'); - - this.range = 0; - this.originalCoord = { x: 0, y: 0 }; - this.finalCoord = { x: 0, y: 0 }; - - if ( Modernizr.touch ) { - this.cart.observe('touchstart', this.touchStart.bind(this)); - this.cart.observe('touchmove', this.touchMove.bind(this)); - this.cart.observe('touchend', this.touchEnd.bind(this)); - } else { - this.cart.observe('click', this.toggleView.bind(this)); - } - - this.cartHolder.observe('webkitTransitionEnd', this.transitionEnd.bind(this)); - - if ( supports3d ) { - this.cartHolder.setStyle({'webkitTransform':'translate3d(0,' + this.startMax + 'px, 0)'}); - } else { - this.cartHolder.setStyle({'OTransform':'translate(0,' + this.startMax + 'px)'}); - } - setTimeout(function () { - this.cartHolder.setStyle({'visibility': 'visible'}); - }.bind(this), 100); - - }, - touchStart : function (e) { - e.preventDefault(); - - var transformValue = {}; - - $$('#menu dt.active').each(function(elem) { - elem.removeClassName('active'); - }); - $$('#menu dd').each(function(elem) { - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate3d(0, -100%)'; - transformValue['visibility'] = 'hidden'; - } - elem.setStyle(transformValue); - }); - - this.originalCoord.x = event.targetTouches[0].pageX; - this.originalCoord.y = event.targetTouches[0].pageY; - this.finalCoord.x = 0; - this.finalCoord.y = 0; - }, - touchMove : function (e) { - if ( this.visible ) { - return - } - - var transformValue = {}; - - if ( Math.abs(this.finalCoord.y - this.originalCoord.y) > 1 && this.finalCoord.y - this.originalCoord.y < 3 ) { - this.cartHolder.removeClassName('animate').addClassName('cart-short'); - } - - e.preventDefault(); - - this.finalCoord.x = e.targetTouches[0].pageX; - this.finalCoord.y = e.targetTouches[0].pageY; - - this.range = (this.startMin + this.finalCoord.y - this.originalCoord.y); - if ( (this.minHeight + this.headerHeight - this.range) < this.minHeight || Math.abs(this.finalCoord.y - this.originalCoord.y) > document.viewport.getHeight()/2 ) { - this.range = this.headerHeight; - this.cart.addClassName('active'); - this.cartHolder.removeClassName('cart-short').addClassName('animate'); - this.visible = true; - } - - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0,' + this.range + 'px, 0)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0,' + this.range + 'px)'; - } - - this.cartHolder.setStyle(transformValue); - }, - touchEnd : function (e) { - e.preventDefault(); - var transformValue = {}; - if ( Math.abs(this.originalCoord.y - this.finalCoord.y ? this.finalCoord.y : 0) < 10 && Math.abs(this.originalCoord.x - this.finalCoord.x ? this.finalCoord.x : 0) < 10 ) { - if ( this.visible ) { - this.cartHide(); - } else { - this.cartShow(); - } - } - if ( this.minHeight - this.headerHeight + this.range < (this.minHeight) && this.cartHolder.hasClassName('cart-short') && !this.empty ) { - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0,' + this.startMin + 'px, 0)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0,' + this.startMin + 'px)'; - } - this.cartHolder.addClassName('animate').setStyle(transformValue); - } - }, - cartHide : function () { - var transformValue = {}; - this.cart.removeClassName('active'); - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0,' + this.startMax + 'px, 0)'; - transformValue['top'] = '0px'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0,' + this.startMax + 'px)'; - transformValue['top'] = '0px'; - } - this.cartHolder.setStyle(transformValue); - this.visible = false; - }, - cartShow : function () { - var transformValue = {}; - this.visible = true; - this.cart.addClassName('active'); - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0,' + this.startMax + 'px, 0)'; - this.cartHolder.removeClassName('cart-short').setStyle(transformValue); - - transformValue[transformPref] = 'translate3d(0,' + this.headerHeight + 'px, 0)'; - this.cartHolder.addClassName('animate').setStyle(transformValue); - - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0,' + this.startMax + 'px)'; - this.cartHolder.removeClassName('cart-short').setStyle(transformValue); - - transformValue[transformPref] = 'translate(0,' + this.headerHeight + 'px)'; - this.cartHolder.addClassName('animate').setStyle(transformValue); - } - }, - transitionEnd : function (e) { - var transformValue = {}; - if ( this.visible ) { - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0, ' + (this.headerHeight-1) + 'px, 0)'; - transformValue['top'] = '1px'; - this.cartHolder.removeClassName('animate').setStyle(transformValue); - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0, ' + (this.headerHeight-1) + 'px)'; - transformValue['top'] = '1px'; - this.cartHolder.removeClassName('animate').setStyle(transformValue); - } - setTimeout(function () { - this.cartHolder.addClassName('animate') - }.bind(this), 100); - } - }, - toggleView : function (e) { - if ( this.visible ) { - this.cartHide(); - } else { - this.cartShow(); - } - } - }); - - if ( $$('.cart-wrap')[0] ) { - var cartDrag = new cartDragClass($$('dt.cart')[0]); - } - - if ( $$('.c-list')[0] ) { - $$('.c-list > li').each( function (item) { - new Swipe(item, - function() { - item.removeClassName('animated').addClassName('end-animation'); - }, - function() { - if ( !item.hasClassName('animated') ) { - $$('.c-list > li.animated').invoke('removeClassName', 'animated').invoke('addClassName', 'end-animation'); - item.addClassName('animated').removeClassName('end-animation'); - } - } - ); - }); - } - - /* - if ( $$('.product-view')[0] ) { - new Swipe($$('.product-view')[0], - function(e) { - if ( !$(e.target).up('.carousel-items') ) { - alert(1); - } - }, - function(e) { - if ( !$(e.target).up('.carousel-items') ) { - alert(2); - } - } - ); - } - */ - - /* - - $$('#product-gallery img').each(function (img) { - img.observe('gesturestart', function (e) { - e.preventDefault(); - }); - img.observe('gesturechange', function (e) { - e.preventDefault(); - img.setStyle({ - 'webkitTransition' : '0ms linear', - 'webkitTransform' : 'scale3d(' + e.scale + ', ' + e.scale + ', 1)', - }); - }); - img.observe('gestureend', function (e) { - if ( e.scale < 1 ) { - img.setStyle({ - 'webkitTransition' : '300ms linear', - 'webkitTransform' : 'scale3d(1, 1, 1)' - }); - } - }); - }); - - */ - zoomGallery = Class.create({ initialize: function (gallery, options) { this.options = Object.extend({ @@ -1069,6 +801,9 @@ document.observe("dom:loaded", function() { this.gallery = gallery; this.counter = this.gallery.insert({after : new Element('div', {'class' : 'counter'})}).next(); + this.controls = gallery.select('.controls')[0] || this.gallery.insert({ bottom: new Element('div', { 'class' : 'controls'}) }).select('.controls')[0]; + this.prevButton = gallery.select('.prev')[0] || this.controls.insert({ top: new Element('span', { 'class' : 'prev'}) }).select('.prev')[0].addClassName('disabled'); + this.nextButton = gallery.select('.next')[0] || this.controls.insert({ top: new Element('span', { 'class' : 'next'}) }).select('.next')[0]; this.wrap = this.gallery.down(); this.scale = 1.0; this.dimensions; @@ -1081,6 +816,13 @@ document.observe("dom:loaded", function() { this.finalCoord = { x: 0, y: 0 }; this.offset = { x: 0, y: 0 }; this.ret = { x: 0, y: 0 }; + + this.nextButton.observe('click', this.moveRight.bind(this)); + this.prevButton.observe('click', this.moveLeft.bind(this)); + + if (this.itemsLength < 2) { + this.controls.hide(); + } this.items.each(function (item) { item.observe('touchstart', this.touchStart.bind(this)); @@ -1111,11 +853,20 @@ document.observe("dom:loaded", function() { moveRight: function (elem) { if (this.pos !== this.lastPos - this.step) { - - elem.setStyle({ - 'webkitTransition' : '300ms linear', - 'webkitTransform' : 'scale3d(1, 1, 1)' - }); + + if(elem == event) { + this.items.each(function (elm) { + elm.setStyle({ + 'webkitTransition' : '300ms linear', + 'webkitTransform' : 'scale3d(1, 1, 1)' + }); + }); + } else { + elem.setStyle({ + 'webkitTransition' : '300ms linear', + 'webkitTransform' : 'scale3d(1, 1, 1)' + }); + } this.scale = 1.0; @@ -1131,6 +882,14 @@ document.observe("dom:loaded", function() { transformValue[transformPref] = 'translate(' + this.pos*-1 + '%, 0)'; this.wrap.setStyle(transformValue); } + + if (this.pos == this.lastPos - this.step) { + this.nextButton.addClassName('disabled'); + } + + if (this.prevButton.hasClassName('disabled')) { + this.prevButton.removeClassName('disabled'); + }; this.counter.select('.active')[0].removeClassName('active').next().addClassName('active'); @@ -1140,10 +899,19 @@ document.observe("dom:loaded", function() { if (this.pos !== 0) { - elem.setStyle({ - 'webkitTransition' : '300ms linear', - 'webkitTransform' : 'scale3d(1, 1, 1)' - }); + if(elem == event) { + this.items.each(function (elm) { + elm.setStyle({ + 'webkitTransition' : '300ms linear', + 'webkitTransform' : 'scale3d(1, 1, 1)' + }); + }); + } else { + elem.setStyle({ + 'webkitTransition' : '300ms linear', + 'webkitTransform' : 'scale3d(1, 1, 1)' + }); + } this.scale = 1.0; @@ -1159,6 +927,14 @@ document.observe("dom:loaded", function() { transformValue[transformPref] = 'translate(' + this.pos*-1 + '%, 0)'; this.wrap.setStyle(transformValue); } + + if (this.pos == 0) { + this.prevButton.addClassName('disabled'); + } + + if (this.nextButton.hasClassName('disabled')) { + this.nextButton.removeClassName('disabled'); + }; this.counter.select('.active')[0].removeClassName('active').previous().addClassName('active'); @@ -1348,26 +1124,6 @@ document.observe("dom:loaded", function() { } - if ( $('c-grid') && supportsTouchCallout() ) { - - $$('.c-grid .cloned-wrap').each(function(n) { - new webkit_draggable(n, { handle : n.up('.cell').select('.product-image')[1], revert : true, scroll : true, onStart : function(r, e) { - r.setStyle({'opacity':'100', 'visibility':'visible'}).down('.wrap').addClassName('drop-start'); - }, - onEnd : function(r, e) { - r.setStyle({'opacity':'0', 'visibility':'hidden'}).down('.wrap').removeClassName('drop-start'); - } - }); - }); - webkit_drop.add($('menu'), - { - onDrop : function(elem, e) { e.preventDefault(); setLocation(elem.up('.cell').down('.add-to-cart').readAttribute('href')); elem.remove(); }, - onOver : function(elem, e) { e.preventDefault(); elem.down('.wrap').addClassName('to-cart-animate'); }, - onOut : function(elem) { elem.down('.wrap').removeClassName('to-cart-animate'); } - }); - - } - if ( $('customer-reviews') ) { $('customer-reviews').select('dt > a').each(function (a) { a.replace('

    ' + a.innerHTML + '

    '); diff --git a/skin/frontend/default/modern/css/styles.css b/skin/frontend/default/modern/css/styles.css index e36cb288a8..82f0f7e07f 100644 --- a/skin/frontend/default/modern/css/styles.css +++ b/skin/frontend/default/modern/css/styles.css @@ -1136,7 +1136,9 @@ tr.summary-details-excluded { font-style:italic; } .cart-table .btn-continue { float:left; } .cart-table .btn-continue span { background:none; padding:0; font:normal 11px/25px Arial, Helvetica, sans-serif; color:#4f8100; text-transform:none; text-decoration:underline; } .cart-table .btn-continue:hover span { text-decoration:none; } -.cart-table .btn-update span {} +.cart-table .btn-update, +.cart-table .btn-empty { float:right; } +.cart-table .btn-update { margin-left:7px; } /* Shopping Cart Collateral boxes */ .cart .cart-collaterals { padding:25px 0 0; } diff --git a/skin/frontend/default/modern/images/cvv.gif b/skin/frontend/default/modern/images/cvv.gif index 6d6e9f2907839d58c27ec8de8644f30fc8b4467c..6d49784489f2ea812202191c5f4d065b0686bb93 100644 GIT binary patch literal 19277 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 diff --git a/var/package/Interface_Adminhtml_Default-1.7.0.0-rc1.xml b/var/package/Interface_Adminhtml_Default-1.7.0.0-rc1.xml deleted file mode 100644 index 9c7b14d7c0..0000000000 --- a/var/package/Interface_Adminhtml_Default-1.7.0.0-rc1.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - Interface_Adminhtml_Default - 1.7.0.0-rc1 - beta - AFL v3.0 - community - - Default interface for Adminhtml - Default interface for Adminhtml - 1.7.0.0-rc1 - Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - - - 5.2.06.0.0Mage_Core_Adminhtmlcommunity1.7.0.0-rc11.8.0.0Lib_Js_Extcommunity1.7.0.0-rc11.8.0.0 - diff --git a/var/package/Interface_Adminhtml_Default-1.7.0.0.xml b/var/package/Interface_Adminhtml_Default-1.7.0.0.xml new file mode 100644 index 0000000000..26a2790016 --- /dev/null +++ b/var/package/Interface_Adminhtml_Default-1.7.0.0.xml @@ -0,0 +1,18 @@ + + + Interface_Adminhtml_Default + 1.7.0.0 + stable + AFL v3.0 + community + + Default interface for Adminhtml + Default interface for Adminhtml + 1.7.0.0 + Magento Core Teamcorecore@magentocommerce.com + 2012-04-20 + + + + 5.2.06.0.0Mage_Core_Adminhtmlcommunity1.7.0.01.8.0.0Lib_Js_Extcommunity1.7.0.01.8.0.0 + diff --git a/var/package/Interface_Frontend_Base_Default-1.7.0.0-rc1.xml b/var/package/Interface_Frontend_Base_Default-1.7.0.0.xml similarity index 52% rename from var/package/Interface_Frontend_Base_Default-1.7.0.0-rc1.xml rename to var/package/Interface_Frontend_Base_Default-1.7.0.0.xml index 45514c63cd..cd8cc64d52 100644 --- a/var/package/Interface_Frontend_Base_Default-1.7.0.0-rc1.xml +++ b/var/package/Interface_Frontend_Base_Default-1.7.0.0.xml @@ -1,18 +1,18 @@ Interface_Frontend_Base_Default - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable AFL v3.0 community This is a Magento themes base This is a Magento themes base - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - + 2012-04-20 + + - 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.0-rc11.8.0.0 + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.8.0.0 diff --git a/var/package/Interface_Frontend_Default-1.7.0.0-rc1.xml b/var/package/Interface_Frontend_Default-1.7.0.0-rc1.xml deleted file mode 100644 index 5a25fdb015..0000000000 --- a/var/package/Interface_Frontend_Default-1.7.0.0-rc1.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - Interface_Frontend_Default - 1.7.0.0-rc1 - beta - AFL v3.0 - community - - Default interface for Frontend - Default interface for Frontend - 1.7.0.0-rc1 - Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - - - 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.0-rc11.8.0.0 - diff --git a/var/package/Interface_Frontend_Default-1.7.0.0.xml b/var/package/Interface_Frontend_Default-1.7.0.0.xml new file mode 100644 index 0000000000..3932bfffdc --- /dev/null +++ b/var/package/Interface_Frontend_Default-1.7.0.0.xml @@ -0,0 +1,18 @@ + + + Interface_Frontend_Default + 1.7.0.0 + stable + AFL v3.0 + community + + Default interface for Frontend + Default interface for Frontend + 1.7.0.0 + Magento Core Teamcorecore@magentocommerce.com + 2012-04-20 + + + + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.8.0.0 + diff --git a/var/package/Interface_Install_Default-1.7.0.0-rc1.xml b/var/package/Interface_Install_Default-1.7.0.0.xml similarity index 93% rename from var/package/Interface_Install_Default-1.7.0.0-rc1.xml rename to var/package/Interface_Install_Default-1.7.0.0.xml index 341fc09c92..a1db0e8d52 100644 --- a/var/package/Interface_Install_Default-1.7.0.0-rc1.xml +++ b/var/package/Interface_Install_Default-1.7.0.0.xml @@ -1,18 +1,18 @@ Interface_Install_Default - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable AFL v3.0 community Default interface for Install Default interface for Install - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + - 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.0-rc11.8.0.0 + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.8.0.0 diff --git a/var/package/Lib_Google_Checkout-1.5.0.0.xml b/var/package/Lib_Google_Checkout-1.5.0.0.xml index 591ef813d3..4e5c39d1a9 100644 --- a/var/package/Lib_Google_Checkout-1.5.0.0.xml +++ b/var/package/Lib_Google_Checkout-1.5.0.0.xml @@ -10,9 +10,9 @@ Google Checkout Library 1.5.0.0 Magento Core Teamcorecore@magentocommerce.com - 2011-07-11 - - + 2011-02-08 + + 5.2.06.0.0 diff --git a/var/package/Lib_Js_Calendar-1.51.1.1-rc1.xml b/var/package/Lib_Js_Calendar-1.51.1.1.xml similarity index 94% rename from var/package/Lib_Js_Calendar-1.51.1.1-rc1.xml rename to var/package/Lib_Js_Calendar-1.51.1.1.xml index 645fe7780e..2fbe13e02d 100644 --- a/var/package/Lib_Js_Calendar-1.51.1.1-rc1.xml +++ b/var/package/Lib_Js_Calendar-1.51.1.1.xml @@ -1,17 +1,17 @@ Lib_Js_Calendar - 1.51.1.1-rc1 - beta + 1.51.1.1 + stable Mixed community Javascript Calendar for Magento Javascript Calendar for Magento - 1.51.1.1-rc1 + 1.51.1.1 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + 5.2.06.0.0 diff --git a/var/package/Lib_Js_Ext-1.7.0.0-rc1.xml b/var/package/Lib_Js_Ext-1.7.0.0.xml similarity index 99% rename from var/package/Lib_Js_Ext-1.7.0.0-rc1.xml rename to var/package/Lib_Js_Ext-1.7.0.0.xml index 5816e2628f..eefb1847c9 100644 --- a/var/package/Lib_Js_Ext-1.7.0.0-rc1.xml +++ b/var/package/Lib_Js_Ext-1.7.0.0.xml @@ -1,17 +1,17 @@ Lib_Js_Ext - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable Mixed community Extjs Javascript Libraries for Magento Extjs Javascript Libraries for Magento - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + 5.2.06.0.0 diff --git a/var/package/Lib_Js_Mage-1.7.0.0-rc1.xml b/var/package/Lib_Js_Mage-1.7.0.0.xml similarity index 91% rename from var/package/Lib_Js_Mage-1.7.0.0-rc1.xml rename to var/package/Lib_Js_Mage-1.7.0.0.xml index 241af8f9e6..9ec121ae83 100644 --- a/var/package/Lib_Js_Mage-1.7.0.0-rc1.xml +++ b/var/package/Lib_Js_Mage-1.7.0.0.xml @@ -1,18 +1,18 @@ Lib_Js_Mage - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable Mixed community Javascript Libraries for Magento Javascript Libraries for Magento - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - + 2012-04-20 + + - 5.2.06.0.0Lib_Js_Prototypecommunity1.7.0.0-rc11.7.1.0 + 5.2.06.0.0Lib_Js_Prototypecommunity1.7.0.0.31.7.1.0 diff --git a/var/package/Lib_Js_Prototype-1.7.0.0.3-rc1.xml b/var/package/Lib_Js_Prototype-1.7.0.0.3.xml similarity index 98% rename from var/package/Lib_Js_Prototype-1.7.0.0.3-rc1.xml rename to var/package/Lib_Js_Prototype-1.7.0.0.3.xml index 19558cbaf3..4968045c3d 100644 --- a/var/package/Lib_Js_Prototype-1.7.0.0.3-rc1.xml +++ b/var/package/Lib_Js_Prototype-1.7.0.0.3.xml @@ -1,17 +1,17 @@ Lib_Js_Prototype - 1.7.0.0.3-rc1 - beta + 1.7.0.0.3 + stable Mixed community Prototype and Scriptaculous Javascript Libraries for Magento Prototype and Scriptaculous Javascript Libraries for Magento - 1.7.0.0.3-rc1 + 1.7.0.0.3 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + 5.2.06.0.0 diff --git a/var/package/Lib_Js_TinyMCE-3.4.7.0-rc1.xml b/var/package/Lib_Js_TinyMCE-3.4.7.0.xml similarity index 99% rename from var/package/Lib_Js_TinyMCE-3.4.7.0-rc1.xml rename to var/package/Lib_Js_TinyMCE-3.4.7.0.xml index 3a9e52920f..2c1fb5373f 100644 --- a/var/package/Lib_Js_TinyMCE-3.4.7.0-rc1.xml +++ b/var/package/Lib_Js_TinyMCE-3.4.7.0.xml @@ -1,17 +1,17 @@ Lib_Js_TinyMCE - 3.4.7.0-rc1 - beta + 3.4.7.0 + stable Mixed community TinyMCE Javascript Libraries for Magento TinyMCE Javascript Libraries for Magento - 3.4.7.0-rc1 + 3.4.7.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + 5.2.06.0.0 diff --git a/var/package/Lib_LinLibertineFont-2.8.14.1-rc1.xml b/var/package/Lib_LinLibertineFont-2.8.14.1.xml similarity index 90% rename from var/package/Lib_LinLibertineFont-2.8.14.1-rc1.xml rename to var/package/Lib_LinLibertineFont-2.8.14.1.xml index 36fa661b1c..99403763b4 100644 --- a/var/package/Lib_LinLibertineFont-2.8.14.1-rc1.xml +++ b/var/package/Lib_LinLibertineFont-2.8.14.1.xml @@ -1,17 +1,17 @@ Lib_LinLibertineFont - 2.8.14.1-rc1 - beta + 2.8.14.1 + stable GPL community Libertine Open Fonts Project fonts for PDF print-outs Libertine Open Fonts Project fonts for PDF print-outs - 2.8.14.1-rc1 + 2.8.14.1 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + 5.2.06.0.0 diff --git a/var/package/Lib_Mage-1.7.0.0-rc1.xml b/var/package/Lib_Mage-1.7.0.0.xml similarity index 97% rename from var/package/Lib_Mage-1.7.0.0-rc1.xml rename to var/package/Lib_Mage-1.7.0.0.xml index 4623bc80de..436bfa6d84 100644 --- a/var/package/Lib_Mage-1.7.0.0-rc1.xml +++ b/var/package/Lib_Mage-1.7.0.0.xml @@ -1,17 +1,17 @@ Lib_Mage - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable OSL v3.0 community Mage Library Mage Library - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + 5.2.06.0.0 diff --git a/var/package/Lib_Phpseclib-1.5.0.0.xml b/var/package/Lib_Phpseclib-1.5.0.0.xml index 61d4a388d2..2f58c9b422 100644 --- a/var/package/Lib_Phpseclib-1.5.0.0.xml +++ b/var/package/Lib_Phpseclib-1.5.0.0.xml @@ -10,8 +10,8 @@ Phpseclib Library 1.5.0.0 Magento Core Teamcorecore@magentocommerce.com - 2011-07-11 - + 2011-02-08 + 5.2.06.0.0 diff --git a/var/package/Lib_Varien-1.7.0.0-rc1.xml b/var/package/Lib_Varien-1.7.0.0.xml similarity index 97% rename from var/package/Lib_Varien-1.7.0.0-rc1.xml rename to var/package/Lib_Varien-1.7.0.0.xml index d606856351..e099c6be5f 100644 --- a/var/package/Lib_Varien-1.7.0.0-rc1.xml +++ b/var/package/Lib_Varien-1.7.0.0.xml @@ -1,18 +1,18 @@ Lib_Varien - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable OSL v3.0 community Varien Library Varien Library - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - + 2012-04-20 + + 5.2.06.0.0Lib_ZFcommunity1.11.1.01.12.0.0PDOSPLcurlSimpleXMLdomgdiconvpdo_mysqlmcryptpcreReflectionsession diff --git a/var/package/Lib_ZF-1.11.1.0.xml b/var/package/Lib_ZF-1.11.1.0.xml index f16497d690..49b49a0e1f 100644 --- a/var/package/Lib_ZF-1.11.1.0.xml +++ b/var/package/Lib_ZF-1.11.1.0.xml @@ -10,9 +10,9 @@ Zend Framework 1.11.1.0 Magento Core Teamcorecore@magentocommerce.com - 2011-06-15 - + 2011-02-08 + - 5.2.06.0.0Lib_ZF_Localecommunity1.11.1.01.12.0.0 + 5.2.06.0.0Lib_ZF_Localecommunity1.11.1.01.11.1.0 diff --git a/var/package/Lib_ZF_Locale-1.11.1.0.xml b/var/package/Lib_ZF_Locale-1.11.1.0.xml index b542af603b..8473907728 100644 --- a/var/package/Lib_ZF_Locale-1.11.1.0.xml +++ b/var/package/Lib_ZF_Locale-1.11.1.0.xml @@ -11,8 +11,8 @@ splitted from ZF to avoid memory overruns during installation and upgrades 1.11.1.0 Magento Core Teamcorecore@magentocommerce.com - 2011-06-15 - + 2011-02-08 + 5.2.06.0.0 diff --git a/var/package/Mage_All_Latest-1.7.0.0-rc1.xml b/var/package/Mage_All_Latest-1.7.0.0-rc1.xml deleted file mode 100644 index ad8c5fd7a9..0000000000 --- a/var/package/Mage_All_Latest-1.7.0.0-rc1.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - Mage_All_Latest - 1.7.0.0-rc1 - beta - OSL v3.0 - community - - Metapackage for latest Magento 1.7.0.0-rc1 release - Metapackage for latest Magento 1.7.0.0-rc1 release - 1.7.0.0-rc1 - Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - - - 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.0-rc11.7.0.0-rc1Mage_Core_Adminhtmlcommunity1.7.0.0-rc11.7.0.0-rc1Interface_Adminhtml_Defaultcommunity1.7.0.0-rc11.7.0.0-rc1Interface_Frontend_Defaultcommunity1.7.0.0-rc11.7.0.0-rc1Interface_Install_Defaultcommunity1.7.0.0-rc11.7.0.0-rc1Mage_Downloadercommunity1.7.0.0-rc11.7.0.0-rc1Mage_Centinelcommunity1.7.0.0-rc11.7.0.0-rc1Interface_Frontend_Base_Defaultcommunity1.7.0.0-rc11.7.0.0-rc1Phoenix_Moneybookerscommunity1.3.1-rc11.3.1-rc1Mage_Compilercommunity1.7.0.0-rc11.7.0.0-rc1Magento_Mobilecommunity1.6.0.0.22.11.7.0.0 - diff --git a/var/package/Mage_All_Latest-1.7.0.0.xml b/var/package/Mage_All_Latest-1.7.0.0.xml new file mode 100644 index 0000000000..39c3110752 --- /dev/null +++ b/var/package/Mage_All_Latest-1.7.0.0.xml @@ -0,0 +1,18 @@ + + + Mage_All_Latest + 1.7.0.0 + stable + OSL v3.0 + community + + Metapackage for latest Magento 1.7.0.0 release + Metapackage for latest Magento 1.7.0.0 release + 1.7.0.0 + Magento Core Teamcorecore@magentocommerce.com + 2012-04-20 + + + + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.7.0.0Mage_Core_Adminhtmlcommunity1.7.0.01.7.0.0Interface_Adminhtml_Defaultcommunity1.7.0.01.7.0.0Interface_Frontend_Defaultcommunity1.7.0.01.7.0.0Interface_Install_Defaultcommunity1.7.0.01.7.0.0Mage_Downloadercommunity1.7.0.01.7.0.1Mage_Centinelcommunity1.7.0.01.7.0.0Interface_Frontend_Base_Defaultcommunity1.7.0.01.7.0.0Phoenix_Moneybookerscommunity1.3.11.3.1Mage_Compilercommunity1.7.0.01.7.0.0Magento_Mobilecommunity1.7.0.0.22.11.7.0.1 + diff --git a/var/package/Mage_Centinel-1.7.0.0-rc1.xml b/var/package/Mage_Centinel-1.7.0.0.xml similarity index 95% rename from var/package/Mage_Centinel-1.7.0.0-rc1.xml rename to var/package/Mage_Centinel-1.7.0.0.xml index 3c17b357ca..d9023a9ece 100644 --- a/var/package/Mage_Centinel-1.7.0.0-rc1.xml +++ b/var/package/Mage_Centinel-1.7.0.0.xml @@ -1,18 +1,18 @@ Mage_Centinel - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable mixed community 3D Secure Card Validation An integration with Cardinalcommerce Centinel service. Provides option to validate Visa and Mastercard cards for eliminating possible fraudlent order placement attempts. Adds information about Electronic Commerce Identifier, that designates liability for chargeback. - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + - 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.0-rc11.8.0.0 + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.8.0.0 diff --git a/var/package/Mage_Compiler-1.7.0.0-rc1.xml b/var/package/Mage_Compiler-1.7.0.0.xml similarity index 87% rename from var/package/Mage_Compiler-1.7.0.0-rc1.xml rename to var/package/Mage_Compiler-1.7.0.0.xml index 9f93794203..d723eaefb2 100644 --- a/var/package/Mage_Compiler-1.7.0.0-rc1.xml +++ b/var/package/Mage_Compiler-1.7.0.0.xml @@ -1,18 +1,18 @@ Mage_Compiler - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable OSL v3.0 community This module compiles all files of a Magento installation and creates a single include path to increase performance This module compiles all files of a Magento installation and creates a single include path to increase performance - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + - 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.0-rc11.8.0.0Mage_Core_Adminhtmlcommunity1.7.0.0-rc11.8.0.0 + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.8.0.0Mage_Core_Adminhtmlcommunity1.7.0.01.8.0.0 diff --git a/var/package/Mage_Core_Adminhtml-1.7.0.0-rc1.xml b/var/package/Mage_Core_Adminhtml-1.7.0.0.xml similarity index 98% rename from var/package/Mage_Core_Adminhtml-1.7.0.0-rc1.xml rename to var/package/Mage_Core_Adminhtml-1.7.0.0.xml index b056dc39eb..97698b13e9 100644 --- a/var/package/Mage_Core_Adminhtml-1.7.0.0-rc1.xml +++ b/var/package/Mage_Core_Adminhtml-1.7.0.0.xml @@ -1,18 +1,18 @@ Mage_Core_Adminhtml - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable OSL v3.0 community Magento Administration Panel Magento Administration Panel - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - + 2012-04-20 + + - 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.0-rc11.8.0.0Lib_Js_Calendarcommunity1.51.1.1-rc11.52Lib_Js_Extcommunity1.7.0.0-rc11.8.0.0Lib_LinLibertineFontcommunity2.8.14.1-rc12.9.0.0Lib_Js_TinyMCEcommunity3.4.7.0-rc13.5.0.0 + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.8.0.0Lib_Js_Calendarcommunity1.51.1.11.52Lib_Js_Extcommunity1.7.0.01.8.0.0Lib_LinLibertineFontcommunity2.8.14.12.9.0.0Lib_Js_TinyMCEcommunity3.4.7.03.5.0.0 diff --git a/var/package/Mage_Core_Modules-1.7.0.0-rc1.xml b/var/package/Mage_Core_Modules-1.7.0.0-rc1.xml deleted file mode 100644 index a83b8ed36e..0000000000 --- a/var/package/Mage_Core_Modules-1.7.0.0-rc1.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - Mage_Core_Modules - 1.7.0.0-rc1 - beta - OSL v3.0 - community - - Collection of Magento Core Modules - Collection of Magento Core Modules - 1.7.0.0-rc1 - Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - - - 5.2.06.0.0Lib_Variencommunity1.7.0.0-rc11.8.0.0Lib_Google_Checkoutcommunity1.5.0.01.5.1.0Lib_Js_Calendarcommunity1.51.1.1-rc11.52Lib_Js_Magecommunity1.7.0.0-rc11.8.0.0Lib_Js_Prototypecommunity1.7.0.0.3-rc11.7.1.0Lib_Phpseclibcommunity1.5.0.01.5.1.0Mage_Locale_en_UScommunity1.7.0.0-rc11.8.0.0Lib_Magecommunity1.7.0.0-rc11.8.0.0 - diff --git a/var/package/Mage_Core_Modules-1.7.0.0.xml b/var/package/Mage_Core_Modules-1.7.0.0.xml new file mode 100644 index 0000000000..393299895b --- /dev/null +++ b/var/package/Mage_Core_Modules-1.7.0.0.xml @@ -0,0 +1,18 @@ + + + Mage_Core_Modules + 1.7.0.0 + stable + OSL v3.0 + community + + Collection of Magento Core Modules + Collection of Magento Core Modules + 1.7.0.0 + Magento Core Teamcorecore@magentocommerce.com + 2012-04-20 + + + + 5.2.06.0.0Lib_Variencommunity1.7.0.01.8.0.0Lib_Google_Checkoutcommunity1.5.0.01.5.1.0Lib_Js_Calendarcommunity1.51.1.11.52Lib_Js_Magecommunity1.7.0.01.8.0.0Lib_Js_Prototypecommunity1.7.0.0.31.7.1.0Lib_Phpseclibcommunity1.5.0.01.5.1.0Mage_Locale_en_UScommunity1.7.0.01.8.0.0Lib_Magecommunity1.7.0.01.8.0.0 + diff --git a/var/package/Mage_Downloader-1.7.0.0-rc1.xml b/var/package/Mage_Downloader-1.7.0.0.xml similarity index 95% rename from var/package/Mage_Downloader-1.7.0.0-rc1.xml rename to var/package/Mage_Downloader-1.7.0.0.xml index 1f745139c2..c904769d55 100644 --- a/var/package/Mage_Downloader-1.7.0.0-rc1.xml +++ b/var/package/Mage_Downloader-1.7.0.0.xml @@ -1,18 +1,18 @@ Mage_Downloader - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable OSL v3.0 community Magento Downloader Magento Downloader - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - + 2012-04-20 + + 5.2.06.0.0 diff --git a/var/package/Mage_Locale_en_US-1.7.0.0-rc1.xml b/var/package/Mage_Locale_en_US-1.7.0.0.xml similarity index 86% rename from var/package/Mage_Locale_en_US-1.7.0.0-rc1.xml rename to var/package/Mage_Locale_en_US-1.7.0.0.xml index dda5a10b1d..5db258a149 100644 --- a/var/package/Mage_Locale_en_US-1.7.0.0-rc1.xml +++ b/var/package/Mage_Locale_en_US-1.7.0.0.xml @@ -1,18 +1,18 @@ Mage_Locale_en_US - 1.7.0.0-rc1 - beta + 1.7.0.0 + stable OSL v3.0 community en_US locale en_US locale - 1.7.0.0-rc1 + 1.7.0.0 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - - + 2012-04-20 + + 5.2.06.0.0 diff --git a/var/package/Magento_Mobile-1.6.0.0.22.1.xml b/var/package/Magento_Mobile-1.7.0.0.22.1.xml similarity index 99% rename from var/package/Magento_Mobile-1.6.0.0.22.1.xml rename to var/package/Magento_Mobile-1.7.0.0.22.1.xml index 53cb15b44a..24130fb7f8 100644 --- a/var/package/Magento_Mobile-1.6.0.0.22.1.xml +++ b/var/package/Magento_Mobile-1.7.0.0.22.1.xml @@ -1,19 +1,18 @@ Magento_Mobile - 1.6.0.0.22.1 + 1.7.0.0.22.1 stable mixed community Magento Mobile Xml Interface An integration magento with mobile applications (e.g. iPhone, Android, iPad) - 1.6.0.0.22.1 version of package -internal svn revision #121425 + 1.7.0.0.22.1 version of package internal svn revision #121425 Magento Core Teamcorecore@magentocommerce.com - 2011-12-29 + 2012-04-10 - 5.2.06.0.0Mage_Core_Modulescommunity1.6.0.01.7.0.0 + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.7.1.0 diff --git a/var/package/Phoenix_Moneybookers-1.3.1-rc1.xml b/var/package/Phoenix_Moneybookers-1.3.1.xml similarity index 97% rename from var/package/Phoenix_Moneybookers-1.3.1-rc1.xml rename to var/package/Phoenix_Moneybookers-1.3.1.xml index cb258741a5..afc3e49a12 100644 --- a/var/package/Phoenix_Moneybookers-1.3.1-rc1.xml +++ b/var/package/Phoenix_Moneybookers-1.3.1.xml @@ -1,8 +1,8 @@ Phoenix_Moneybookers - 1.3.1-rc1 - beta + 1.3.1 + stable mixed community @@ -25,11 +25,11 @@ Przelewy24 - Poland Sofortüberweisung - Germany Nordea Solo - Finland Moneybookers eWallet - 1.3.1-rc1 + 1.3.1 Magento Core Teamcorecore@magentocommerce.com - 2012-03-28 - + 2012-04-20 + - 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.0-rc11.8.0.0 + 5.2.06.0.0Mage_Core_Modulescommunity1.7.0.01.8.0.0