File "main.js"
Full Path: /home/romayxjt/public_html/wp-content/plugins/orderable/inc/modules/live-view/assets/admin/js/main.js
File size: 3.16 KB
MIME-type: text/plain
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);