File "admin.js"
Full Path: /home/romayxjt/public_html/wp-content/plugins/orderable/inc/modules/live-view/source/admin/js/admin.js
File size: 3.15 KB
MIME-type: text/x-asm
Charset: utf-8
( function ( $, document ) {
'use strict';
var orderable_live_view = {
/**
* On doc ready.
*/
on_ready() {
orderable_live_view.mute_button();
orderable_live_view.update_url_for_order_status_buttons();
},
/**
* Heartbeat send.
*
* @param e
* @param data
*/
on_heartbeat_send( e, data ) {
data.orderable_heartbeat = 'orderable_live_view';
data.orderable_filtered_service =
orderable_live_view_vars.filtered_service;
data.orderable_filtered_due_date =
orderable_live_view_vars.filtered_due_date;
data.orderable_orderby = orderable_live_view_vars.orderby;
data.orderable_last_order_id =
orderable_live_view.get_last_order_id();
data.orderable_location_id = $(
'select[name="orderable_location"]'
)
.find( ':selected' )
.val();
},
/**
* Get last order ID.
*
* @return {number}
*/
get_last_order_id() {
return parseInt( orderable_live_view_vars.last_order_id );
},
/**
* Heartbeat tick.
*
* @param e
* @param data
*/
on_heartbeat_tick( e, data ) {
if ( typeof data.orderable === 'undefined' ) {
return;
}
if (
data.orderable.last_order_id <=
orderable_live_view.get_last_order_id()
) {
return;
}
// Update last order ID.
orderable_live_view_vars.last_order_id =
data.orderable.last_order_id;
// If there are new orders, reload the page.
$( '#posts-filter, #wc-orders-filter' ).load(
orderable_live_view_vars.url +
' #posts-filter > *, #wc-orders-filter > *',
function ( response, status, xhr ) {
orderable_live_view.play_ding();
if ( status === 'error' ) {
console.log( 'Live View Error Response', response );
console.log( 'Live View Error Status', status );
}
$( document ).trigger( 'orderable-live-view-updated' );
}
);
},
/**
* Play ding sound.
*/
play_ding() {
const mute_status = parseInt(
$( '.orderable-live-view-button--audio' ).data(
'orderable-mute-status'
)
),
$ding = $( '#orderable_ding' );
if ( 1 === mute_status || $ding.length < 0 ) {
return;
}
$ding[ 0 ].play();
},
/**
* Setup mute button.
*/
mute_button() {
$( '.orderable-live-view-button--audio' ).on( 'click', function () {
const $button = $( this ),
mute_status =
parseInt( $button.data( 'orderable-mute-status' ) ) ===
1
? 0
: 1, // invert status.
current_text = $button.text(),
new_text = $button.data( 'orderable-alt-text' );
$button
.data( 'orderable-mute-status', mute_status )
.data( 'orderable-alt-text', current_text )
.text( new_text );
} );
},
/**
* Append '&orderable_live_view' to the order status hyperlinks.
*/
update_url_for_order_status_buttons() {
$( '.subsubsub li a' ).each( function () {
const href = $( this ).attr( 'href' );
$( this ).attr( 'href', `${ href }&orderable_live_view` );
} );
},
};
$( document ).ready( orderable_live_view.on_ready );
$( document ).on( 'heartbeat-send', orderable_live_view.on_heartbeat_send );
$( document ).on( 'heartbeat-tick', orderable_live_view.on_heartbeat_tick );
} )( jQuery, document );