Commit Graph

61 Commits

Author SHA1 Message Date
Mike Jolley e1dd355cd9 Cart js class (#12172)
* Add classes and revise JS

* Block correct element in totals

* If no form with class is present, revert to reloading page

* Reload

* Rebase fail
2016-11-11 16:00:32 +00:00
Mike Jolley 11689b244c Remove notices once only
Closes #12182
2016-10-26 17:24:35 +01:00
Kevin Killingsworth 81d186000d Fix cart update field enter on submit for IE
Fix for issue #11811
https://github.com/woothemes/woocommerce/issues/11811

IE handles hitting <ENTER> on an input field differently than
Chrome or Firefox in that it finds the nearest submit button
and fires the event from it instead of the actual text field
from which the user hit <ENTER>.

This commit catches the <ENTER> key event before the submit happens
and forces the cart_submit handling on that event instead.
2016-09-22 16:52:23 -04:00
Mike Jolley 4da955923c [2.6] Handle info notices in cart
Fixes #11808
2016-08-31 18:07:21 +01:00
Mike Jolley 0bfaaa62c4 Don't prevent submission when table is not found
Fixes #11579
2016-08-01 16:19:30 +01:00
James Koster d0865bdcc7 Don't perform cart update on search submit
If you have a search widget on the cart page which is wrapped in a div
(the default wrapper for widgets) the ajax cart would try to update on
search submit. This change ensures the search form is excluded on
`submit_click`.
2016-07-04 11:10:02 +01:00
Mike Jolley f3932e1c9e Removes specificity of shop table rules and triggers different events if on checkout 2016-06-27 11:42:28 +01:00
Mike Jolley 15400fc5f5 Prevent blocking the same element multiple times
Fixes #11242
2016-06-24 12:18:31 +01:00
Kevin Killingsworth 230ba6e5bf Cart.js: Only prevent submit for specific buttons
Fixes #11148

Only prevent default submit actions for our own
"Update Cart" and "Add Coupon" operations.
2016-06-15 14:13:46 -05:00
Kevin Killingsworth 265a4faa10 Cart.js: Use currentTarget for events.
Some themes add internal HTML to links, so this adjusts
to use currentTarget, which should always be the node on which
the event is subscribed instead of the target which triggered
the event.
2016-06-15 12:02:58 -05:00
Mike Jolley f8f065bad9 Adjusted triggers for cart.js
Closes #11119
2016-06-15 15:51:53 +01:00
Mike Jolley 81195e876f Add trigger to update cart and totals area
Closes #11020

Example: jQuery(document).trigger('wc_update_cart');
2016-06-01 12:45:14 +01:00
Brent Shepherd aa2b97cb4c Allow string indexes for shipping packages 2016-05-23 17:34:43 -07:00
Kathy Darling 9926afbebf removed_coupon trigger. follow up to #10863. 2016-05-09 10:39:21 -05:00
Mike Jolley 83844fd55b Added applied_coupon trigger to cart page
#10863
2016-05-06 12:05:59 +01:00
Mike Jolley b39ec6b2d6 Fix undo on storefront
Closes #10816
2016-05-03 17:03:46 +01:00
Kevin Killingsworth 2e6d37c1c3 Fix cart ajax submit buttons for Safari.
Fixes #10813

This adds a "clicked" attribute to clicked form buttons,
which augments Safari specifically since it sets activeElement
to the page body when a button is clicked.
2016-05-02 15:26:14 -05:00
Mike Jolley 9eb32a2bd8 Keeps undo message in view
@coderkevin there was another case where the undo message would be gone
after refresh. This loads the content via ajax still preserving the
message.
2016-04-20 11:21:32 +01:00
Mike Jolley 3a59e3cbad Enable update cart button only when qty's change 2016-04-20 11:10:39 +01:00
Kevin Killingsworth f45a4cd57d Reload cart page upon emptying.
The server shows a different page for the cart
when the cart is completely empty. The Cart AJAX
update subverted this and caused issue #10736 as
a result. Not to mention, the page just didn't look
good or functional with no items left in the cart.

This commit forces a reload any time the cart becomes
empty, which shows the empty page generated from
the server.

Fixes #10736
2016-04-19 23:36:48 -05:00
Kevin Killingsworth 069eca0b32 Fix: Ensure cart gets updated
The cart was not getting updated in all cases
when products were removed or shipping was
updated. This ensures those changes update the
cart as well.

Fixes #10734
2016-04-19 13:00:18 -05:00
Kevin Killingsworth 00c3bf9ce3 Fix: Update message on update cart/shipping
This adds the messages to the ajaz update cart
and shipping operations.
2016-04-08 12:02:45 -05:00
Kevin Killingsworth 3073437ea1 Fix: Make cart ajax selectore more specific
The previous jQuery selector was on div.woocommerce,
which was also selecting other divs on the page.
This is more specific to the cart table on the page.
2016-04-06 12:14:54 -05:00
Kevin Killingsworth 45b2f7eae3 Remove console.log calls
Some left-over console log calls were removed.
2016-02-22 11:12:05 -06:00
Kevin Killingsworth b7f365982e cart objects: refactor into objects
This update actually takes the code and refactors it into
two object handlers, cart and cart_shipping.

Also, more block comments are added to each function.
2016-02-22 10:15:47 -06:00
Kevin Killingsworth 02b7c1edc4 cart objects: Create cart_shipping object.
This commit creates a cart shipping object which handles all shipping
code in this file.
2016-02-19 14:33:28 -06:00
Kevin Killingsworth 7c82a6b1f1 cart objects: Add block comments
Add block comments to functions in the file.
2016-02-19 14:26:27 -06:00
Kevin Killingsworth e7fa89cdf9 cart objects: split off events
Step one of implementing objects in carts is splitting off
the event handlers to separate named functions.
2016-02-19 14:13:48 -06:00
Kevin Killingsworth 7e951afbae Cart AJAX: Add shipping form support.
Add support for making an AJAX call for updating the shipping options.
2016-02-15 10:52:25 -06:00
Kevin Killingsworth b330813306 Cart AJAX: Clean up form handling for cart form.
The coupon and update cart logic was tripping on each other
between the click handling and form submit handling.
This commit combines the event handler, then splits off from there.
2016-02-15 10:27:47 -06:00
Kevin Killingsworth 4b8cf5cd1f Cart ajax: Fix html5 validation checks for quantities.
The form button click event handling was subverting the validation
checks. Moving the event to the actual form submit event fixed it.
2016-02-15 09:53:11 -06:00
Kevin Killingsworth 62c141ff5d Cart AJAX: Fix block UI for remove item.
The JQuery selector was incorrect and needed to go
further up the DOM tree.
2016-02-15 09:41:58 -06:00
Kevin Killingsworth a8e51cfb66 Style: Add spaces between closing braces and parens. 2016-02-15 08:40:46 -06:00
Kevin Killingsworth ef4debace7 Cart AJAX: Block form during update
Apply the JQuery Block UI to the form during an AJAX update.
Also correct a few small style issues.
2016-02-15 08:10:25 -06:00
Kevin Killingsworth e416ba0e2b Cart AJAX: Add cart item remove.
Add cart item remove, using same technique as the cart update.
Make the normal call via AJAX and update the HTML afterwards.
2016-02-14 22:55:47 -06:00
Kevin Killingsworth 9a43b897da Cart AJAX: Add update call.
Since the code is built to use a form submit for all the quanitities
already, I just made this an ajax call instead of a whole page call.
The result is the exactly the same and the .woocommerce div is replaced
with the resulting HTML.
2016-02-14 21:57:14 -06:00
Kevin Killingsworth 1c361bb29f cart.js: Consolidate url calculation.
DRY the url calculation code within a single function to make
the code more readable and succinct.
2016-02-12 15:43:05 -06:00
Kevin Killingsworth 30a272e58a Add remove coupon ajax handling in cart.
Add code to handle ajax call for removing a coupon from the cart.
2016-02-12 15:43:05 -06:00
Kevin Killingsworth 191b58eba0 Block cart form while applying coupon.
Add code to block the cart form during the apply operation
until completion. Refactor block/unblock into local methods
for reuse.
2016-02-12 15:43:05 -06:00
Kevin Killingsworth 4cc7e99ab7 Add notice to add coupon in cart.
Add the notice to when a coupon is added to the cart,
or the error if the coupon was not added for some reason.
2016-02-12 15:43:05 -06:00
Kevin Killingsworth ce90c440cb Cart ajax: apply coupon
Adds an ajax call for applying coupons while on the cart
screen (not checkout, as it already has this.)

This is the first commit to add ajax calls to the cart update
functions. See issue #6734
2016-02-12 15:43:05 -06:00
Mike Jolley 890bcff302 Fix cart ajax endpoint
@claudiosmweb @BFTrick
2015-07-27 20:02:40 +01:00
Mike Jolley 65f19d5ca7 Ajax variation handling
If there are more variations than the threshold allows (set to 20
currently) this loads the matching variation via ajax instead of inline
in the HTML. #8477
2015-07-09 15:56:20 +01:00
Shiva Poudel 8aff509ed7 Tweaks JSHint for cart and cart fragments 2015-06-10 23:11:21 +05:45
Claudio Sanches 1dadbb2842 Fixed coding standards for #7879 2015-04-13 12:37:22 -03:00
Danny van Kooten 88f2e690bb Changing all inefficient selectors of $('body') to $(document.body), which is about 80% faster (and even more on mobile, see https://jsperf.com/jquery-body-vs-document-body-selector/2 ). 2015-04-03 14:21:47 +02:00
Mike Jolley 21c5513526 Added endpoint for faster ajax requests 2015-03-20 12:28:26 +00:00
claudiosmweb c683720b02 Removed old ajax_loader_url param from all js files 2014-11-14 09:52:44 -02:00
splashingpixels ce3605ad36 cart jshinted and standard coding fixes 2014-03-17 20:08:41 -07:00
toddlahman 13c24b410e Removed (document).ready from jQuery scripts
jQuery(document).ready(function($) { is equivalent to calling
jQuery(function($) {.

http://api.jquery.com/ready/
2014-01-30 18:44:17 -08:00