HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/delta/wp-content/plugins/wpml-string-translation/res/js/exec-batch-action.js
jQuery(function () {
    WPML_String_Translation.ExecBatchAction.init(jQuery('#wpml-icl-string-translations-batch-loader'));
});

var WPML_String_Translation = WPML_String_Translation || {};

WPML_String_Translation.ExecBatchAction = {
    BATCH_SIZE: 50,

    isApplyBulkActionSelected() {
        var msg = jQuery('.js-wpml-st-table').find('.js-wpml-st-icl-string-translations-bulk-select-msg');
		return msg.get(0).hasAttribute('data-is-apply-bulk-action-selected');
    },

    init: function(loader) {
        this.loader = loader;
        this.totalItemsCount = 0;
    },

    run: function(initData, processBatchData, handlerData, options) {
        var self = this;
        options = options || {};
        if(typeof options.beforeStart === 'undefined') {
            options.beforeStart = function() {};
        }
        if(typeof options.onComplete === 'undefined') {
            options.onComplete = function() {};
        }
        this.loader.css('display', 'block');
        options.beforeStart();

        var data = {
            action: 'wpml_action',
            data: JSON.stringify(handlerData),
            endpoint: initData.endpoint,
            nonce: initData.nonce,
        };

        jQuery.ajax({
            url:      ajaxurl,
            type:     'POST',
            data:     data,
            dataType: 'json',
            success: function(res) {
                if(!res.success) {
                    window.alert('Error: ' + res.data);
                    return;
                }

                self.totalItemsCount = res.data.totalItemsCount;
                self.completedItemsCount = 0;
                self.runNextBatch(processBatchData, handlerData, options);
            }
        });
    },

    runNextBatch: function(processBatchData, handlerData, options) {
        handlerData.batchSize = WPML_String_Translation.ExecBatchAction.BATCH_SIZE;
        var self = this;
        var data = {
            action: 'wpml_action',
            data: JSON.stringify(handlerData),
            endpoint: processBatchData.endpoint,
            nonce: processBatchData.nonce,
        };

        jQuery.ajax({
            url:      ajaxurl,
            type:     'POST',
            data:     data,
            dataType: 'json',
            success: function(res) {
                if(!res.success) {
                    window.alert('Error: ' + res.data);
                    return;
                }

                self.completedItemsCount += parseInt(res.data.completedCount, 10);
                self.updatePercentage(Math.ceil(100 * (self.completedItemsCount / self.totalItemsCount)));
                if(self.totalItemsCount > self.completedItemsCount) {
                    self.runNextBatch(processBatchData, handlerData, options);
                } else {
                    self.updatePercentage(0);
                    self.loader.css('display', 'none');
                    options.onComplete(res.data);
                }
            }
        });
    },

    updatePercentage: function(pt) {
        this.loader.find('.js-content-percentage').text(pt + '%');
        this.loader.find('.js-content-percentage-bar-status').attr('style', 'width: ' + pt + '%');
    },
}