Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/rentpix.corals.io/public/assets/corals/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/rentpix.corals.io/public/assets/corals/js/corals_main.js
"use strict";
$(document).ajaxComplete(function (event, xhr, settings) {
    if (IsJsonString(xhr.responseText)) {
        var response = JSON.parse(xhr.responseText);
        if (response.notification) {
            themeNotify(response.notification);
        }
    }

    initElements(true);
});

function IsJsonString(str) {
    try {
        JSON.parse(str);
    } catch (e) {
        return false;
    }
    return true;
}

$(document).ajaxStart(function (event) {
    var panelEl = $(".box-body");
    if (panelEl.closest('.box').hasClass('no-block-ui')) {
        return false;
    }

    if (panelEl.length === 0 && !$('body').hasClass('no-block-ui')) {
        panelEl = $('body');
    }
    if (panelEl.length) {
        blockUI(panelEl);
    }
});

$(document).ajaxStop(function () {
    var panelEl = $(".box-body");

    if (panelEl.length === 0) {
        panelEl = $('body');
    }

    unblockUI(panelEl);

    if (window.Ladda) {
        Ladda.stopAll();
    }
});

$(document).ready(function () {
    initSelect2ajax();
    initElements();
});

$('[data-action]').click(function (event) {
    event.preventDefault();
});

$('body').on('click', '[data-action]', function (e) {
    e.preventDefault();

    var $element = $(this);

    var action = $element.data('action');
    var requestData = $element.data('request_data');
    var confirmation_message = $element.data('confirmation');

    if (undefined === requestData) {
        requestData = {};
    }
    var url = $element.prop('href');

    var page_action = $element.data('page_action');
    var action_data = $element.data('action_data');

    var table = $element.data('table');

    if (action === 'delete') {

        themeConfirmation(
            corals.confirmation.title,
            corals.confirmation.delete.text,
            'warning',
            corals.confirmation.delete.yes,
            corals.confirmation.cancel,
            function () {
                $.ajax({
                    url: url,
                    type: 'DELETE',
                    dataType: 'json',
                    data: {
                        _method: 'delete'
                    },
                    success: function (response, textStatus, jqXHR) {
                        handleAjaxSubmitSuccess(response, textStatus, jqXHR, page_action, action_data, table);
                    },
                    error: function (data, textStatus, jqXHR) {
                        themeNotify(data);
                    }
                });
            });

        return;
    }

    if (action === 'logout') {
        $.ajax({
            url: url,
            type: 'POST',
            success: function (data, textStatus, jqXHR) {
            },
            error: function (data, textStatus, jqXHR) {
            },
            complete: function (data) {
                window.location = window.base_url;
            }
        });
    }

    if (action === 'load') {
        var load_to = $element.data('load_to');
        $(load_to).load(url);
    }

    if (action === 'post' || action === 'get') {
        if (undefined !== confirmation_message) {
            themeConfirmation(
                corals.confirmation.title,
                confirmation_message,
                'info',
                corals.confirmation.yes,
                corals.confirmation.cancel, function () {
                    ajaxRequest(url, requestData, table, page_action, action);
                });
        } else {
            ajaxRequest(url, requestData, table, page_action, action);
        }
    }
});

$('body').on('submit', '.ajax-form', function (event) {
    event.preventDefault();

    let $form = $(this);

    ajax_form($form);
});

