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 6d6e9f2907..6d49784489 100644 Binary files a/skin/frontend/base/default/images/cvv.gif and b/skin/frontend/base/default/images/cvv.gif differ 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 6d6e9f2907..6d49784489 100644 Binary files a/skin/frontend/default/blank/images/cvv.gif and b/skin/frontend/default/blank/images/cvv.gif differ 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 6d6e9f2907..6d49784489 100644 Binary files a/skin/frontend/default/default/images/cvv.gif and b/skin/frontend/default/default/images/cvv.gif differ 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 0000000000..b4fbf06857 Binary files /dev/null and b/skin/frontend/default/iphone/images/arrow_left.png differ 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 0000000000..b3e5d49872 Binary files /dev/null and b/skin/frontend/default/iphone/images/arrow_left_retina.png differ 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 0000000000..27235ae43b Binary files /dev/null and b/skin/frontend/default/iphone/images/arrow_right.png differ 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 0000000000..3f6145078b Binary files /dev/null and b/skin/frontend/default/iphone/images/arrow_right_retina.png differ 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 0000000000..7b55e92b56 Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_back_btn.png differ diff --git a/skin/frontend/default/iphone/images/bg_back_btn_retina.png b/skin/frontend/default/iphone/images/bg_back_btn_retina.png new file mode 100644 index 0000000000..63ceb0c64a Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_back_btn_retina.png differ diff --git a/skin/frontend/default/iphone/images/bg_breadcrumb.png b/skin/frontend/default/iphone/images/bg_breadcrumb.png deleted file mode 100644 index c90682c5fa..0000000000 Binary files a/skin/frontend/default/iphone/images/bg_breadcrumb.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/bg_breadcrumb_active.png b/skin/frontend/default/iphone/images/bg_breadcrumb_active.png deleted file mode 100644 index b7ca6b0dd1..0000000000 Binary files a/skin/frontend/default/iphone/images/bg_breadcrumb_active.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/bg_button.png b/skin/frontend/default/iphone/images/bg_button.png deleted file mode 100644 index fa1b0ceeb3..0000000000 Binary files a/skin/frontend/default/iphone/images/bg_button.png and /dev/null differ 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 0000000000..c60164a934 Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_divider.png differ 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 0000000000..3155c6e84b Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_divider_dark.png differ diff --git a/skin/frontend/default/iphone/images/bg_divider_dark_retina.png b/skin/frontend/default/iphone/images/bg_divider_dark_retina.png new file mode 100644 index 0000000000..9ad8c5a625 Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_divider_dark_retina.png differ diff --git a/skin/frontend/default/iphone/images/bg_divider_retina.png b/skin/frontend/default/iphone/images/bg_divider_retina.png new file mode 100644 index 0000000000..dd2a1629b6 Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_divider_retina.png differ diff --git a/skin/frontend/default/iphone/images/bg_drop.jpg b/skin/frontend/default/iphone/images/bg_drop.jpg deleted file mode 100644 index b25ec51196..0000000000 Binary files a/skin/frontend/default/iphone/images/bg_drop.jpg and /dev/null differ 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 0000000000..c33eeb2130 Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_gradient.png differ 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 0000000000..abefea993a Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_gradient_retina.png differ 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 229016e862..0000000000 Binary files a/skin/frontend/default/iphone/images/bg_nav_brd.png and /dev/null differ 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 4c9a05c893..0000000000 Binary files a/skin/frontend/default/iphone/images/bg_nav_brd_inactive.png and /dev/null differ 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 af5b07c25d..0000000000 Binary files a/skin/frontend/default/iphone/images/bg_qty.png and /dev/null differ 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 dd3da54286..0000000000 Binary files a/skin/frontend/default/iphone/images/bg_rating_star.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/bg_shadow.png b/skin/frontend/default/iphone/images/bg_shadow.png new file mode 100644 index 0000000000..ba3595956a Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_shadow.png differ diff --git a/skin/frontend/default/iphone/images/bg_shadow_retina.png b/skin/frontend/default/iphone/images/bg_shadow_retina.png new file mode 100644 index 0000000000..43d75a3ced Binary files /dev/null and b/skin/frontend/default/iphone/images/bg_shadow_retina.png differ 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 0000000000..8e3b3f7d14 Binary files /dev/null and b/skin/frontend/default/iphone/images/btn_edit.png differ diff --git a/skin/frontend/default/iphone/images/btn_edit_retina.png b/skin/frontend/default/iphone/images/btn_edit_retina.png new file mode 100644 index 0000000000..d13166ac4f Binary files /dev/null and b/skin/frontend/default/iphone/images/btn_edit_retina.png differ 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 0000000000..fd22fdc6b6 Binary files /dev/null and b/skin/frontend/default/iphone/images/btn_remove.png differ 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 0000000000..d8ca6b8ecd Binary files /dev/null and b/skin/frontend/default/iphone/images/btn_remove_retina.png differ 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 8784187ef1..0000000000 Binary files a/skin/frontend/default/iphone/images/btn_trash.gif and /dev/null differ 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 43d00f17d8..0000000000 Binary files a/skin/frontend/default/iphone/images/btn_trash.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/custom/arrow.png b/skin/frontend/default/iphone/images/custom/arrow.png new file mode 100644 index 0000000000..a804375d3f Binary files /dev/null and b/skin/frontend/default/iphone/images/custom/arrow.png differ diff --git a/skin/frontend/default/iphone/images/custom/arrow_retina.png b/skin/frontend/default/iphone/images/custom/arrow_retina.png new file mode 100644 index 0000000000..5652e3b933 Binary files /dev/null and b/skin/frontend/default/iphone/images/custom/arrow_retina.png differ diff --git a/skin/frontend/default/iphone/images/custom/bg_header.png b/skin/frontend/default/iphone/images/custom/bg_header.png new file mode 100644 index 0000000000..53059c75cf Binary files /dev/null and b/skin/frontend/default/iphone/images/custom/bg_header.png differ 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 0000000000..b0f03f0159 Binary files /dev/null and b/skin/frontend/default/iphone/images/custom/bg_header_retina.png differ diff --git a/skin/frontend/default/iphone/images/custom/bg_logo.png b/skin/frontend/default/iphone/images/custom/bg_logo.png new file mode 100644 index 0000000000..87a00d15e8 Binary files /dev/null and b/skin/frontend/default/iphone/images/custom/bg_logo.png differ 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 0000000000..4d3acdb2f7 Binary files /dev/null and b/skin/frontend/default/iphone/images/custom/bg_logo_retina.png differ diff --git a/skin/frontend/default/iphone/images/fabric.jpg b/skin/frontend/default/iphone/images/fabric.jpg deleted file mode 100644 index afbf8e478d..0000000000 Binary files a/skin/frontend/default/iphone/images/fabric.jpg and /dev/null differ diff --git a/skin/frontend/default/iphone/images/flip.png b/skin/frontend/default/iphone/images/flip.png deleted file mode 100644 index bf4d9ab58b..0000000000 Binary files a/skin/frontend/default/iphone/images/flip.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/front_banner.png b/skin/frontend/default/iphone/images/front_banner.png deleted file mode 100644 index 991f8b484c..0000000000 Binary files a/skin/frontend/default/iphone/images/front_banner.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/grid.png b/skin/frontend/default/iphone/images/grid.png deleted file mode 100644 index 9dac9eac1c..0000000000 Binary files a/skin/frontend/default/iphone/images/grid.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/i_add_to_cart.png b/skin/frontend/default/iphone/images/i_add_to_cart.png deleted file mode 100644 index b9917fa259..0000000000 Binary files a/skin/frontend/default/iphone/images/i_add_to_cart.png and /dev/null differ 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 4713a7b1d9..0000000000 Binary files a/skin/frontend/default/iphone/images/i_add_to_wishlist.png and /dev/null differ 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 3e08a331e5..0000000000 Binary files a/skin/frontend/default/iphone/images/i_arrow.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/i_arrow_small.png b/skin/frontend/default/iphone/images/i_arrow_small.png deleted file mode 100644 index c596af540a..0000000000 Binary files a/skin/frontend/default/iphone/images/i_arrow_small.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/i_arrow_white.png b/skin/frontend/default/iphone/images/i_arrow_white.png deleted file mode 100644 index 76a4ccb119..0000000000 Binary files a/skin/frontend/default/iphone/images/i_arrow_white.png and /dev/null differ 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 0000000000..c6e08527ab Binary files /dev/null and b/skin/frontend/default/iphone/images/i_cart.png differ 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 0000000000..02b9475a90 Binary files /dev/null and b/skin/frontend/default/iphone/images/i_cart_retina.png differ diff --git a/skin/frontend/default/iphone/images/i_dropdown.png b/skin/frontend/default/iphone/images/i_dropdown.png index 7298fc9a69..27ba94c73e 100644 Binary files a/skin/frontend/default/iphone/images/i_dropdown.png and b/skin/frontend/default/iphone/images/i_dropdown.png differ 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 0000000000..5d0188c2ad Binary files /dev/null and b/skin/frontend/default/iphone/images/i_dropdown_retina.png differ 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 e1d0deacf1..0000000000 Binary files a/skin/frontend/default/iphone/images/i_gallery.png and /dev/null differ 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 0000000000..9263c5fffe Binary files /dev/null and b/skin/frontend/default/iphone/images/i_menu.png differ diff --git a/skin/frontend/default/iphone/images/i_menu_arrow.png b/skin/frontend/default/iphone/images/i_menu_arrow.png deleted file mode 100644 index 5bf141fa30..0000000000 Binary files a/skin/frontend/default/iphone/images/i_menu_arrow.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/i_menu_cart.png b/skin/frontend/default/iphone/images/i_menu_cart.png deleted file mode 100644 index 71e33295d1..0000000000 Binary files a/skin/frontend/default/iphone/images/i_menu_cart.png and /dev/null differ 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 0000000000..fe77744ba3 Binary files /dev/null and b/skin/frontend/default/iphone/images/i_menu_retina.png differ 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 64ffaa4302..0000000000 Binary files a/skin/frontend/default/iphone/images/i_menu_search.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/i_search.png b/skin/frontend/default/iphone/images/i_search.png index 7c0cfa354c..e2a5d9f028 100644 Binary files a/skin/frontend/default/iphone/images/i_search.png and b/skin/frontend/default/iphone/images/i_search.png differ diff --git a/skin/frontend/default/iphone/images/i_search_retina.png b/skin/frontend/default/iphone/images/i_search_retina.png new file mode 100644 index 0000000000..1503674588 Binary files /dev/null and b/skin/frontend/default/iphone/images/i_search_retina.png differ diff --git a/skin/frontend/default/iphone/images/i_star.png b/skin/frontend/default/iphone/images/i_star.png index 6998d82b80..1b63893150 100644 Binary files a/skin/frontend/default/iphone/images/i_star.png and b/skin/frontend/default/iphone/images/i_star.png differ diff --git a/skin/frontend/default/iphone/images/i_star_black.png b/skin/frontend/default/iphone/images/i_star_black.png deleted file mode 100644 index eba1859154..0000000000 Binary files a/skin/frontend/default/iphone/images/i_star_black.png and /dev/null differ 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 0000000000..44ada0fad1 Binary files /dev/null and b/skin/frontend/default/iphone/images/i_star_blank.png differ 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 0000000000..00168b0609 Binary files /dev/null and b/skin/frontend/default/iphone/images/i_star_blank_retina.png differ 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 0000000000..38991f6439 Binary files /dev/null and b/skin/frontend/default/iphone/images/i_star_retina.png differ diff --git a/skin/frontend/default/iphone/images/i_tell_a_friend.png b/skin/frontend/default/iphone/images/i_tell_a_friend.png deleted file mode 100644 index a698adc8fc..0000000000 Binary files a/skin/frontend/default/iphone/images/i_tell_a_friend.png and /dev/null differ 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 ab4f374520..0000000000 Binary files a/skin/frontend/default/iphone/images/i_view_details.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/i_zoom.png b/skin/frontend/default/iphone/images/i_zoom.png new file mode 100644 index 0000000000..72d0065d45 Binary files /dev/null and b/skin/frontend/default/iphone/images/i_zoom.png differ 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 0000000000..3a8572dd95 Binary files /dev/null and b/skin/frontend/default/iphone/images/i_zoom_retina.png differ diff --git a/skin/frontend/default/iphone/images/list.png b/skin/frontend/default/iphone/images/list.png deleted file mode 100644 index 73bc37cb55..0000000000 Binary files a/skin/frontend/default/iphone/images/list.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/logo.png b/skin/frontend/default/iphone/images/logo.png deleted file mode 100644 index 9f7e996900..0000000000 Binary files a/skin/frontend/default/iphone/images/logo.png and /dev/null differ 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 0000000000..8c123db9fc Binary files /dev/null and b/skin/frontend/default/iphone/images/media/cell_phone_landing_banner1.jpg differ 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 aee6843882..0000000000 Binary files a/skin/frontend/default/iphone/images/nav_bg.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/nextlabel.png b/skin/frontend/default/iphone/images/nextlabel.png deleted file mode 100644 index 6d6a47bb7e..0000000000 Binary files a/skin/frontend/default/iphone/images/nextlabel.png and /dev/null differ diff --git a/skin/frontend/default/iphone/images/prevlabel.png b/skin/frontend/default/iphone/images/prevlabel.png deleted file mode 100644 index 0452a232a5..0000000000 Binary files a/skin/frontend/default/iphone/images/prevlabel.png and /dev/null differ 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 2bc66c97af..0000000000 Binary files a/skin/frontend/default/iphone/images/search_icon.png and /dev/null differ 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 : '
    More
    '}); + 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 6d6e9f2907..6d49784489 100644 Binary files a/skin/frontend/default/modern/images/cvv.gif and b/skin/frontend/default/modern/images/cvv.gif differ 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