PluginProbe
Orderable – Restaurant & Food Ordering System / 1.19.0
Orderable – Restaurant & Food Ordering System v1.19.0
0.1.4 0.1.5 0.2.0 1.0.0 1.1.0 1.1.1 1.10.0 1.10.1 1.11.0 1.12.0 1.12.1 1.12.2 1.13.0 1.14.0 1.15.0 1.16.0 1.17.0 1.17.1 1.18.0 1.19.0 1.19.1 1.19.2 1.2.0 1.20.0 1.20.1 All 44 releases
orderable / inc / modules / live-view / source / admin / js / admin.js

admin.js in Orderable – Restaurant & Food Ordering System 1.19.0, at inc/modules/live-view/source/admin/js/admin.js

137 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 ( function ( $, document ) {
2 'use strict';
3
4 var orderable_live_view = {
5 /**
6 * On doc ready.
7 */
8 on_ready() {
9 orderable_live_view.mute_button();
10 orderable_live_view.update_url_for_order_status_buttons();
11 },
12
13 /**
14 * Heartbeat send.
15 *
16 * @param e
17 * @param data
18 */
19 on_heartbeat_send( e, data ) {
20 data.orderable_heartbeat = 'orderable_live_view';
21 data.orderable_filtered_service =
22 orderable_live_view_vars.filtered_service;
23 data.orderable_filtered_due_date =
24 orderable_live_view_vars.filtered_due_date;
25 data.orderable_orderby = orderable_live_view_vars.orderby;
26 data.orderable_last_order_id =
27 orderable_live_view.get_last_order_id();
28 data.orderable_location_id = $(
29 'select[name="orderable_location"]'
30 )
31 .find( ':selected' )
32 .val();
33 },
34
35 /**
36 * Get last order ID.
37 *
38 * @return {number}
39 */
40 get_last_order_id() {
41 return parseInt( orderable_live_view_vars.last_order_id );
42 },
43
44 /**
45 * Heartbeat tick.
46 *
47 * @param e
48 * @param data
49 */
50 on_heartbeat_tick( e, data ) {
51 if ( typeof data.orderable === 'undefined' ) {
52 return;
53 }
54
55 if (
56 data.orderable.last_order_id <=
57 orderable_live_view.get_last_order_id()
58 ) {
59 return;
60 }
61
62 // Update last order ID.
63 orderable_live_view_vars.last_order_id =
64 data.orderable.last_order_id;
65
66 // If there are new orders, reload the page.
67 $( '#posts-filter, #wc-orders-filter' ).load(
68 orderable_live_view_vars.url +
69 ' #posts-filter > *, #wc-orders-filter > *',
70 function ( response, status, xhr ) {
71 orderable_live_view.play_ding();
72
73 if ( status === 'error' ) {
74 console.log( 'Live View Error Response', response );
75 console.log( 'Live View Error Status', status );
76 }
77
78 $( document ).trigger( 'orderable-live-view-updated' );
79 }
80 );
81 },
82
83 /**
84 * Play ding sound.
85 */
86 play_ding() {
87 const mute_status = parseInt(
88 $( '.orderable-live-view-button--audio' ).data(
89 'orderable-mute-status'
90 )
91 ),
92 $ding = $( '#orderable_ding' );
93
94 if ( 1 === mute_status || $ding.length < 0 ) {
95 return;
96 }
97
98 $ding[ 0 ].play();
99 },
100
101 /**
102 * Setup mute button.
103 */
104 mute_button() {
105 $( '.orderable-live-view-button--audio' ).on( 'click', function () {
106 const $button = $( this ),
107 mute_status =
108 parseInt( $button.data( 'orderable-mute-status' ) ) ===
109 1
110 ? 0
111 : 1, // invert status.
112 current_text = $button.text(),
113 new_text = $button.data( 'orderable-alt-text' );
114
115 $button
116 .data( 'orderable-mute-status', mute_status )
117 .data( 'orderable-alt-text', current_text )
118 .text( new_text );
119 } );
120 },
121
122 /**
123 * Append '&orderable_live_view' to the order status hyperlinks.
124 */
125 update_url_for_order_status_buttons() {
126 $( '.subsubsub li a' ).each( function () {
127 const href = $( this ).attr( 'href' );
128 $( this ).attr( 'href', `${ href }&orderable_live_view` );
129 } );
130 },
131 };
132
133 $( document ).ready( orderable_live_view.on_ready );
134 $( document ).on( 'heartbeat-send', orderable_live_view.on_heartbeat_send );
135 $( document ).on( 'heartbeat-tick', orderable_live_view.on_heartbeat_tick );
136 } )( jQuery, document );
137