/*
* Select2 dependency handler
* The following attributes must be added to the main select:
*
* 'class'=>'dependent-select'
* 'data-dependency-field'=>'field_id',// the target element Id
* 'data-dependency-args'=>'arg1_id,arg2_id'//any additional fields that their values are required to get the data
* 'data-dependency-ajax-url'=>url('') //ajax url that handles the dependency
* */
$(document).on('change', '.dependent-select', function () {
    var thisVal = $(this).val();
    var name = $(this).prop('name');
    var dependencyArgs = [];

    if ($(this).data('dependency-args')) {
        dependencyArgs = $(this).data('dependency-args').split(',');
    }
    var dependencyFieldId = $(this).data('dependency-field');

    if ($("#" + dependencyFieldId).length === 0) {
        return;
    }

    if (!thisVal) {
        return;
    }

    var ajaxParams = name + "=" + thisVal + "&";

    $.each(dependencyArgs, function (index, arg) {
        let argValue = $('#' + arg).val();
        ajaxParams += arg + "=" + argValue + "&";
    });

    var targetUrl = $(this).data('dependency-ajax-url');
    var ajaxUrl = targetUrl + "?" + ajaxParams;

    $.ajax(ajaxUrl,   // request url
        {
            success: function (data, status, xhr) {// success callback function
                var targetElementData = [];

                targetElementData.push({'id': '', 'text': ''});

                $.each(data, function (index) {
                    targetElementData.push({'id': index, 'text': data[index]});
                });

                $("#" + dependencyFieldId).select2().empty().select2({
                    data: targetElementData
                });

                let selectedValue = $("#" + dependencyFieldId).data('selected_value');

                if (selectedValue) {
                    $("#" + dependencyFieldId).val(selectedValue).trigger('change');
                }
            }
        });
});

$(document).on('change blur keyup keypress mouseup', '.limited-text', function (event) {
    var value = $(this).val();

    var limit = $(this).prop('maxlength');

    if (value.length == limit) {
        event.preventDefault();
    } else if (value.length > limit) {
        // Maximum exceeded
        value = value.substring(0, limit);
        $(this).val(value);
    }

    $(this).parent().find(".limit-counter").text(value.length);
});

$(document).on('click', '.form_language_switcher .btn:not(.current-lang)', function () {
    let langSwitcher = $(this);

    let form = langSwitcher.closest('form');

    let langCodeSelected = langSwitcher.data('lang_code');

    let model = langSwitcher.data('model');
    let hashed_id = langSwitcher.data('hashed_id');

    if (!hashed_id.length) {
        return;
    }

    let activeLangCode = langSwitcher.closest('form').find('.translation_language_code');

    let action_data = {
        langCodeSelected: langCodeSelected,
        activeLangCode: activeLangCode,
        model: model,
        hashed_id: hashed_id
    };

    if (activeLangCode.val() !== langCodeSelected && isFormDirty(form)) {
        themeConfirmation(
            corals.confirmation.title,
            corals.confirmation.confirm_dirty_form,
            'warning',
            corals.confirmation.yes,
            corals.confirmation.skip_continue, function () {
                let old_action_data = form.data('action_data');
                let old_page_action = form.data('page_action');

                form.data('action_data', action_data);
                form.data('page_action', 'switchFormFieldsTranslation');
                form.data('old_action_data', old_action_data);
                form.data('old_page_action', old_page_action);

                form.append($('<input>', {
                    type: 'hidden',
                    name: 'translation_submit',
                    value: true
                }));

                let submitStatus = ajax_form(form);
            }, function () {
                switchFormFieldsTranslation({}, form, action_data);
            });
    } else {
        switchFormFieldsTranslation({}, form, action_data);
    }
});


$('.nav-tabs a').on('shown.bs.tab', function (event) {
    let tab = $(event.target);

    let tabContentSelector = tab.attr('href');

    let url = tab.data('content_url');

    let loaded = tab.data('content_loaded');

    if (loaded || !url) {
        return false;
    }

    $.get(url, {tab_html: true}, function (data, textStatus, jqXHR) {
        $(tabContentSelector).html(data);
        tab.data('content_loaded', true);
    });
});

$(document).on('click', 'a.laddaBtn', function (e) {
    $(this).addClass('disabled');
});

$(document).on('click', 'a.disabled', function (e) {
    e.preventDefault();
    e.stopPropagation();
    return false;
});

function getCookie(name, parseJson = false) {
    let cookies = "; " + document.cookie;
    let parts = cookies.split("; " + name + "=");

    if (parts.length === 2) {
        let value = decodeURIComponent(parts.pop().split(";").shift());
        return parseJson ? JSON.parse(value) : value;
    }
}

function setCookie(name, value, minutes) {
    let date = new Date();
    date.setTime(date.getTime() + (minutes * 60 * 1000));
    let expiresAt = "expires=" + date.toUTCString();
    document.cookie = name + "=" + value + ";" + expiresAt + ";path=/";
}


Spamworldpro Mini