| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*global woocommerce_network_orders */
- (function( $, _, undefined ) {
- if ( 'undefined' === typeof woocommerce_network_orders ) {
- return;
- }
- var orders = [],
- promises = [], // Track completion (pass or fail) of ajax requests.
- deferred = [], // Tracks the ajax deferreds.
- $tbody = $( document.getElementById( 'network-orders-tbody' ) ),
- template = _.template( $( document.getElementById( 'network-orders-row-template') ).text() ),
- $loadingIndicator = $( document.getElementById( 'woocommerce-network-order-table-loading' ) ),
- $orderTable = $( document.getElementById( 'woocommerce-network-order-table' ) ),
- $noneFound = $( document.getElementById( 'woocommerce-network-orders-no-orders' ) );
- // No sites, so bail.
- if ( ! woocommerce_network_orders.sites.length ) {
- $loadingIndicator.removeClass( 'is-active' );
- $orderTable.removeClass( 'is-active' );
- $noneFound.addClass( 'is-active' );
- return;
- }
- $.each( woocommerce_network_orders.sites, function( index, value ) {
- promises[ index ] = $.Deferred();
- deferred.push( $.ajax( {
- url : woocommerce_network_orders.order_endpoint,
- data: {
- _wpnonce: woocommerce_network_orders.nonce,
- network_orders: true,
- blog_id: value
- },
- type: 'GET'
- } ).success(function( response ) {
- var orderindex;
- for ( orderindex in response ) {
- orders.push( response[ orderindex ] );
- }
- promises[ index ].resolve();
- }).fail(function (){
- promises[ index ].resolve();
- }) );
- } );
- if ( promises.length > 0 ) {
- $.when.apply( $, promises ).done( function() {
- var orderindex,
- currentOrder;
- // Sort orders, newest first
- orders.sort(function( a, b ) {
- var adate, bdate;
- adate = Date.parse( a.date_created_gmt );
- bdate = Date.parse( b.date_created_gmt );
- if ( adate === bdate ) {
- return 0;
- }
- if ( adate < bdate ) {
- return 1;
- } else {
- return -1;
- }
- });
- if ( orders.length > 0 ) {
- for ( orderindex in orders ) {
- currentOrder = orders[ orderindex ];
- $tbody.append( template( currentOrder ) );
- }
- $noneFound.removeClass( 'is-active' );
- $loadingIndicator.removeClass( 'is-active' );
- $orderTable.addClass( 'is-active' );
- } else {
- $noneFound.addClass( 'is-active' );
- $loadingIndicator.removeClass( 'is-active' );
- $orderTable.removeClass( 'is-active' );
- }
- } );
- }
- })( jQuery, _ );
|