Commit Graph

709 Commits

Author SHA1 Message Date
Claudio Sanches b6b34255d2 Stop for change inputs when add a new variation on admin, closes #8874 2015-08-18 13:00:38 -03:00
Mike Jolley 4697f5f600 typo + min 2015-08-17 11:27:11 +01:00
George Stephanis 47605935ab Grunt compress our new js file. 2015-08-14 11:11:23 -04:00
George Stephanis 2a15dbbe1b Declare ajaxurl as a global. jshint 2015-08-14 11:10:55 -04:00
George Stephanis 14c88fe5e5 Don't trigger a change after having just finished saving!
That’s silly!  Plus it’ll set up the leave page blocker again.
2015-08-14 11:08:26 -04:00
George Stephanis 6e1388d334 Set the key to `rates` not the variable rates. 2015-08-14 11:08:00 -04:00
Manos Psychogyiopoulos 9652d881f9 child selector 2015-08-14 09:46:22 +03:00
Manos Psychogyiopoulos a86403f884 toggle metabox classes on boxes added via ajax 2015-08-14 09:38:22 +03:00
George Stephanis 085ab57571 Better success callback. 2015-08-13 17:54:31 -04:00
George Stephanis 2aa1650f54 Rearrange things to get ajax working.
Spread them out throughout WooCommerce.
2015-08-13 17:49:59 -04:00
George Stephanis ec287f116f Add ajax submission processing.
Not quite finished yet, as the add_action isn’t catching.
2015-08-13 16:57:54 -04:00
George Stephanis 6b04e1b889 IT'S PEANUT BUTTER COMMA TIME
:dancing banana:
2015-08-13 15:22:05 -04:00
George Stephanis a3182a6b48 Move the export into the View.
Also:

* Use the correct rates, as data.rates may be out of date (or maybe
not, yay pass by reference?)
* Use rowData.postcode and rowData.city, not rowData.tax_rate_postcode
and rowData.tax_rate_city — those are wrong (my mistake earlier)
2015-08-13 14:58:19 -04:00
George Stephanis 2d097a8f4c Minified version of new js file. 2015-08-13 14:29:01 -04:00
George Stephanis 3c83e4ee4c Declare vars. jshint. 2015-08-13 14:27:50 -04:00
George Stephanis c243b431d5 Handle the deleting of rows as well.
Delete can accept one or more selected rows.
2015-08-13 14:25:38 -04:00
George Stephanis 3a87b98ba6 Rewrite onAddNewRow for Backbone models. 2015-08-13 14:10:47 -04:00
George Stephanis 0e902de9c8 Move new row and deletion inside the view. 2015-08-13 13:07:20 -04:00
George Stephanis b50af4839c Whitespace tidy. 2015-08-13 13:07:00 -04:00
George Stephanis 6dddc2ad84 Moving initialize up to the top. 2015-08-13 13:01:42 -04:00
George Stephanis 22b14e254f Single quotes for jshint coding standards. 2015-08-13 12:29:40 -04:00
George Stephanis d86814d6f1 Disable sorting when searching. 2015-08-13 12:13:05 -04:00
George Stephanis 64ef2a6c5c Remove several now unneeded log commands. 2015-08-13 12:00:10 -04:00
George Stephanis e888f65b4d Simplify how we're tracking single value changes as well. 2015-08-13 11:59:34 -04:00
George Stephanis 525d6987d3 Change how we're saving / logging order changes. 2015-08-13 11:59:12 -04:00
George Stephanis b4bd433342 Update the unsaved message to give better data. 2015-08-13 11:58:09 -04:00
George Stephanis 411d77aae8 Only update if necessary. 2015-08-12 17:26:10 -04:00
George Stephanis 9c58efeefd Make sure we're sorting by numbers, not strings. 2015-08-12 17:18:46 -04:00
George Stephanis d191914e2f Update the rate order on sort. 2015-08-12 17:18:32 -04:00
George Stephanis e10064d0fe Revert back to passing in array values. We can indexBy in JS 2015-08-12 17:17:39 -04:00
George Stephanis e7347ecca4 Handle sorting by tax_rate_order. 2015-08-12 15:29:33 -04:00
George Stephanis f77b77e335 New template for empty set. 2015-08-12 15:29:17 -04:00
George Stephanis 4581289fee Drat, wanted `event.data.view` not `view` 2015-08-12 15:05:00 -04:00
George Stephanis 6e169e313f `_.size()` can run on an object, `.length` cannot. 2015-08-12 15:03:50 -04:00
George Stephanis a587f9c5a9 Pull listeners back in to the view. 2015-08-12 15:01:27 -04:00
George Stephanis 91d8ce1bd4 Move deletion block to be adjacent to creation block. 2015-08-12 14:44:24 -04:00
George Stephanis 1b435e18c2 Move search triggers. 2015-08-12 14:44:05 -04:00
George Stephanis 059e9a9494 Better to run down here when needed. 2015-08-12 14:43:48 -04:00
George Stephanis 506a1141f7 Should be an array, not an object. 2015-08-12 14:41:52 -04:00
George Stephanis 72c16a2472 Let's do a simpler way of changing Object to array.
Underscore gives us lots of tools, it would be a shame not to use them.
2015-08-12 14:39:34 -04:00
George Stephanis c326b8f54d Add a way to get filtered rates -- affected by search. 2015-08-12 14:31:07 -04:00
George Stephanis c65f5b17b2 Set up listeners for searches. 2015-08-12 14:30:52 -04:00
George Stephanis 435ef9218f Optimize the search field selector. 2015-08-12 14:30:26 -04:00
George Stephanis 4e1922e9be new updateUrl function to store search queries and pagination changes in the url.
This makes it easier for folks to bookmark a page, share a url, etc.
2015-08-12 14:19:45 -04:00
George Stephanis 10255fcdd4 Globally cache the search field from the dom. 2015-08-12 14:19:01 -04:00
George Stephanis e9f0325ac1 Sanitize the pagination for scope on load. 2015-08-12 14:17:50 -04:00
George Stephanis c4f3d90588 Add in tracking for changes. 2015-08-12 12:59:13 -04:00
George Stephanis 56218b0824 Add in a notification for unsaved changes. 2015-08-12 12:59:13 -04:00
George Stephanis 843fef6e26 Remove debugging per_page override. 2015-08-12 12:59:12 -04:00
George Stephanis a7a12f977e Kinda silly to have min length 3 on a field that holds max 2. 2015-08-12 12:59:12 -04:00
George Stephanis 5ff9e2e52e Reorder where we're running the before unload 2015-08-12 12:59:12 -04:00
George Stephanis d8fdfe4c87 Manually trigger change event. Why?
Unsure why this needs to be manually triggered, but its seems to.
2015-08-12 12:59:12 -04:00
George Stephanis a8b1cabc0b Be more specific as to what we're listening for. 2015-08-12 12:59:12 -04:00
George Stephanis ca13f5785b Listen for changes in form inputs.
When one is found, update the model to reflect the data in the dom.
2015-08-12 12:59:12 -04:00
George Stephanis efcb9f5048 Give the Model a setRateAttribute method.
This should simplify updating when listening for changes in the form.
2015-08-12 12:59:12 -04:00
George Stephanis 1332ef4a71 String.trim() polyfill. 2015-08-12 12:59:12 -04:00
George Stephanis d52c4d1fde Don't base size of news off the dom. 2015-08-12 12:59:11 -04:00
George Stephanis 1a066ebbe0 Swap to associative array for model. 2015-08-12 12:59:11 -04:00
George Stephanis 388a584914 Not actually used, comment it out. 2015-08-12 12:59:11 -04:00
George Stephanis 9887fbaf50 Probably tidier to use `event` and not `e` 2015-08-12 12:59:11 -04:00
George Stephanis 0996778567 Figured out how to avoid hardcoding the instance. 2015-08-12 12:59:11 -04:00
George Stephanis 5783a20794 Don't use `this` in a callback with the wrong context.
@todo: Find a way to stop needing to refer to the specific instance
from the abstract class.
2015-08-12 12:59:11 -04:00
George Stephanis 0fb85f4656 Use $(window).on() instead of window.addEventListener. Because ¯\_(ツ)_/¯ 2015-08-12 12:59:10 -04:00
George Stephanis dc649e2964 JS objects + trailing commas = sad IE 2015-08-12 12:59:10 -04:00
George Stephanis 187e253177 Remove some debugging 2015-08-12 12:59:10 -04:00
George Stephanis ce7cb1f65d Add a `beforeunload` event to prompt before leaving with unsaved changes. 2015-08-12 12:59:10 -04:00
George Stephanis b4682d7f2d Change how things are called to the new bb render. 2015-08-12 12:59:10 -04:00
George Stephanis f7c2223a23 Change the structure to Backbone models/views. 2015-08-12 12:59:10 -04:00
George Stephanis 9e5abc22ad Whoops! Comma, not semicolon. 2015-08-12 12:59:10 -04:00
George Stephanis b75093b640 Optimization, save the $table selector to avoid some dom lookups. 2015-08-12 12:59:09 -04:00
George Stephanis 386ec26fb9 Whitespace tweaks. 2015-08-12 12:59:09 -04:00
George Stephanis e197bc242f Retool the export to use the global object, not parsing out of the dom. 2015-08-12 12:59:09 -04:00
George Stephanis a1d7121c99 Update the current page when the number is changed. 2015-08-12 12:59:09 -04:00
George Stephanis 7bebbaff9e Pagination now works by first, prev, next, last.
Still need to get number based pagination working.
2015-08-12 12:59:09 -04:00
George Stephanis cf59aec17d Add in and populate pagination template.
The buttons don’t actually do anything yet, but it outputs accurately
and inherits core styles.
2015-08-12 12:59:09 -04:00
George Stephanis d9b2907ae2 Begin to handle pagination.
This lets the initial view display only a single page, future commits
will add in the paginater.
2015-08-12 12:59:08 -04:00
George Stephanis 0608bcce19 The name resetter should also be run after each render. 2015-08-12 12:59:08 -04:00
George Stephanis f9fd4ada58 Wrap the rendering code inside a function that the data can be passed to. 2015-08-12 12:59:08 -04:00
George Stephanis 7985aec296 Ernest the JS so none of it evaluates before dom ready. 2015-08-12 12:59:08 -04:00
George Stephanis 26b95a4d80 Inline documentation explaining some functionality. 2015-08-12 12:59:08 -04:00
George Stephanis 7c60e48b0c Add some code comments. 2015-08-12 12:59:08 -04:00
George Stephanis 37f10c18cd Reposition when autocomplete is triggered.
Also, instead of searching through the whole dom, only search in the
tbody.
2015-08-12 12:59:07 -04:00
George Stephanis 308c7f8676 Whitespace tweaks 2015-08-12 12:59:07 -04:00
George Stephanis ea0b9b96b9 Optimization: Don't use $.size(), use native Object.length instead. 2015-08-12 12:59:07 -04:00
George Stephanis 676af1f308 JSHint fixes.
The other advantage of splitting js out of php files — jshint can run
on it! :) :) :)
2015-08-12 12:59:07 -04:00
George Stephanis d3922a96cd Don't constantly rescan the dom for tbody
We have a cached version of $tbody a level up.
2015-08-12 12:59:07 -04:00
George Stephanis 1b035b43a3 Swap `jQuery` to `$`
It’s more readable, and safe to do as we’ve aliased it back in the
enclosure.
2015-08-12 12:59:07 -04:00
George Stephanis 8c47c0df1d Migrate current_class from php to js 2015-08-12 12:59:07 -04:00
George Stephanis 52d4ea822c Extract 'No Rows Selected' string 2015-08-12 12:59:07 -04:00
George Stephanis 18293cf365 Extract the autocomplete for states and countries data.
Localize it!
2015-08-12 12:59:06 -04:00
George Stephanis 5d5a64753d Migrate csv columns to localize script. 2015-08-12 12:59:06 -04:00
George Stephanis 39749c4563 Move js in from php template file. 2015-08-12 12:59:06 -04:00
George Stephanis c128e4f826 Change variable name to consistent `$tbody` 2015-08-12 12:59:06 -04:00
George Stephanis a63ef876d7 Rename and tweak how js is registered.
Thanks @claudiosmweb for the suggestion to match existing conventions.
2015-08-12 12:59:06 -04:00
George Stephanis 0ed5f40fa2 Prefix template name with `wc-`
Good call, @mikejolley
2015-08-12 12:59:06 -04:00
George Stephanis a59ed70774 Big changeover to JS templating for the table.
Switching over to building the table with JS — wp.template.

We are now using the same JS template for existing rows and newly
generated rows on the fly — this should simplify things moving forward.

I’ve also started building stuff in an external JS file rather than
straight on the page.  Will continue migrating things to it and
localizing as needed.

Saved ( 2 * displayed tax rates - 1 ) db queries per page load by doing
the locations all in one query and then parceling them out in php.

More coming.
2015-08-12 12:59:06 -04:00
Claudio Sanches ac1986412c Stay on the same page when delete a variation 2015-08-12 11:39:55 -03:00
Shiva Poudel 3fe37da3f7 Allow support for variable in backbone modal template in extensions 2015-08-06 11:08:02 +05:45
Shiva Poudel 4cc26ab799 Backbone modal template to support wp.template 2015-08-06 10:22:53 +05:45
Claudio Sanches 054dfe0c7b Changed default Underscore's template for wp.template in API Keys 2015-08-05 15:02:55 -03:00