HEX
Server: LiteSpeed
System: Linux my-kul-web2054.main-hosting.eu 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: u665686179 (665686179)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: /home/u665686179/domains/dealkr.com/public_html/public/assets/new/back-end/js/translate.js
"use strict";
$(document).ready(function () {
    let getDataTable = $("#get-data-table-route-and-text");
    let dataTablePageLength = [
        getDataTable.data("page-length"),
        10,
        20,
        50,
        100,
    ];
    dataTablePageLength.sort(function (a, b) {
        return a - b;
    });
    let uniquePageLengths = dataTablePageLength.filter(function (
        value,
        index,
        self
    ) {
        return self.indexOf(value) === index;
    });

    let dataTable = $("#dataTable").DataTable({
        pageLength: getDataTable.data("page-length"),
        lengthMenu: uniquePageLengths,
        ajax: {
            type: "get",
            url: getDataTable.data("route"),
            dataSrc: "",
        },
        language: {
            info: getDataTable.data("info"),
            infoEmpty: getDataTable.data("info-empty"),
            infoFiltered: getDataTable.data("info-filtered"),
            emptyTable: getDataTable.data("empty-table"),
            search: getDataTable.data("search"),
            lengthMenu: getDataTable.data("length-menu"),
            paginate: {
                first: '<i class="fi fi-rr-angle-left fs-10"></i>',
                last: '<i class="fi fi-rr-angle-right fs-10"></i>',
                next: '<i class="fi fi-rr-angle-right fs-10"></i>',
                previous: '<i class="fi fi-rr-angle-left fs-10"></i>',
            },
        },
        columns: [
            {
                data: null,
                className: "text-center",
                render: function (data, type, full, meta) {
                    return meta.row + 1;
                },
            },
            {
                className: "text-center overflow-hidden text-wrap max-w-200",
                data: "key",
            },
            {
                data: null,
                className: "text-center",
                render: function (data, type, full, meta) {
                    return (
                        `<textarea class="form-control w-100" id="value-${
                            meta.row + 1
                        }" value="` +
                        data.value +
                        `">${data.value}</textarea>`
                    );
                },
            },
            {
                data: null,
                className: "text-center",
                render: function (data, type, full, meta) {
                    return `<button type="button"  class="btn btn-outline-primary mx-auto icon-btn autoTranslate" data-key="${
                        data.encode
                    }" data-index="${meta.row + 1}">
                                        <i class="fi fi-sr-language-exchange"></i></button>`;
                },
            },
            {
                data: null,
                className: "text-center",
                render: function (data, type, full, meta) {
                    return `<button type="button" class="btn btn-primary mx-auto icon-btn update-lang" data-key="${
                        data.encode
                    }" data-index="${meta.row + 1}">
                                        <i class="fi fi-sr-disk"></i>
                                    </button>`;
                },
            },
        ],
        initComplete: function () {
            let dataTableWrapper = $("#dataTable_wrapper");
            let dataTablesLength = dataTableWrapper.find(".dt-length");
            let dataTablesInfo = dataTableWrapper.find(".dt-info");

            if (dataTablesLength.length && dataTablesInfo.length) {
                dataTablesLength.insertBefore(dataTablesInfo);
            }
            $(".dt-paging .first, .dt-paging .last").remove();
            $(".dt-length label")
                .contents()
                .filter(function () {
                    return this.nodeType === 3;
                })
                .remove();
            $("#dataTable_wrapper .dt-layout-row:has(input[type='search'])").addClass('d-none');
        },
        drawCallback: function () {
            $(".dt-paging .first, .dt-paging .last").remove();

            $(".dt-paging .previous").html(
                '<i class="fi fi-rr-angle-left fs-10"></i>'
            );
            $(".dt-paging .next").html(
                '<i class="fi fi-rr-angle-right fs-10"></i>'
            );
            // $("#dataTable_wrapper").find('.dt-layout-row').addClass('d-none');
        },
    });

    dataTable.on("draw.dt", function () {

    });

    dataTable.on("xhr.dt", function () {

    });

    dataTable.on("search.dt", function () {

    });

    function setProgress(percentage) {
        const circle = $('.progress-circle .progress');
        const radius = circle.attr('r');
        const circumference = 2 * Math.PI * radius;
        const offset = circumference - (percentage / 100 * circumference);

        circle.css('stroke-dashoffset', offset);
    }

    const timer = setTimeout(()=> {
        setProgress(87)
    }, 1000)
});


