Back | Home
الـ Path الحالي: /home/picotech/domains/instantly.picotech.app/public_html/public/js/admin
الملفات الموجودة في هذا الـ Path:
.
..
addon.js
customer.js
dashboard.js
faqs.js
front_contact.js
lead.js
pages.js
plan.js
servers.js
settings.js
tax.js
ticket.js

مشاهدة ملف: servers.js

"use strict";
Object.defineProperty(String.prototype, 'capitalize', {
    value: function() {
        return this.charAt(0).toUpperCase() + this.slice(1);
    },
    enumerable: false
});

function format_field_name(field){
    return field.replace('_',' ').capitalize();
}

function generateChunk(inputArray,perChunk){
    return inputArray.reduce((resultArray, item, index) => {
        const chunkIndex = Math.floor(index / perChunk)

        if (!resultArray[chunkIndex]) {
            resultArray[chunkIndex] = [] // start a new chunk
        }

        resultArray[chunkIndex].push(item)

        return resultArray
    }, []);
}


$('#from').select2();
$('#from').on('change',function (e) {
    e.preventDefault();
    $('#custom_fields').html(`<div class="text-center"><i class="fas fa-spinner fa-spin"></i></div>`);
    const server=$(this).val();
    $.ajax({
        method:'GET',
        url:'/admin/server/get/fields',
        data:{sending_server:server},
        success:function (res) {
            let html='';
            const serverFields=generateChunk(res,3)
            for(let i=0;i<serverFields.length;i++){
                let row="<div class='form-row'>";
                let rowFields='';
                $.each(serverFields[i],(index,item)=>{
                    rowFields+=`<div class="form-group col-md-4">
                                <label for="${server+'_'+item}">${format_field_name(item)}</label>
                                <input value="" type="text" name="${item}" class="form-control" id="${server+'_'+item}"
                                       placeholder="Enter ${format_field_name(item)}">
                               </div>`;
                });
               row+=rowFields+"</div>";
                html+=row;
            }

            $('#custom_fields').html(html);
        }
    })
});


$('#servers').DataTable({
    processing: true,
    serverSide: true,
    responsive:true,
    ajax:'/admin/server/all',
    columns: [
        { "data": "title" },
        { "data": "from" },
        { "data": "status" },
        { "data": "created_at" },
        { "data": "action" },
    ]
});

$('#testConnection').on('click',function (e) {
    e.preventDefault();
    const to_mail = $('#recipient_email').val();
    const testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
    if (to_mail && testEmail.test(to_mail)){
        $('#to_mail').val(to_mail);
        let preText=$(this).text();
        $(this).addClass('disabled').attr('disabled','true').text('Checking...');
        let that=this;

        $('#serverForm').append("<input id='serverFormPutMethod' name='_method' value='PUT' type='hidden'/>");
        let formData=$('#serverForm').serialize();
        $.ajax({
            method: 'post',
            url:$(this).attr('data-action'),
            data:formData,
            success:function (res) {
                $('#serverTestModal').modal('toggle');
                $(that).removeClass('disabled').removeAttr('disabled').text(preText);
                notify('success', res.message);
                $("#serverFormPutMethod").remove();
            },
            error:function (res) {
                $("#serverFormPutMethod").remove();
                $('#serverTestModal').modal('toggle');
                $(that).removeClass('disabled').removeAttr('disabled').text(preText);
                let errors=res.responseJSON.errors;
                let errorMsg='';
                $.each(errors,function (index,value) {
                    errorMsg+=value[0]+"\n <br>";
                })
                notify('danger', res.message);

            }

        })
        $('#recipient_email_required').addClass('d-none')
    }else {
        $('#recipient_email_required').removeClass('d-none')
    }

});