Files
admin/public/assets/js/custom/common.js
Husanjonazamov e0f1989655 classify admin
2026-02-24 12:52:01 +05:00

229 lines
8.0 KiB
JavaScript

/*
* Common JS is used to write code which is generally used for all the UI components
* Specific component related code won't be written here
*/
"use strict";
$(document).ready(function () {
$('#table_list').on('all.bs.table', function () {
$('#toolbar').parent().addClass('col-12 col-md-7 col-lg-7 p-0');
})
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
if ($('.permission-tree').length > 0) {
$(function () {
$('.permission-tree').on('changed.jstree', function (e, data) {
// let i, j = [];
let html = "";
for (let i = 0, j = data.selected.length; i < j; i++) {
let permissionName = data.instance.get_node(data.selected[i]).data.name;
if (permissionName) {
html += "<input type='hidden' name='permission[]' value='" + permissionName + "'/>"
}
}
$('#permission-list').html(html);
}).jstree({
"plugins": ["checkbox"],
});
});
}
})
//Setup CSRF Token default in AJAX Request
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('#create-form,.create-form,.create-form-without-reset').on('submit', function (e) {
e.preventDefault();
let formElement = $(this);
let submitButtonElement = $(this).find(':submit');
let url = $(this).attr('action');
let data = new FormData(this);
let preSubmitFunction = $(this).data('pre-submit-function');
if (preSubmitFunction) {
//If custom function name is set in the Form tag then call that function using eval
if (eval(preSubmitFunction + "()") == false) {
return false;
}
}
let customSuccessFunction = $(this).data('success-function');
// noinspection JSUnusedLocalSymbols
function successCallback(response) {
if (!$(formElement).hasClass('create-form-without-reset')) {
formElement[0].reset();
$(".select2").val("").trigger('change');
$('.filepond').filepond('removeFile')
}
$('#table_list').bootstrapTable('refresh');
if (customSuccessFunction) {
//If custom function name is set in the Form tag then call that function using eval
eval(customSuccessFunction + "(response)");
}
}
formAjaxRequest('POST', url, data, formElement, submitButtonElement, successCallback);
})
$('#edit-form,.edit-form').on('submit', function (e) {
e.preventDefault();
let formElement = $(this);
let submitButtonElement = $(this).find(':submit');
let data = new FormData(this);
$(formElement).parents('modal').modal('hide');
// let url = $(this).attr('action') + "/" + data.get('edit_id');
let url = $(this).attr('action');
let preSubmitFunction = $(this).data('pre-submit-function');
if (preSubmitFunction) {
//If custom function name is set in the Form tag then call that function using eval
eval(preSubmitFunction + "()");
}
let customSuccessFunction = $(this).data('success-function');
// noinspection JSUnusedLocalSymbols
function successCallback(response) {
$('#table_list').bootstrapTable('refresh');
setTimeout(function () {
$('#editModal').modal('hide');
$(formElement).parents('.modal').modal('hide');
}, 1000)
if (customSuccessFunction) {
//If custom function name is set in the Form tag then call that function using eval
eval(customSuccessFunction + "(response)");
}
}
formAjaxRequest('PUT', url, data, formElement, submitButtonElement, successCallback);
})
$(document).on('click', '.delete-form', function (e) {
e.preventDefault();
// console.log($(this).attr('href'));
showDeletePopupModal($(this).attr('href'), {
successCallBack: function () {
$('#table_list').bootstrapTable('refresh');
}, errorCallBack: function (response) {
showErrorToast(response.message);
}
})
})
$(document).on('click', '.restore-data', function (e) {
e.preventDefault();
showRestorePopupModal($(this).attr('href'), {
successCallBack: function () {
$('#table_list').bootstrapTable('refresh');
}
})
})
$(document).on('click', '.trash-data', function (e) {
e.preventDefault();
showPermanentlyDeletePopupModal($(this).attr('href'), {
successCallBack: function () {
$('#table_list').bootstrapTable('refresh');
}
})
})
$(document).on('click', '.set-form-url', function (e) {
//This event will be called when user clicks on the edit button of the bootstrap table
e.preventDefault();
$('#edit-form,.edit-form').attr('action', $(this).attr('href'));
})
$(document).on('click', '.delete-form-reload', function (e) {
e.preventDefault();
showDeletePopupModal($(this).attr('href'), {
successCallBack: function () {
setTimeout(() => {
window.location.reload();
}, 1000);
}
})
})
// Change event for Status toggle change in Bootstrap-table
$(document).on('change', '.update-status', function () {
let tableElement = $(this).parents('table');
let url = $(tableElement).data('custom-status-change-url') || window.baseurl + "common/change-status";
ajaxRequest('PUT', url, {
id: $(this).attr('id'),
table: $(tableElement).data('table'),
column: $(tableElement).data('status-column') || "",
status: $(this).is(':checked') ? 1 : 0
}, null, function (response) {
showSuccessToast(response.message);
}, function (error) {
showErrorToast(error.message);
})
})
//Fire Ajax request when the Bootstrap-table rows are rearranged
$('#table_list').on('reorder-row.bs.table', function (element, rows) {
let url = $(element.currentTarget).data('custom-reorder-row-url') || window.baseurl + "common/change-row-order";
ajaxRequest('PUT', url, {
table: $(element.currentTarget).data('table'),
column: $(element.currentTarget).data('reorder-column') || "",
data: rows
}, null, function (success) {
$('#table_list').bootstrapTable('refresh');
showSuccessToast(success.message);
}, function (error) {
showErrorToast(error.message);
})
})
$('.img_input').click(function () {
$('#edit_cs_image').click();
});
$('.preview-image-file').on('change', function () {
const [file] = this.files
if (file) {
$('.preview-image').attr('src', URL.createObjectURL(file));
}
})
$('.form-redirection').on('submit', function (e) {
let parsley = $(this).parsley({
excluded: 'input[type=button], input[type=submit], input[type=reset], :hidden'
});
parsley.validate();
if (parsley.isValid()) {
$(this).find(':submit').attr('disabled', true);
}
})
$('#editlanguage-form,.editlanguage-form').on('submit', function (e) {
e.preventDefault();
let formElement = $(this);
let submitButtonElement = $(this).find(':submit');
let data = new FormData(this);
$(formElement).parents('modal').modal('hide');
// let url = $(this).attr('action') + "/" + data.get('edit_id');
let url = $(this).attr('action');
let preSubmitFunction = $(this).data('pre-submit-function');
if (preSubmitFunction) {
//If custom function name is set in the Form tag then call that function using eval
eval(preSubmitFunction + "()");
}
let customSuccessFunction = $(this).data('success-function');
// noinspection JSUnusedLocalSymbols
function successCallback(response) {
setTimeout(() => {
window.location.reload();
}, 1000);
}
formAjaxRequest('PUT', url, data, formElement, submitButtonElement, successCallback);
})