$(document).on("click", ".autoTranslate", function () {
    let currentElement = $(this);
    let autoTranslate = $("#get-auto-translate-route-and-text");

    $.ajaxSetup({
        headers: {
            "X-CSRF-TOKEN": $('meta[name="_token"]').attr("content"),
        },
    });

    $.ajax({
        url: autoTranslate.data("route"),
        method: "POST",
        data: {
            key: $(this).data("key"),
        },
        beforeSend: function () {
            $("#loading").fadeIn();
        },
        success: function (response) {
            toastMagic.success(autoTranslate.data("success-text"));
            $("#value-" + currentElement.data("index")).val(
                response.translated_data
            );
        },
        complete: function () {
            $("#loading").fadeOut();
        },
    });
});

$(document).on("click", ".update-lang", function () {
    $.ajaxSetup({
        headers: {
            "X-CSRF-TOKEN": $('meta[name="_token"]').attr("content"),
        },
    });

    const translate = $("#get-translate-route-and-text");
    const value = $("#value-" + $(this).data("index")).val();

    $.ajax({
        url: translate.data("route"),
        method: "POST",
        data: {
            key: $(this).data("key"),
            value: value,
        },
        beforeSend: function () {
            $("#loading").fadeIn();
        },
        success: function () {
            toastMagic.success(translate.data("success-text"));
        },
        complete: function () {
            $("#loading").fadeOut();
        },
    });
});

let totalMessagesOfCurrentLanguageElement = $(
    "#total-messages-of-current-language"
);
var needToTranslateCall =
    parseInt(totalMessagesOfCurrentLanguageElement.data("total")) /
    totalMessagesOfCurrentLanguageElement.data("message-group");
var translateInitValue = 0;
var translateInitSpeedValue = 1000;
$("#translating-modal-start").on("click", function () {
    $(".translating-modal-success-rate").html("0%");
    $(".translating-modal-success-bar").attr("style", "width:0%");
    autoTranslationFunction();
});

function autoTranslationFunction() {
    $.ajaxSetup({
        headers: {
            "X-CSRF-TOKEN": $('meta[name="_token"]').attr("content"),
        },
    });
    $.ajax({
        url: $("#get-auto-translate-all-route-and-text").data("route"),
        method: "GET",
        beforeSend: function () {
            $("#translating-modal").modal("show");
        },
        success: function (response) {
            if (response.due_message != 0) {
                translateInitValue +=
                    Math.round((100 / needToTranslateCall) * 100) / 100;
                translateInitValue =
                    translateInitValue > 100 ? 100 : translateInitValue;
                $(".translating-modal-success-bar").attr(
                    "style",
                    "width:" + translateInitValue + "%"
                );
                $(".translating-modal-success-rate").html(
                    parseFloat(translateInitValue.toFixed(2)) + "%"
                );
                autoTranslationFunction();
            } else {
                toastMagic.success(response.message);
                $(".translateCountSuccess").html(
                    response.translate_success_message
                );
                translateInitSpeedValue = 10;
                translatingModalSuccessRate(translateInitSpeedValue);
                translateInitSpeedValue = 1000;
                setTimeout(() => {
                    $("#translating-modal").modal("hide");
                    setTimeout(() => {
                        $("#complete-modal").modal("show");
                    }, 500);
                }, 2000);
            }
        },
        complete: function () {},
        error: function (xhr, ajaxOption, thrownError) {},
    });
}

function translatingModalSuccessRate(SpeedValue) {
    const translatingRateInterval = setInterval(() => {
        if (translateInitValue < 100) {
            $(".translating-modal-success-rate").html(translateInitValue + "%");
            $(".translating-modal-success-bar").attr(
                "style",
                "width:" + translateInitValue + "%"
            );
            translateInitValue++;
        }
    }, SpeedValue);
    if (SpeedValue !== translateInitSpeedValue) {
        clearInterval(translatingRateInterval);
    }
}

$('#searchLanguage').on('input', function () {
    $('#dataTable').DataTable().search(this.value).draw();
});