PageSourceSearch

https://westcozcafe.com/Scripts/v2/home/_group-order-delivery.js?v=235.20260916-120

js westcozcafe.com collected 2026-09-30 10:41:07 UTC 19,189 bytes, 585 lines download raw bytes

1const ShowCustomInviteKey = "ShowCustomInvite";
2const CreateGroupOrderKey = "CreateGroupOrder";
3const JoinedSuccessfullyKey = "JoinedSuccessfully";
4const GroupOrderSessionKey = "GroupOrderSession";
5const CheckingOutOrderKey = "CheckingOutOrder";
6
7$(document).ready(function (e) {
8
9    if (localStorage.getItem(CheckingOutOrderKey) != null) {
10        localStorage.removeItem(GroupOrderSessionKey);
11
12        let checkingOutOrderId = localStorage.getItem(CheckingOutOrderKey);
13
14        if (checkingOutOrderId != null && checkingOutOrderId.length > 0) {
15            CheckingOutGroupOrderPaymentSuccessful(checkingOutOrderId);
16
17            var progressBar = setInterval(() => {
18                CheckingOutGroupOrderPaymentSuccessful(checkingOutOrderId);
19            }, 60 * 1000 * 5);
20        }
21    }
22    else if (localStorage.getItem(GroupOrderSessionKey) != null && typeof orderUserStep != 'undefined' && orderUserStep != 2) {
23        sessionStorage.removeItem("isMobileTemplate");
24        const groupOrderSession = localStorage.getItem(GroupOrderSessionKey);
25        if (groupOrderSession != null) {
26            const groupOrderSessionJson = JSON.parse(groupOrderSession);
27            if (groupOrderSessionJson != null && groupOrderSessionJson.groupOrderKey != null && groupOrderSessionJson.groupOrderKey.length > 0) {
28                console.log('CheckGroupOrderDeliveryExist');
29                CheckGroupOrderDeliveryExist(groupOrderSessionJson);
30            }
31            else {
32                localStorage.removeItem(GroupOrderSessionKey);
33                if (typeof ChooseTemplateType === 'function') {
34                    ChooseTemplateType();
35                }
36            }
37        }
38        else {
39            localStorage.removeItem(GroupOrderSessionKey);
40        }
41    }
42
43    $('#btn-init-group-order').click(function () {
44        CreateGroupOrderDelivery();
45    });
46
47    $('#btn-join-group-order').click(function () {
48        JoinGroupOrderDelivery();
49    });
50
51    $('#btn-leave-group-order').click(function () {
52        let memberId = $('#youself-group-order-id').val();
53        if (!!memberId) {
54            LeaveGroupOrderDelivery(memberId);
55        }
56    });
57
58    $('#btn-cancel-join-group-order').click(function () {
59        LeaveGroupOrderDelivery('');
60    });
61
62    $('#btn-delete-group-order').click(function () {
63        DeleteGroupOrderDelivery();
64    });
65
66    $('#btn-copy-link-group-order').click(function () {
67        CopyLinkInviteGroupOrder();
68    });
69
70    $('#btn-homepage-mark-as-ready').click(function () {
71        MarkAsReadyGroupOrder();
72    });
73
74    $('#btn-remove-guest-from-group-order').click(function () {
75        let memberId = $(this).attr('data-member-id');
76        RemoveGuestGroupOrderDelivery(memberId);
77    });
78
79    $('#btn-remove-item-from-group-order').click(function () {
80        let itemId = $(this).attr('data-id');
81        $('#containmycart').find(`#${itemId}`).trigger('click');
82
83        $('#remove-item-from-group-order-modal').modal('hide');
84    });
85
86    $('#btn-pending-items-in-group-order').click(function () {
87        MarkAsReadyGroupOrder(() => ValidateCartToCheckOut(false, false, requireMemberCheckoutRequest));
88    });
89
90    $('#containmycart').on('click', '.btn-cart-mark-as-ready', function () {
91        MarkAsReadyGroupOrder();
92    });
93
94    $('#containmycart').on('click', '.remove-item-group-order', function () {
95        let itemId = $(this).attr('data-id');
96        $('#btn-remove-item-from-group-order').attr('data-id', itemId);
97
98        let text = $('#remove-item-from-group-order-modal').find('#ThisItemBelongsToGuestText').val();
99        let itemMemberName = $(this).attr('data-member-name');
100
101        text = text.replace('{0}', itemMemberName);
102
103        $('#remove-item-from-group-order-modal .remove-item-guest-msg').text(text);
104        $('#remove-item-from-group-order-modal').modal('show');
105    });
106
107    $('#containmycart').on('click', '.btn-remove-guest', function () {
108        let memberId = $(this).attr('data-member-id');
109        $('#btn-remove-guest-from-group-order').attr('data-member-id', memberId);
110
111        let memberName = $(this).attr('data-member-name');
112        let removeGuestText = $('#remove-guest-from-group-order-text').val();
113        $('#remove-guest-from-group-order-modal').find('.modal-title').text(removeGuestText.replace('{0}', memberName));
114        $('#remove-guest-from-group-order-modal').modal('show');
115    });
116
117    const btnCopyLinks = document.querySelectorAll("#group-order-invite-btn, #invite-more-group-order-btn");
118    if (btnCopyLinks) {
119        btnCopyLinks.forEach(btnCopyLink => {
120            btnCopyLink.addEventListener("click", () => {
121                let osName = $('#copy-link-group-order-os-name').val();
122                let groupOrderText = $('#copy-link-group-order-text').val();
123
124                doShareGroupOrderLink(`[${osName}] ${groupOrderText}`, $('#copy-link-group-order-url').val());
125            });
126        });
127    }
128
129    let msgCreateGroupOrder = localStorage.getItem(CreateGroupOrderKey);
130
131    if (msgCreateGroupOrder != null && msgCreateGroupOrder.length > 0) {
132        localStorage.removeItem(CreateGroupOrderKey);
133
134        $('#group-order-toast-msg').text(msgCreateGroupOrder);
135        $('#group-order-toast').css('display', 'flex');
136
137        let showCustomInviteKey = localStorage.getItem(ShowCustomInviteKey);
138        if (showCustomInviteKey != null && showCustomInviteKey.length > 0) {
139            localStorage.removeItem(ShowCustomInviteKey);
140
141            generateQrCode();
142            $('#share-link-group-order-modal').modal('show');
143        }
144
145        setTimeout(function () {
146            $('#group-order-toast').removeAttr('style');
147        }, 5000);
148    }
149
150    let msgJoinedSuccessfully = localStorage.getItem(JoinedSuccessfullyKey);
151
152    if (msgJoinedSuccessfully != null && msgJoinedSuccessfully.length > 0) {
153        localStorage.removeItem(JoinedSuccessfullyKey);
154
155        $('#group-order-toast-msg').text(msgJoinedSuccessfully);
156        $('#group-order-toast').css('display', 'flex');
157
158        setTimeout(function () {
159            $('#group-order-toast').removeAttr('style');
160        }, 5000);
161    }
162
163    $("#your-group-name-id").on("input", function () {
164        let lenGroupName = $(this).val().trim().length;
165        if (lenGroupName < 1 || lenGroupName > 50) {
166            $("#group-name-up-to").hide();
167            $("#error-group-name").show();
168            $("#btn-init-group-order").prop("disabled", true);
169        }
170        else {
171            $("#error-group-name").hide();
172            $("#group-name-up-to").show();
173            $("#btn-init-group-order").prop("disabled", false);
174        }
175    });
176
177    $("#input-group-order-join").on("input", function () {
178        let lenGroupName = $(this).val().trim().length;
179        if (lenGroupName > 0 && lenGroupName < 31) {
180            $("#input-group-order-join-err").hide();
181        }
182    });
183
184    $(".btn-edit-group-name").click(function () {
185        $('.god-group-name-member-logged').css('display', 'none');
186        $('.god-group-name-guest').css('display', 'flex');
187
188        let inputGroupName = $("#your-group-name-id")[0];
189        inputGroupName.focus();
190        if (inputGroupName.setSelectionRange) {
191            let lenGroupName = inputGroupName.value.length;
192            inputGroupName.setSelectionRange(lenGroupName, lenGroupName);
193        }
194    });
195
196    $('#checking-out-group-order-modal').on('hidden.bs.modal', function () {
197        location.reload();
198    });
199});
200
201function CheckGroupOrderDeliveryExist(data) {
202    $.ajax({
203        type: "POST",
204        url: god_url.apiCheckGroupOrderExist,
205        data: data,
206        success: function (result) {
207            if (result.status == false) {
208                localStorage.removeItem(GroupOrderSessionKey);
209                if (typeof ChooseTemplateType === 'function') {
210                    ChooseTemplateType();
211                }
212            }
213            else {
214                if (result.orderId != null && result.orderId.length > 0) {
215                    sessionStorage.removeItem("isMobileTemplate");
216                    localStorage.removeItem(CheckingOutOrderKey);
217
218                    let loadingOrderHistory = new Loading({
219                        title: '',
220                        titleFontSize: 18,
221                        discription: 'Redirecting...'
222                    });
223
224                    setTimeout(function () {
225                        if (loadingOrderHistory && loadingOrderHistory.version) {
226                            loadingOrderHistory.out();
227                            loadingOrderHistory = null;
228                        }
229                    }, 10000);
230
231                    location.href = window.location.origin + `/OrderHistory/Index/${result.orderId}`;
232                }
233                else {
234                    if (typeof ChooseTemplateType === 'function') {
235                        const isMobileTemplate = sessionStorage.getItem("isMobileTemplate");
236
237                        if (isMobileTemplate == null || isMobileTemplate == undefined || isMobileTemplate.length == 0) {
238                            ChooseTemplateType();
239                        }
240                    }
241                    else {
242                        location.reload();
243                    }
244                }
245            }
246        },
247        error: function (err) {
248        },
249        beforeSend: function () {
250
251        },
252        complete: function () {
253
254        }
255    });
256}
257
258function CreateGroupOrderDelivery() {
259    let groupName = $('#your-group-name-id').val();
260    console.log('groupName', groupName);
261    if (!!groupName) {
262        $.ajax({
263            type: "POST",
264            url: god_url.apiCreateGroupOrder,
265            data: {
266                groupName: groupName
267            },
268            success: function (result) {
269                if (result.status) {
270                    localStorage.setItem(CreateGroupOrderKey, result.message);
271
272                    localStorage.setItem(GroupOrderSessionKey, JSON.stringify({
273                        groupOrderKey: ''
274                    }));
275
276                    doShareGroupOrderLink2(`[${result.onlineShopDisplayName}] ${result.text}`, result.url);
277
278                    setTimeout(function () {
279                        location.reload();
280                    }, 500);
281                }
282            },
283            error: function (err) {
284                console.log(err);
285            },
286            beforeSend: function () {
287
288            },
289            complete: function () {
290
291            }
292        });
293    }
294}
295
296function JoinGroupOrderDelivery() {
297    let memberName = $('#input-group-order-join').val();
298    $.ajax({
299        type: "POST",
300        url: god_url.apiJoinGroupOrder,
301        data: {
302            memberName: memberName
303        },
304        success: function (result) {
305            if (result.status) {
306                localStorage.setItem(JoinedSuccessfullyKey, result.message);
307
308                var groupOrderObject = {
309                    groupOrderKey: result.groupOrderKey,
310                    memberId: result.memberId
311                };
312                console.log('groupOrderObject', groupOrderObject);
313                localStorage.setItem(GroupOrderSessionKey, JSON.stringify(groupOrderObject));
314
315                location.reload();
316            }
317            else if (result.message != null && result.message.length > 0) {
318                $("#input-group-order-join-err").text(result.message);
319                $("#input-group-order-join-err").show();
320            }
321        },
322        error: function (err) {
323            console.log(err);
324        },
325        beforeSend: function () {
326
327        },
328        complete: function () {
329
330        }
331    });
332}
333
334function LeaveGroupOrderDelivery(memberId) {
335    $.ajax({
336        type: "POST",
337        url: god_url.apiLeaveGroupOrder,
338        data: {
339            memberId: memberId
340        },
341        success: function (result) {
342            localStorage.removeItem(GroupOrderSessionKey);
343
344            if (result.status) {
345                location.reload();
346            }
347        },
348        error: function (err) {
349            console.log(err);
350        },
351        beforeSend: function () {
352
353        },
354        complete: function () {
355            localStorage.removeItem(GroupOrderSessionKey);
356        }
357    });
358}
359
360function RemoveGuestGroupOrderDelivery(memberId) {
361    $.ajax({
362        type: "POST",
363        url: god_url.apiRemoveGuestGroupOrder,
364        data: {
365            memberId: memberId
366        },
367        success: function (result) {
368            if (result.status) {
369                LoadContainMyCart(false);
370
371                if (result.members && result.members.length > 0) {
372                    $('#group-member-count').text(result.members.length);
373                }
374
375                $('#view-group-order-modal').find(`#group-member-${memberId}`).remove();
376
377                $('#group-order-toast-msg').text(result.message);
378                $('#group-order-toast').css('display', 'flex');
379
380                setTimeout(function () {
381                    $('#group-order-toast').removeAttr('style');
382                }, 5000);
383
384                $('#remove-guest-from-group-order-modal').modal('hide');
385            }
386        },
387        error: function (err) {
388            console.log(err);
389        },
390        beforeSend: function () {
391
392        },
393        complete: function () {
394
395        }
396    });
397}
398
399function DeleteGroupOrderDelivery() {
400    $.ajax({
401        type: "POST",
402        url: god_url.apiDeleteGroupOrder,
403        data: {},
404        success: function (result) {
405            localStorage.removeItem(GroupOrderSessionKey);
406
407            if (result.status) {
408                location.reload();
409            }
410        },
411        error: function (err) {
412            console.log(err);
413        },
414        beforeSend: function () {
415
416        },
417        complete: function () {
418            localStorage.removeItem(GroupOrderSessionKey);
419        }
420    });
421}
422
423function MarkAsReadyGroupOrder(callback = null) {
424    $.ajax({
425        type: "POST",
426        url: god_url.apiMarkAsReadyGroupOrder,
427        data: {},
428        success: function (result) {
429            if (result.status) {
430                if (callback == null) {
431                    $('#btn-homepage-mark-as-ready').css('display', 'flex');
432                    LoadContainMyCart(false);
433                }
434                else {
435                    callback();
436                }
437            }
438        },
439        error: function (err) {
440            console.log(err);
441        },
442        beforeSend: function () {
443
444        },
445        complete: function () {
446
447        }
448    });
449}
450
451function generateQrCode() {
452    //qrcode.clear();
453    let qrData = $('#copy-link-group-order-url').val();
454    document.getElementById("share-qrcode").innerHTML = "";
455
456    var qrcode = new QRCode(document.getElementById("share-qrcode"), {
457        width: 180,
458        height: 180,
459        colorDark: "#000000",
460        colorLight: "#ffffff",
461        correctLevel: QRCode.CorrectLevel.H // High correction level
462    });
463
464    qrcode.makeCode(qrData);
465}
466
467function CopyLinkInviteGroupOrder() {
468    if (navigator.clipboard?.writeText) {
469        const textUrl = $("#copy-link-group-order-url").val();
470        navigator.clipboard.writeText(textUrl)
471            .then(() => {
472                $('#group-order-toast-msg').text('Copied ✓');
473                $('#group-order-toast').css('display', 'flex');
474
475                setTimeout(function () {
476                    $('#group-order-toast').removeAttr('style');
477                }, 1500);
478            });
479    }
480    else {
481        const input = document.getElementById("copy-link-group-order-url");
482        input.select();
483        document.execCommand("copy");
484
485        $('#group-order-toast-msg').text('Copied ✓');
486        $('#group-order-toast').css('display', 'flex');
487
488        setTimeout(function () {
489            $('#group-order-toast').removeAttr('style');
490        }, 1500);
491    }
492}
493function CheckingOutGroupOrderPaymentSuccessful(orderId) {
494
495    if (typeof god_url == 'undefined') {
496        localStorage.removeItem(CheckingOutOrderKey);
497
498        return false;
499    }
500
501    $.ajax({
502        type: "POST",
503        url: god_url.apiCheckingOutGroupOrderPaymentSuccessful,
504        data: { orderId: orderId },
505        cache: false,
506        success: function (result) {
507            if (result.status == true) {
508                if (result.orderId != null && result.orderId.length > 0) {
509                    sessionStorage.removeItem("isMobileTemplate");
510                    localStorage.removeItem(CheckingOutOrderKey);
511
512                    let loadingOrderHistory = new Loading({
513                        title: '',
514                        titleFontSize: 18,
515                        discription: 'Redirecting...'
516                    });
517
518                    setTimeout(function () {
519                        if (loadingOrderHistory && loadingOrderHistory.version) {
520                            loadingOrderHistory.out();
521                            loadingOrderHistory = null;
522                        }
523                    }, 10000);
524
525                    location.href = window.location.origin + `/OrderHistory/Index/${result.orderId}`;
526                }
527            }
528        },
529        error: function () {},
530        beforeSend: function () { },
531        complete: function () {
532        }
533    });
534}
535
536function isValidInputGroupName(value) {
537    return value.length >= 2 && value.length <= 50;
538}
539
540async function doShareGroupOrderLink(text, url) {
541    try {
542        if (navigator.share) {
543            const shareData = {
544                title: document.title,
545                text: text,
546                url: url,
547            };
548
549            await navigator.share(shareData);
550        }
551        else {
552            generateQrCode();
553            $('#share-link-group-order-modal').modal('show');
554        }
555    }
556    catch (err) {
557        if (err.toString().includes('AbortError') || err.name == 'AbortError') {
558        }
559        else {
560            generateQrCode();
561            $('#share-link-group-order-modal').modal('show');
562        }
563    }
564}
565
566async function doShareGroupOrderLink2(text, url) {
567    try {
568        if (navigator.share) {
569            const shareData = {
570                title: document.title,
571                text: text,
572                url: url,
573            };
574
575            await navigator.share(shareData);
576            localStorage.removeItem(ShowCustomInviteKey);
577
578        }
579        else {
580            localStorage.setItem(ShowCustomInviteKey, true);
581        }
582    } catch (err) {
583        localStorage.setItem(ShowCustomInviteKey, true);
584    }
585}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.