Files
backend/public/dist/js/karbarlist.js
2024-02-01 09:53:53 +00:00

2672 lines
93 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var table;
var roleTable;
var provinces = [];
var provincesOffice = [];
var towns = [];
var townsOffice = [];
var global_user_id;
var cityFaChoose;
var checkedItemsId = [];
var esmp1 = "";
var esmp2 = "";
var esmp3 = "";
var AuthUserId;
var PERMISSIONS = [];
// genereal functions begin
function errorHandler(error) {
switch (error.status) {
case 401:
Swal.fire({
icon: "error",
title: "خطا",
text: 'اعتبار بلیط ورود شما منقضی شده است. لطفا دوباره وارد شوید.',
confirmButtonText: "بروزرسانی صفحه",
showLoaderOnConfirm: true,
preConfirm: () => {
location.reload(true);
},
});
break;
case 500:
Swal.fire({
icon: "error",
title: "خطا",
text: "مشکلی در سامانه رخ داده است لطفا با پشتیبانی تماس بگیرید.",
confirmButtonText: "بستن",
});
break;
case 422:
errors_list = "";
for (var property in error.responseJSON.errors) {
errors_list += error.responseJSON.errors[property][0];
}
Swal.fire({
icon: "error",
title: "خطا",
text: errors_list,
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
break;
default:
console.error("Error trace object");
console.log("Error object:");
console.log(error);
Swal.fire({
icon: "error",
title: "خطا",
text: "مشکل ناخواسته ای در سامانه رخ داده است لطفا با پشتیبانی تماس بگیرید.",
confirmButtonText: "بستن",
});
break;
}
}
function GetAuthUserId() {
$.ajax({
url: "https://rms.rmto.ir/valid/submitinfo/myData",
type: "GET",
cache: false,
async: false,
contentType: false,
processData: false,
success: function (result) {
AuthUserId = result.data.id;
},
error: function (error) {
errorHandler(error);
},
});
}
function assigenPermissions(params) {
$.ajax({
url: "https://rms.rmto.ir/webapi/user/get-permission",
type: "GET",
cache: false,
async: false,
contentType: false,
processData: false,
success: function (result) {
PERMISSIONS = result.data;
},
error: function (error) {
errorHandler(error);
},
});
}
function checkNationalCode(code, item) {
if (code == "2222222222" || code == "3333333333" || code == "4444444444" || code == "5555555555" || code == "6666666666" || code == "7777777777" || code == "8888888888" || code == "9999999999") return false
var L = code.length;
if (L < 8 || parseInt(code, 10) == 0) return false;
code = ('0000' + code).substr(L + 4 - 10);
if (parseInt(code.substr(3, 6), 10) == 0) return false;
var c = parseInt(code.substr(9, 1), 10);
var s = 0;
for (var i = 0; i < 9; i++)
s += parseInt(code.substr(i, 1), 10) * (10 - i);
s = s % 11;
if (!((s < 2 && c == s) || (s >= 2 && c == (11 - s)))) return false;
return true;
}
function showLoaderScreen() {
$(".divloader").css("display", "flex").hide().fadeIn();
}
function hideLoaderScreen() {
$(".divloader").fadeOut();
}
function disableDOM(dom_id, type = 'id') {
switch (type) {
case 'id':
$(`#${dom_id}`).prop('disabled', true)
break;
case 'class':
$(`.${dom_id}`).prop('disabled', true)
break;
default:
break;
}
}
function enableDOM(dom_id, type = 'id') {
switch (type) {
case 'id':
$(`#${dom_id}`).prop('disabled', false)
break;
case 'class':
$(`.${dom_id}`).prop('disabled', false)
break;
default:
break;
}
}
function setUserName(action = "add") {
switch (action) {
case "add":
if ($("#add_province").val() == -1) {
$("#add_name").val("لطفا استان مورد نظر خود را انتخاب نمایید.");
} else if ($("#add_province_office").val() != 0) {
$("#add_name").val($("#add_province_office").find("option:selected").text() + " " + $("#add_province").find("option:selected").text());
} else if ($("#add_city_office").val() != undefined && $("#add_city_office").val() != 0) {
$("#add_name").val($("#add_city_office").find("option:selected").text() + " " + $("#add_province").find("option:selected").text());
} else {
$("#add_name").val("یکی از ادارات شهری یا استانی را انتخاب نمایید.");
}
break;
case "edit":
if ($("#edit_province").val() == -1) {
$("#edit_name").val("لطفا استان مورد نظر خود را انتخاب نمایید.");
} else if ($("#edit_province_office").val() != 0) {
$("#edit_name").val($("#edit_province_office").find("option:selected").text() + " " + $("#edit_province").find("option:selected").text());
} else if ($("#edit_city_office").val() != undefined && $("#edit_city_office").val() != 0) {
$("#edit_name").val($("#edit_city_office").find("option:selected").text() + " " + $("#edit_province").find("option:selected").text());
} else {
$("#edit_name").val("یکی از ادارات شهری یا استانی را انتخاب نمایید.");
}
break;
default:
break;
}
}
function getProvinces(action_type = "crud") {
let reqUrl = `https://rms.rmto.ir/webapi/getuser/province-perm${$.inArray("full-user-management", PERMISSIONS) != -1 ? "?type=all" : ""}`;
$.ajax({
url: reqUrl,
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
provinces = result.data;
if ($.inArray("full-user-management", PERMISSIONS) != -1) {
$(`.province`).append('<option selected value="-1"></option>');
$(`.province`).append('<option value="0">اداره کل</option>');
}
for (let index = 0; index < provinces.length; index++) {
$(`.province`).append(
`<option value=${provinces[index].id}>${provinces[index].name_fa}</option>`
);
}
$(`.filter-province`).append('<option value="0"></option>');
for (let index = 0; index < provinces.length; index++) {
$(`.filter-province`).append(
`<option value=${provinces[index].id}>${provinces[index].name_fa}</option>`
);
}
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
}
function getProvincesOffice() {
let reqUrl = "https://rms.rmto.ir/public/contents/edarateOstani";
$.ajax({
url: reqUrl,
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
provincesOffice = result.data;
$(".province_office").empty();
$(".province_office").append('<option value="0"></option>');
$("#filter_province_office").append('<option value="-1">ادارات شهری</option>');
for (let index = 0; index < provincesOffice.length; index++) {
$(".province_office").append(
`<option value=${provincesOffice[index].id}>${provincesOffice[index].name_fa}</option>`
);
}
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
}
function checkValidCharchter(charCode) {
if (charCode >= 0 && charCode <= 31)
return true;
if (charCode == 127)
return true;
return false;
}
function checkSpecialCharchter(charCode) {
if (charCode >= 32 && charCode <= 46)
return true;
return false;
}
function checkEnglish(charCode) {
if (charCode >= 65 && charCode <= 90)
return true;
if (charCode >= 97 && charCode <= 122)
return true;
return false;
}
function checkNumber(charCode) {
if (charCode >= 48 && charCode <= 57) {
return true;
}
return false;
}
function checkPersian(charCode) {
var arabicCharUnicodeRange = /[\u0600-\u06FF]/;
if (arabicCharUnicodeRange.test(String.fromCharCode(charCode))) {
return true;
}
return false;
}
function initPemissions() {
const modalPermission = $('#modal_permission')
const modalRoleForm = $('#modal_role_form')
const modalAssignRoleGroupAction = $('#modal_assign_role_group_action')
let reqUrl = "https://rms.rmto.ir/user/permissions";
$.ajax({
url: reqUrl,
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
var type = '0';
result.Permissions.map(permission => {
if (permission.type != -1) {
if (type != permission.type) {
type = permission.type
modalPermission.find('.permissions').append(`<div class="col-12 d-flex align-items-center mb-1"><hr class="col"><input id="permission_${permission.type}" data-type="${permission.type}" class="all-permission-by-type mx-1" type="checkbox"><label class="m-0" for="permission_${permission.type}">همه</label></div>
<div class="col-6 mb-3 d-flex">
<input class="permission-input" data-type="${permission.type}" id="role-permission-${permission.id}" value="${permission.name}" type="checkbox">
<label class="m-0 pr-2" for="role-permission-${permission.id}">${permission.name_fa}</label>
</div>`)
modalRoleForm.find('.permissions').append(`<div class="col-12 d-flex align-items-center mb-1"><hr class="col"><input id="role_${permission.type}" data-type="${permission.type}" class="all-permission-by-type mx-1" type="checkbox"><label class="m-0" for="role_${permission.type}">همه</label></div>
<div class="col-6 mb-3 d-flex">
<input class="permission-input" data-type="${permission.type}" id="role-permission-${permission.id}" value="${permission.name}" type="checkbox">
<label class="m-0 pr-2" for="role-permission-${permission.id}">${permission.name_fa}</label>
</div>`)
modalAssignRoleGroupAction.find('.permissions').append(`<div class="col-12 d-flex align-items-center mb-1"><hr class="col"><input id="role_${permission.type}" data-type="${permission.type}" class="all-permission-by-type mx-1" type="checkbox"><label class="m-0" for="role_${permission.type}">همه</label></div>
<div class="col-6 mb-3 d-flex">
<input class="permission-input" data-type="${permission.type}" id="role_permission_${permission.id}" value="${permission.name}" type="checkbox">
<label class="m-0 pr-2" for="role_permission_${permission.id}">${permission.name_fa}</label>
</div>`)
} else {
modalPermission.find('.permissions').append(`
<div class="col-6 mb-3 d-flex">
<input class="permission-input" data-type="${permission.type}" id="permission-${permission.id}" value="${permission.name}" type="checkbox">
<label class="m-0 pr-2" for="permission-${permission.id}">${permission.name_fa}</label>
</div>`)
modalRoleForm.find('.permissions').append(`
<div class="col-6 mb-3 d-flex">
<input class="permission-input" data-type="${permission.type}" id="role-permission-${permission.id}" value="${permission.name}" type="checkbox">
<label class="m-0 pr-2" for="role-permission-${permission.id}">${permission.name_fa}</label>
</div>`)
modalAssignRoleGroupAction.find('.permissions').append(`
<div class="col-6 mb-3 d-flex">
<input class="permission-input" data-type="${permission.type}" id="role_permission_${permission.id}" value="${permission.name}" type="checkbox">
<label class="m-0 pr-2" for="role_permission_${permission.id}">${permission.name_fa}</label>
</div>`)
}
}
})
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
}
function getCityByProvince(province_id, dom_id, selected_id = 0) {
$.ajax({
url: "https://rms.rmto.ir/public/contents/provinces/" + province_id,
type: "GET",
async: false,
beforeSend: function () {
$(`#${dom_id}`).empty();
showLoaderScreen()
},
success: function (result) {
$(`#${dom_id}`).append('<option value="0"></option>');
cities = result.data;
for (let index = 0; index < cities.length; index++) {
$(`#${dom_id}`).append(
`<option value=${cities[index].id}>${cities[index].name_fa}</option>`
);
}
if (selected_id == null) {
disableDOM(dom_id);
} else if (selected_id != 0) {
enableDOM(dom_id);
$(`#${dom_id} option[value="${selected_id}"]`).attr("selected", true);
}
hideLoaderScreen();
},
error: function (error) {
errorHandler(error);
hideLoaderScreen();
},
});
}
function getCityOfficeByCity(city_id, dom_id, selected_id = 0) {
$.ajax({
url: "https://rms.rmto.ir/public/contents/edarateShahri/" + city_id,
type: "GET",
async: false,
beforeSend: function () {
$(`#${dom_id}`).empty();
showLoaderScreen()
},
success: function (result) {
// $(`#${dom_id}`).append('<option value="0"></option>');
cities = result.data;
for (let index = 0; index < cities.length; index++) {
$(`#${dom_id}`).append(
`<option value=${cities[index].id}>${cities[index].name_fa}</option>`
);
}
if (selected_id == null) {
disableDOM(dom_id);
} else if (selected_id != 0) {
enableDOM(dom_id);
$(`#${dom_id} option[value="${selected_id}"]`).attr("selected", true);
}
hideLoaderScreen();
},
error: function (error) {
errorHandler(error);
hideLoaderScreen();
},
});
}
function getCityOfficeByProvince(province_id, dom_id, selected_id = 0) {
$.ajax({
url: "https://rms.rmto.ir/public/contents/edarate_shahri_by_province/" + province_id,
type: "GET",
async: false,
beforeSend: function () {
$(`#${dom_id}`).empty();
showLoaderScreen()
},
success: function (result) {
$(`#${dom_id}`).append('<option value="0"></option>');
cities = result.data;
for (let index = 0; index < cities.length; index++) {
$(`#${dom_id}`).append(
`<option value=${cities[index].id}>${cities[index].name_fa}</option>`
);
}
if (selected_id == null) {
disableDOM(dom_id);
} else if (selected_id != 0) {
enableDOM(dom_id);
$(`#${dom_id} option[value="${selected_id}"]`).attr("selected", true);
}
hideLoaderScreen();
},
error: function (error) {
errorHandler(error);
hideLoaderScreen();
},
});
}
// genereal functions end
// stop writing persian
$(function () {
$(".restrict-persian").on('input', function (event) {
var input = this;
for (let index = 0; index < input.value.length; index++) {
const charachter = input.value[index].charCodeAt();
if (!(checkEnglish(charachter) || checkNumber(charachter) || checkValidCharchter(charachter) || checkSpecialCharchter(charachter))) {
input.value = "";
return;
}
}
});
});
// stop writing character it does not number
$(function () {
$(".restrict-persian-and-english").on('input', function (event) {
var input = this;
for (let index = 0; index < input.value.length; index++) {
const charachter = input.value[index].charCodeAt();
if (!(checkNumber(charachter) || checkValidCharchter(charachter) || checkSpecialCharchter(charachter))) {
input.value = "";
return;
}
}
});
});
// stop writing english
$(function () {
$(".restrict-english-and-number").on('input', function (event) {
var input = this;
for (let index = 0; index < input.value.length; index++) {
const charachter = input.value[index].charCodeAt();
if (!(checkPersian(charachter) || checkValidCharchter(charachter) || checkSpecialCharchter(charachter))) {
input.value = "";
return;
}
}
});
});
$(document).bind('click', function (e) {
const clicked = $(e.target);
if (clicked.parents('.datepicker-container').length != 0) return false;
if (clicked.parents('.select2-selection__choice').length != 0) return false;
if (clicked.closest('.btn-table-filter').length == 0 && clicked.closest(".parent-filter").length == 0 && $(".parent-filter").css("display") != "none") {
$(".parent-filter").css("display", "none");
}
if (clicked.closest('.btn-table-excel').length == 0 && clicked.closest(".parent-excel").length == 0 && $(".parent-excel").css("display") != "none") {
$(".parent-excel").css("display", "none");
}
if (clicked.closest('.btn-table-word').length == 0 && clicked.closest(".parent-word").length == 0 && $(".parent-word").css("display") != "none") {
$(".parent-word").css("display", "none");
}
});
$(document).ready(function () {
GetAuthUserId()
assigenPermissions();
initPemissions();
if ($.inArray("full-user-management", PERMISSIONS) != -1) {
$("#add_user_show_modal_button").css("display", "block")
$("#add_simple_user_show_modal").css("display", "block")
} else {
$("#add_user_show_modal_button").css("display", "none")
$("#add_simple_user_show_modal").css("display", "none")
}
getProvinces();
getProvincesOffice();
table = $("#user_data_table").DataTable({
dom: "<flB<t>p>",
pagingType: "simple_numbers",
responsive: true,
language: {
sEmptyTable: "هیچ داده‌ای در جدول وجود ندارد",
sInfo: "نمایش _START_ تا _END_ از _TOTAL_ ردیف",
sInfoEmpty: "نمایش 0 تا 0 از 0 ردیف",
sInfoFiltered: "(فیلتر شده از _MAX_ ردیف)",
sInfoPostFix: "",
sInfoThousands: ",",
sLengthMenu: "نمایش _MENU_ ردیف",
sLoadingRecords: "در حال بارگزاری...",
sProcessing: "در حال پردازش...",
sSearch: "جستجو: ",
sZeroRecords: "رکوردی با این مشخصات پیدا نشد",
oPaginate: {
sFirst: "برگه‌ی نخست",
sLast: "برگه‌ی آخر",
sNext: "بعدی",
sPrevious: "قبلی",
},
oAria: {
sSortAscending: ": فعال سازی نمایش به صورت صعودی",
sSortDescending: ": فعال سازی نمایش به صورت نزولی",
},
},
order: [
[0, "dec"]
],
processing: true,
select: true,
ajax: {
url: "https://rms.rmto.ir/users",
type: "GET",
dataSrc: function (json) {
return json.data;
},
error: function (error) {
errorHandler(error);
}
},
columns: [{
className: "text-center",
data: null,
render: function (data, type, row, meta) {
return `<input class="user-finder" data-id-user="${data.id}" type="checkbox"></input>`;
},
},
{
className: "text-center",
data: "username"
},
{
className: "text-center",
data: null,
render: function (data, type, row, meta) {
if (data.enabled) {
return `
<div class="d-flex justify-content-center parent-btn">
${data.id != AuthUserId ? '<button class="btn-dataTable" id="change_enabled" title="تغییر وضعیت"><i class="fa fa-edit icon-btnTable"></i></button>' : ''}
<label> فعال</label>
</div>`
} else {
return `
<div class="d-flex justify-content-center parent-btn">
${data.id != AuthUserId ? '<button class="btn-dataTable" id="change_enabled" title="تغییر وضعیت"><i class="fa fa-edit icon-btnTable"></i></button>' : ''}
<label> غیر فعال</label>
</div>`
}
},
},
{
className: "text-center",
data: "province_fa"
},
{
className: "text-center",
data: null,
render: function (data, type, row, meta) {
if (data.edarate_shahri_id) {
return data.edarate_shahri_name
} else {
return data.edarate_ostani_name
}
}
},
{
className: "text-center",
data: "first_name"
},
{
className: "text-center",
data: "last_name"
},
{
className: "text-center",
data: "mobile",
},
{
className: "text-center",
data: "name",
},
{
className: "text-center",
data: null,
render: function (data, type, row, meta) {
var temp = "";
data.roles.forEach(element => {
temp += element.name_fa + ", "
});
return temp.slice(0, -2);
}
},
{
className: "text-center",
data: null,
render: function (data, type, row, meta) {
if (data.major != null) {
return data.major + "(" + data.degree + ")";
} else {
return "لطفا اطلاعات کاربر را کامل نمایید."
}
}
},
{
className: "text-center",
data: null,
render: function (data, type, row) {
if ($.inArray("full-user-management", PERMISSIONS) != -1) {
return `
<div class="d-flex justify-content-center parent-btn">
<button class="btn-dataTable" id="report_btn" title="گزارش کارکرد"><i class="fa mb-2 fa-print"></i></button>
<div class="line-btn-table"></div>
<button class="btn-dataTable" id="activity_report" title="نمایش عملکرد"><i class="fa mb-2 fa-calculator"></i></button>
<div class="line-btn-table"></div>
<button class="btn-dataTable permission-control" title="سطح دسترسی"><i class="fa fa-tasks icon-btnTable"></i></button>
<div class="line-btn-table"></div>
<button class="btn-dataTable edit_user_show_modal_button " title="ویرایش"><i class="fa fa-edit icon-btnTable"></i></button>
<div class="line-btn-table"></div>
<button class="btn-dataTable change_password_show_modal_button " title="تغییر رمزعبور"><i class="fa fa-key icon-btnTable"></i></button>
<div class="line-btn-table"></div>
<button class="btn-dataTable delete_user" title="حذف"><i class="fa fa-trash icon-btnTable"></i></button>
</div>`
} else if ($.inArray("limited-user-management", PERMISSIONS) != -1) {
return `
<div class="d-flex justify-content-center parent-btn">
<button class="btn-dataTable" id="report_btn" title="نمایش عملکرد"><i class="fa mb-2 fa-print"></i></button>
<div class="line-btn-table"></div>
<button class="btn-dataTable" id="activity_report" title="نمایش عملکرد"><i class="fa mb-2 fa-calculator"></i></button>
<div class="line-btn-table"></div>
<button class="btn-dataTable edit_user_show_modal_button " title="ویرایش"><i class="fa fa-edit icon-btnTable"></i></button>
</div>`
}
},
},
],
buttons: [$.inArray("full-user-management", PERMISSIONS) != -1 ? {
text: '<div class="btn-send-activity"><div class="d-flex flex-column"><i class="fa mb-2 fa-calculator icon-color"></i>گزارش کارکرد</div></div>',
action: function (e, dt, node, config) {
window.location = 'https://rms.rmto.ir/user-activity-report'
},
} : {},
$.inArray("full-user-management", PERMISSIONS) != -1 ? {
text: '<div class="btn-confirmed-user"><div class="d-flex flex-column"><i class="fa mb-2 fa-users icon-color"></i>عملیات گروهی</div></div>',
action: function (e, dt, node, config) {
const modal = $("#modal_choose_group_action");
if (checkedItemsId == "") {
Swal.fire({
icon: "error",
title: "خطا",
text: "لطفا از ستون انتخاب کاربران، کاربران مورد نظر را انتخاب کنید",
confirmButtonText: "بستن",
});
} else {
modal.modal("show");
}
},
} : {},
$.inArray("full-user-management", PERMISSIONS) != -1 ? {
text: '<div class="btn-table-role"><div class="d-flex flex-column"><i class="fa mb-2 fa-tasks icon-color"></i> نقش ها</div></div>',
action: function (e, dt, node, config) {
$.ajax({
url: "https://rms.rmto.ir/show-all-roles",
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
if (result.data.length != 0) {
$("#role_table").dataTable().fnClearTable();
$("#role_table").dataTable().fnAddData(result.data);
} else {
$("#role_table").dataTable().fnClearTable();
}
$("#modal_role").modal('show');
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
},
} : {},
{
text: '<div class="btn-table-filter"><div class="d-flex flex-column"><i class="fa mb-2 fa-filter icon-color"></i> فیلترینگ پیشرفته</div></div>',
action: function (e, dt, node, config) {
$(".parent-filter").css("display", "block");
},
}
]
});
roleTable = $("#role_table").DataTable({
dom: "<B<t>p>",
pagingType: "simple_numbers",
responsive: true,
language: {
sEmptyTable: "هیچ داده‌ای در جدول وجود ندارد",
sInfo: "نمایش _START_ تا _END_ از _TOTAL_ ردیف",
sInfoEmpty: "نمایش 0 تا 0 از 0 ردیف",
sInfoFiltered: "(فیلتر شده از _MAX_ ردیف)",
sInfoPostFix: "",
sInfoThousands: ",",
sLengthMenu: "نمایش _MENU_ ردیف",
sLoadingRecords: "در حال بارگزاری...",
sProcessing: "در حال پردازش...",
sSearch: "جستجو: ",
sZeroRecords: "رکوردی با این مشخصات پیدا نشد",
oPaginate: {
sFirst: "برگه‌ی نخست",
sLast: "برگه‌ی آخر",
sNext: "بعدی",
sPrevious: "قبلی",
},
oAria: {
sSortAscending: ": فعال سازی نمایش به صورت صعودی",
sSortDescending: ": فعال سازی نمایش به صورت نزولی",
},
},
ordering: false,
processing: true,
select: true,
ajax: {
url: "https://rms.rmto.ir/show-all-roles",
type: "GET",
dataSrc: function (json) {
return json.data;
},
},
columns: [{
className: "text-center",
data: "name_fa"
},
{
className: "text-center",
data: null,
render: function (data, type, row) {
return `<div class="d-flex justify-content-center parent-btn">
<button class="btn-dataTable edit-role" title="ویرایش"><i class="fa fa-edit icon-btnTable"></i></button>
<div class="line-btn-table"></div>
<button class="btn-dataTable delete-role" title="حذف"><i class="fa fa-trash icon-btnTable"></i></button>
</div>`
},
},
],
buttons: [{
text: '<div class="btn-table-role-add"><div class="d-flex flex-column"><i class="fa mb-2 fa-plus icon-color"></i></div></div>',
action: function (e, dt, node, config) {
$("#modal_role_form").modal('show');
$("#modal_role_form").find('.modal-title').text('افزودن نقش')
$("#modal_role_form").find('#name_role').val('')
$("#modal_role_form").find('.permission-input').prop('checked', false)
$("#modal_role_form").find('.all-permission-by-type').prop('checked', false)
$("#modal_role_form").find('#role_id').val('-1')
$("#modal_role_form").data('mode', 'add')
},
},]
});
})
$(document).on('click', '#report_btn', function () {
var tr = $(this).closest("tr");
var row = table.row(tr);
$("#report_modal").modal('show');
console.log(row.data().id);
$("#selected_user_for_report").val(row.data().id);
})
$(document).on('click', '#user_report', function () {
const modal = $("#report_modal");
// var tr = $(this).closest("tr");
// var row = table.row(tr);
// row.data().id
modal.find(".input-cleaner").each(function () {
$(this).val() == "" ? $(this).addClass("no-val") : $(this).removeClass("no-val");
});
if (modal.find(".input-cleaner").hasClass("no-val")) {
alert("لطفا فیلد های مربوطه را تکمیل نمایید")
} else {
const convert_fromDate_reprt = moment(fromDate_reprt.getState().selected.unixDate).format("YYYY-MM-DD");
const convert_toDate_reprt = moment(toDate_reprt.getState().selected.unixDate).format("YYYY-MM-DD");
window.open(`https://rms.rmto.ir/user-activity-report/print/user/${$("#selected_user_for_report").val()}?fromDate=${convert_fromDate_reprt}&toDate=${convert_toDate_reprt}`, `_blank`);
modal.modal("hide")
}
})
$(document).on('click', '.all-permission-by-type', function () {
const modal = $(this).parents('.modal')
const type = $(this).data('type')
if ($(this).is(':checked')) {
modal.find(`.permission-input[data-type="${type}"]`).prop('checked', true)
return true;
}
modal.find(`.permission-input[data-type="${type}"]`).prop('checked', false)
return true;
})
$(document).on('click', '#activity_report', function () {
const modal = $('#activity_report_modal')
var tr = $(this).closest("tr");
var row = table.row(tr);
var first_name = row.data().first_name;
var last_name = row.data().last_name;
var mobile = row.data().mobile;
var name = row.data().name;
var degree = row.data().degree;
var major = row.data().major;
var username = row.data().username;
var national_code = row.data().national_code;
var avatar = row.data().avatar;
$("#user_fulname_activity_report").text(first_name + " " + last_name);
$("#user_mobile_activity_report").text(mobile);
$("#user_name_activity_report").text(name);
if (major != null) {
$("#user_degree_major_activity_report").text(degree + " " + major);
} else {
$("#user_degree_major_activity_report").text("لطفا اطلاعات کاربر را کامل نمایید.");
}
$("#user_username_activity_report").text(username);
$("#user_national_code_activity_report").text(national_code);
if (avatar != null) {
$('#user_image_activity_report').attr('src', `https://rms.rmto.ir/${avatar}`);
$('#edit_user_photo_title').css('display', 'none');
} else {
$('#user_image_activity_report').removeAttr('src');
$('#edit_user_photo_title').css('display', '');
}
$.ajax({
url: "https://rms.rmto.ir/users/summary_report/" + row.data().id,
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
console.log(result);
$("#activity_time").text(result.activity_time);
$("#average_activity_time").text(result.average_activity_time);
$("#number_of_activities").text(result.number_of_activities);
$("#average_activity_number").text(result.average_activity_number);
if (result.number_of_active_days == -1) {
$("#number_of_active_days").text(0);
} else {
$("#number_of_active_days").text(result.number_of_active_days);
}
if (result.last_login == null) {
$("#last_login").text("هرگز به سایت ورود نشده است.");
} else {
$("#last_login").text(moment(result.last_login).locale('fa').format('HH:mm || YYYY/MM/DD'));
}
modal.modal('show');
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
})
$(document).on('click', '.permission-control', function () {
const modal = $('#modal_permission')
var tr = $(this).closest("tr");
var row = table.row(tr);
modal.find('.permission-input').prop('checked', false)
modal.find('.all-permission-by-type').prop('checked', false)
modal.find('#user_id').val(row.data().id)
$.ajax({
url: "https://rms.rmto.ir/users/" + row.data().id + "/permission",
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
result.data.map(permission => {
modal.find(`.permission-input[value="${permission.name}"]`).prop('checked', true)
})
modal.find('.all-permission-by-type').each((index, element) => {
if (modal.find(`.permission-input[data-type="${$(element).data('type')}"]`).length == modal.find(`.permission-input[data-type="${$(element).data('type')}"]:checked`).length) $(element).prop('checked', true)
})
$.ajax({
url: "https://rms.rmto.ir/show-all-roles",
type: "GET",
beforeSend: function () {
modal.find('#roles_tools').empty()
modal.find('#roles_tools').append(`<option value="-1">انتخاب نقش</option>`)
},
success: function (result) {
result.data.map(item => {
modal.find('#roles_tools').append(`<option value="${item.id}">${item.name_fa}</option>`)
})
modal.find('#roles_tools').val(-1)
modal.modal('show');
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
})
$('.roles-tools').on('change', function () {
const modal = $(this).parents(".modal");
const roleId = $(this).val()
modal.find('.permission-input').prop('checked', false)
modal.find('.all-permission-by-type').prop('checked', false)
if (roleId == -1) return false
$.ajax({
url: "https://rms.rmto.ir/show-role/" + roleId,
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
result.data.permissions.map(permission => {
modal.find(`.permission-input[value="${permission.name}"]`).prop('checked', true)
})
modal.find('.all-permission-by-type').each((index, element) => {
if (modal.find(`.permission-input[data-type="${$(element).data('type')}"]`).length == modal.find(`.permission-input[data-type="${$(element).data('type')}"]:checked`).length) $(element).prop('checked', true)
})
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
})
$('#submit_form_permission').on('click', function () {
const arrPermission = []
const modal = $('#modal_permission')
const userId = modal.find('#user_id').val()
modal.find('.permission-input:checked').map((index, permission) => {
arrPermission.push($(permission).val())
})
let formData = new FormData();
formData.append("permissions", arrPermission);
$.ajax({
url: `https://rms.rmto.ir/users/${userId}/permission`,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
hideLoaderScreen()
modal.modal('hide')
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
modal.modal('hide')
},
});
})
$('#submitForRole').on('click', function () {
const modal = $('#modal_role_form')
let formData = new FormData();
let url;
formData.append("role_name", modal.find('#name_role').val());
modal.find('.permission-input:checked').map((index, permission) => {
formData.append("permissions[]", $(permission).val());
})
switch (modal.data('mode')) {
case 'add':
url = `https://rms.rmto.ir/create-role`
break;
case 'edit':
url = `https://rms.rmto.ir/edit-role/${modal.find('#role_id').val()}`
break;
}
$.ajax({
url: url,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
$.ajax({
url: "https://rms.rmto.ir/show-all-roles",
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
if (result.data.length != 0) {
$("#role_table").dataTable().fnClearTable();
$("#role_table").dataTable().fnAddData(result.data);
} else {
$("#role_table").dataTable().fnClearTable();
}
modal.modal('hide')
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
modal.modal('hide')
},
});
})
$(document).on('click', '.edit-role', function () {
const modal = $('#modal_role_form')
var tr = $(this).closest("tr");
var row = roleTable.row(tr);
modal.find('.modal-title').text('ویرایش نقش')
modal.find('#name_role').val(row.data().name_fa)
modal.find('.permission-input').prop('checked', false)
modal.find('.all-permission-by-type').prop('checked', false)
modal.find('#role_id').val(row.data().id)
modal.data('mode', 'edit')
$.ajax({
url: "https://rms.rmto.ir/show-role/" + row.data().id,
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
result.data.permissions.map(permission => {
modal.find(`.permission-input[value="${permission.name}"]`).prop('checked', true)
})
modal.find('.all-permission-by-type').each((index, element) => {
if (modal.find(`.permission-input[data-type="${$(element).data('type')}"]`).length == modal.find(`.permission-input[data-type="${$(element).data('type')}"]:checked`).length) $(element).prop('checked', true)
})
hideLoaderScreen()
modal.modal('show');
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
})
$(document).on('change', '.permission-input', function () {
const modal = $(this).parents('.modal')
modal.find('.all-permission-by-type').prop('checked', false)
modal.find('.all-permission-by-type').each((index, element) => {
if (modal.find(`.permission-input[data-type="${$(element).data('type')}"]`).length == modal.find(`.permission-input[data-type="${$(element).data('type')}"]:checked`).length) $(element).prop('checked', true)
})
})
$(document).on('click', '.delete-role', function () {
var tr = $(this).closest("tr");
var row = roleTable.row(tr);
Swal.fire({
icon: "warning",
title: "آیا برای حذف مطمئن هستید؟",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "بله، تایید می‌شود",
cancelButtonText: "منصرف شدم!",
showLoaderOnConfirm: true,
preConfirm: () => {
$.ajax({
url: `https://rms.rmto.ir/delete-role/${row.data().id}`,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
$.ajax({
url: "https://rms.rmto.ir/show-all-roles",
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
if (result.data.length != 0) {
$("#role_table").dataTable().fnClearTable();
$("#role_table").dataTable().fnAddData(result.data);
} else {
$("#role_table").dataTable().fnClearTable();
}
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
},
error: function (error) {
errorHandler(error);
},
});
},
});
})
$(document).on('click', '#change_enabled', function () {
var tr = $(this).closest("tr");
var row = table.row(tr);
Swal.fire({
icon: "warning",
title: "آیا برای تغییر وضعیت مطمئن هستید؟",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "بله، تایید می‌شود",
cancelButtonText: "منصرف شدم!",
showLoaderOnConfirm: true,
preConfirm: () => {
$.ajax({
url: `https://rms.rmto.ir/users/change_user_enabeld/${row.data().id}`,
type: "GET",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
tablereload()
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
},
});
},
});
})
$(document).on("change", "#province_office_edit", function () {
$("#esmkarbar").val("");
esmp2 = "";
if ($(this).val() != 0) {
esmp2 = $(this).find("option:selected").text();
$("#esmkarbar").val(`${esmp2} ${esmp1}`);
} else {
$("#cityOffice_edit").val() != 0 ? $("#esmkarbar").val(`${$("#cityOffice_edit").find("option:selected").text()} ${esmp1}`) : $("#esmkarbar").val(`${esmp1}`);
}
});
$(document).on("change", "#cityOffice_edit", function () {
$("#esmkarbar").val("");
esmp3 = "";
if (esmp2 == "") {
esmp3 = $(this).find("option:selected").text();
$("#esmkarbar").val(`${esmp3} ${esmp1}`);
} else {
$("#esmkarbar").val(`${esmp2} ${esmp1}`);
}
if (esmp2 == "" && $(this).val() == 0) { $("#esmkarbar").val(`${esmp1}`) }
});
$("#select_province_filter").change(function () {
getCityByProvince($(this).val(), "select_city_filter")
})
$('.img-input').on('change', function () {
var input = this;
var parent = $(this).parents('.file');
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
parent.find('.img-title').css('display', 'none')
parent.find('.btn-delete-img').prop('disabled', false)
parent.find('.img-preview')
.attr('src', e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
})
$('.btn-delete-img').on('click', function () {
var parent = $(this).parents('.file');
parent.find('.img-input').val('');
parent.find('.img-preview').removeAttr('src');
parent.find('.img-title').css('display', '');
$(this).prop('disabled', true)
})
$("#inputFile1").change(function () {
$("#fileshow").css("display", "none");
readURL2(this);
});
$("#inputFile1karbar").change(function () {
// $("#fileshowkarbar").css("display", "none");
readURL3(this);
});
function readURL3(input) {
$(".remove-imagekarbar").css("display", "block")
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$("#image_upload_previewmostanadkarbar").css("display", "block");
$("#removepic2karbar").css("display", "block");
$("#image_upload_previewmostanadkarbar").attr("src", e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
}
function readURL2(input) {
$(".remove-image").css("display", "block")
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$("#image_upload_previewmostanad").css("display", "block");
$("#removepic2").css("display", "block");
$("#image_upload_previewmostanad").attr("src", e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
}
$(".remove-image").on("click", function () {
$("#image_upload_previewmostanad").attr("src", "#");
$("#image_upload_previewmostanad").css("display", "none");
$("input[name=image_upload_previewmostanad]").val("");
$("#fileshow").css("display", "block")
$(".remove-image").css("display", "none")
})
$(".remove-imagekarbar").on("click", function () {
$("#image_upload_previewmostanadkarbar").attr("src", "#");
$("#image_upload_previewmostanadkarbar").css("display", "none");
$("input[name=image_upload_previewmostanadkarbar]").val("");
// $("#fileshowkarbar").css("display", "block")
$(".remove-imagekarbar").css("display", "none")
})
function tablereload() {
$.ajax({
url: "https://rms.rmto.ir/users",
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
hideLoaderScreen()
$("#user_data_table").dataTable().fnClearTable();
$("#user_data_table").dataTable().fnAddData(result.data);
checkedItemsId = [];
},
});
}
$("#user_data_table").on("click", "button.btnshowper", function () {
$(".show-perm").empty()
var perArray = []
var tr = $(this).closest("tr");
var row = table.row(tr);
for (var i = 0; i < row.data().permissions.length; i++) {
perArray.push(row.data().permissions[i])
}
$("#persmision").modal('show')
for (var i = 0; i < perArray.length; i++) {
$(".show-perm").append(`<li>${perArray[i].name}</li>`)
}
})
$("#user_data_table").on("click", "button.delete_user", function () {
var tr = $(this).closest("tr");
var row = table.row(tr);
global_user_id = row.data().id;
let formData = new FormData();
formData.append("user_ids", global_user_id);
formData.append("_method", "delete");
Swal.fire({
icon: "warning",
title: "آیا برای حذف مطمئن هستید؟",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "بله، تایید می‌شود",
cancelButtonText: "منصرف شدم!",
showLoaderOnConfirm: true,
preConfirm: () => {
$.ajax({
url: "https://rms.rmto.ir/users/delete",
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
tablereload()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
},
});
});
// filter check
$("#btn_filter_show").on("click", function () {
let queryParems = []
const province_office = $('select[name="filter-province-office"]').val()
const province = $('select[name="select-province-filter"]').val()
const city = $('select[name="city-select"]').val()
if (province_office != 0 && province_office != null)
queryParems.push(`province_office=${province_office}`)
if (province != 0)
queryParems.push(`province=${province}`)
if (city != 0 && city != null)
queryParems.push(`city=${city}`)
const url = `https://rms.rmto.ir/users/${queryParems.length != 0 ? `?${queryParems.join('&')}` : ''}`
$.ajax({
url: url,
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
if (result.data.length != 0) {
$("#user_data_table").dataTable().fnClearTable();
$("#user_data_table").dataTable().fnAddData(result.data);
}
else {
$("#user_data_table").dataTable().fnClearTable();
}
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
})
// filter check
$("table").on("click", "tbody tr", function () {
$("tr.selected").find("i").css("color", "");
$("tr.selected").css("color", "");
$("tr.selected").removeClass("selected");
$(this).addClass("selected");
$(this).css("color", "white");
$(this).find("i").css("color", "white");
});
$('#user_data_table').on('change', ".user-finder", function () {
const checkedItemId = $(this).data("idUser");
if ($.inArray(checkedItemId, checkedItemsId) !== -1) {
checkedItemsId = $.grep(checkedItemsId, function (value) {
return value != checkedItemId;
});
}
else {
checkedItemsId.push(checkedItemId);
}
});
$(document).on("click", "#users_edit_cta", function () {
const modal = $(this).parents(".modal");
const thisBtn = $(this);
thisBtn.prop("disabled", true);
modal.find(".modal-select-confirm-users").removeClass("validation-checker");
modal.find(".modal-select-confirm-users").each(function (index) { if ($(this).find("option:selected").val() == -1) $(this).addClass("validation-checker") });
if (modal.find(".validation-checker").length != 0) {
Swal.fire({
icon: "error",
title: "خطا",
text: "لطفا تمامی مقادیر را تکمیل کنید",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
thisBtn.prop("disabled", false);
} else {
const user_ids = checkedItemsId;
const confirm = modal.find("#users_confirmation option:selected").val();
let formData = new FormData();
formData.append("user_ids", user_ids);
formData.append("confirm", confirm);
$.ajax({
url: "https://rms.rmto.ir/users/change_confirmed_status",
type: "POST",
data: formData,
cache: false,
processData: false,
contentType: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
beforeSend: function () {
showLoaderScreen();
},
success: function (result) {
thisBtn.prop('disabled', false);
modal.modal('hide')
$("#modal_choose_group_action").modal("hide");
hideLoaderScreen();
Swal.fire({
icon: "success",
title: "اعمال موفق",
text: "تغییرات بر روی کاربران مورد نظر اعمال شد",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
}).then(result => {
table.ajax.reload(null, false);
checkedItemsId = [];
})
},
error: function (error) {
thisBtn.prop('disabled', false)
$("#modal_choose_group_action").modal("hide");
hideLoaderScreen();
errorHandler(error);
},
});
}
});
// users/change_confirmed_status
// edit userss
$(document).on('click', "#edit_users_group_action", function () {
$(".modal").modal("hide");
const modal = $("#modal_confirm_users");
modal.modal("show");
});
// end edit userss
// show change password
$(document).on('click', ".change_password_show_modal_button", function () {
var tr = $(this).closest("tr");
var row = table.row(tr);
id = row.data().id;
const modal = $("#change_password_modal");
modal.find('#password').val('')
modal.find('#repassword').val('')
modal.find("#password").removeClass("validity-checker");
modal.find("#repassword").removeClass("validity-checker");
modal.find('#change_password_submit_form').data('userId', id)
modal.modal("show");
});
// end show change password
// change password
$(document).on('click', "#change_password_submit_form", function () {
let form_validation_status = true;
const modal = $("#change_password_modal");
const password = modal.find("#password").val();
const repass = modal.find("#repassword").val();
const id = modal.find("#change_password_submit_form").data('userId')
if (password.length < 8) {
modal.find("#password").addClass("validity-checker");
Swal.fire({
icon: "error",
title: "خطا",
text: "رمزعبور باید حداقل 8 کاراکتر باشد!",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
form_validation_status = false;
} else if (password != repass) {
modal.find("#password").addClass("validity-checker");
modal.find("#repassword").addClass("validity-checker");
Swal.fire({
icon: "error",
title: "خطا",
text: "تکرار رمزعبور با رمز عبور مقایرت دارد!",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
form_validation_status = false;
} else {
modal.find("#password").removeClass("validity-checker");
modal.find("#repassword").removeClass("validity-checker");
}
if (form_validation_status) {
let formData = new FormData();
formData.append("password", password);
formData.append("password_confirmation", repass);
$.ajax({
url: `https://rms.rmto.ir/users/change_password/${id}`,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
Swal.fire({
icon: "success",
title: "تغییر رمزعبور",
text: "رمزعبور با موفقیت تغییر کرد!",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
modal.modal('hide')
hideLoaderScreen()
tablereload()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
}
});
// end change password
// group action assign role to users
$(document).on('click', "#assign_role_group_action", function () {
$.ajax({
url: "https://rms.rmto.ir/show-all-roles",
type: "GET",
beforeSend: function () {
$('#assign_role_list_of_roles').empty()
$('#assign_role_list_of_roles').append(`<option value="0">نقش مورد نظر را انتخاب کنید.</option>`)
},
success: function (result) {
result.data.map(item => {
$('#assign_role_list_of_roles').append(`<option value="${item.id}">${item.name_fa}</option>`)
})
$('#assign_role_list_of_roles').val(0)
hideLoaderScreen()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
// $(".modal").modal("hide");
// const modal = $("#modal_assign_role_group_action");
// modal.modal("show");
$("#modal_assign_role_group_action").modal("show");
});
$('#assign_role_group_action_submit').on('click', function () {
const modal = $(this).parents(".modal");
let formData = new FormData();
const thisBtn = $(this);
thisBtn.prop("disabled", true);
// formData.append("role_name", modal.find('#name_role').val());
modal.find('.permission-input:checked').map((index, permission) => {
formData.append("permission_ids[]", $(permission).val());
})
formData.append("user_ids", checkedItemsId);
$.ajax({
url: `https://rms.rmto.ir/users/give_permissions`,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
$.ajax({
url: "https://rms.rmto.ir/show-all-roles",
type: "GET",
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
thisBtn.prop('disabled', false);
// modal.modal('hide')
$(".modal").modal("hide");
Swal.fire({
icon: "success",
title: "اعمال موفق",
text: "تغییرات بر روی کاربران مورد نظر اعمال شد",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
}).then(result => {
table.ajax.reload(null, false);
checkedItemsId = [];
})
hideLoaderScreen()
},
error: function (error) {
thisBtn.prop('disabled', false)
// $("#modal_choose_group_action").modal("hide");
errorHandler(error);
hideLoaderScreen();
},
});
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
modal.modal('hide')
},
});
})
// end group action assign role to users
// delete users
$(document).on('click', '#delete_users_group_action', function () {
const user_ids = checkedItemsId;
let formData = new FormData();
formData.append("user_ids", user_ids);
Swal.fire({
icon: "warning",
title: "آیا برای حذف مطمئن هستید؟",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "بله، حذف می‌شود",
cancelButtonText: "منصرف شدم!",
showLoaderOnConfirm: true,
preConfirm: () => {
showLoaderScreen();
$.ajax({
url: "https://rms.rmto.ir/users/delete",
type: "POST",
data: formData,
cache: false,
contentType: false,
processData: false,
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
beforeSend: function () {
showLoaderScreen();
},
success: function (result) {
table.ajax.reload(null, false);
checkedItemsId = [];
$("#modal_choose_group_action").modal("hide");
hideLoaderScreen();
},
error: function (error) {
hideLoaderScreen();
$("#modal_choose_group_action").modal("hide");
errorHandler(error);
},
});
},
});
});
// end delete users
// begin edit user
$("#user_data_table").on("click", "button.edit_user_show_modal_button", function () {
var tr = $(this).closest("tr");
var row = table.row(tr);
global_user_id = row.data().id;
var city = row.data().city_id;
var cityFaChoose = row.data().city_fa;
var province = row.data().province_id;
var province_fa = row.data().province_fa;
var degree = row.data().degree;
var first_name = row.data().first_name;
var last_name = row.data().last_name;
var mobile = row.data().mobile;
var name = row.data().name;
var avatar = row.data().avatar;
var position = row.data().position;
var edarate_ostani = row.data().edarate_ostani_id;
var edarate_shahri = row.data().edarate_shahri_id;
var username = row.data().username;
var national_code = row.data().national_code;
$("#edit_province").val(Number(province))
$("#edit_province_office").val(edarate_ostani)
$("#edit_city").empty();
$("#edit_city_office").empty();
if (province == null || edarate_ostani != null) {
disableDOM("edit_city");
disableDOM("edit_city_office");
} else {
getCityByProvince(province, "edit_city", city)
getCityOfficeByProvince(province, "edit_city_office", edarate_shahri)
// if (city != null) {
// getCityOfficeByCity(city, "edit_city_office", edarate_shahri)
// }
}
$("#edit_password").val("")
$("#edit_repassword").val("")
$("#edit_user_photo").val('');
if (avatar != null) {
$('#edit_user_photo_preview').attr('src', `https://rms.rmto.ir/${avatar}`);
$('#edit_user_photo_title').css('display', 'none');
} else {
$('#edit_user_photo_preview').removeAttr('src');
$('#edit_user_photo_title').css('display', '');
}
$(".remove-imagekarbar").css("display", "none")
$("#edit_username").val(username)
$("#edit_name").val(name)
$("#edit_first_name").val(first_name)
$("#edit_last_name").val(last_name)
$("#edit_mobile").val(mobile)
$("#edit_degree").val(degree)
$("#edit_major").val(row.data().major);
$("#edit_national_code").val(national_code)
$("#edit_user_modal").modal('show')
});
$("#edit_province").change(function () {
if ($(this).val() == 0 || $(this).val() == -1) {
disableDOM("edit_city")
disableDOM("edit_city_office")
$("#edit_city").empty();
$("#edit_city_office").empty();
} else {
edit_province_office = $("#edit_province_office").val();
if (edit_province_office == 0 || edit_province_office == null) {
enableDOM("edit_city")
enableDOM("edit_city_office")
getCityByProvince($("#edit_province").val(), "edit_city")
getCityOfficeByProvince($("#edit_province").val(), "edit_city_office")
// $("#edit_city_office").empty();
// $("#edit_city_office").append('<option value="0" selected>ابتدا شهر را انتخاب کنید.</option>');
} else {
disableDOM("edit_city")
disableDOM("edit_city_office")
$("#edit_city").empty();
$("#edit_city_office").empty();
}
}
setUserName("edit");
})
$("#edit_province_office").change(function () {
if ($(this).val() != 0) {
disableDOM("edit_city")
disableDOM("edit_city_office")
$("#edit_city").empty();
$("#edit_city_office").empty();
} else {
if ($("#edit_province").val() == 0 || $("#edit_province").val() == -1) {
disableDOM("edit_city")
disableDOM("edit_city_office")
$("#edit_city").empty();
$("#edit_city_office").empty();
} else {
enableDOM("edit_city")
enableDOM("edit_city_office")
getCityByProvince($("#edit_province").val(), "edit_city")
getCityOfficeByProvince($("#edit_province").val(), "edit_city_office")
// $("#edit_city_office").empty();
// $("#edit_city_office").append('<option value="0" selected>ابتدا شهر را انتخاب کنید.</option>');
}
}
setUserName("edit");
})
$("#edit_city_office").change(function () {
console.log("this is ok");
setUserName("edit");
})
$("#edit_submit_form").on("click", function () {
var form_validation_status = true;
var username = $("#edit_username").val();
var password = $("#edit_password").val();
var repass = $("#edit_repassword").val();
var province_id = $("#edit_province").children("option:selected").val();
var edarate_ostani_id = $("#edit_province_office").children("option:selected").val();
var edarate_shahri_id = $("#edit_city_office").children("option:selected").val();
var national_code = $("#edit_national_code").val();
var city_id = $("#edit_city").children("option:selected").val();
var first_name = $("#edit_first_name").val();
var degree = $("#edit_degree").children("option:selected").val();
var last_name = $("#edit_last_name").val();
var major = $("#edit_major").val();
var mobile = $("#edit_mobile").val();
if (edarate_ostani_id <= 0 && edarate_shahri_id <= 0) {
Swal.fire({
icon: "error",
title: "خطا",
text: "حداقل یکی از ادارات استانی یا شهری را انتخاب کنید",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
form_validation_status = false;
}
if (edarate_ostani_id > 0 && edarate_shahri_id > 0) {
Swal.fire({
icon: "error",
title: "خطا",
text: "انتخاب هر دو آیتم ادارات شهری و استانی امکان پذیر نیست",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
form_validation_status = false;
}
if (username.length == 0) {
$("#edit_username").addClass("validity-checker");
form_validation_status = false;
} else {
$("#edit_username").removeClass("validity-checker");
}
if (city_id == 0) {
$("#edit_city").addClass("validity-checker");
form_validation_status = false;
} else {
$("#edit_city").removeClass("validity-checker");
}
if (province_id < 0) {
$("#edit_province").addClass("validity-checker");
form_validation_status = false;
} else {
$("#edit_province").removeClass("validity-checker");
}
if ((password != repass) && (password.length > 0)) {
$("#edit_password").addClass("validity-checker");
$("#edit_repassword").addClass("validity-checker");
form_validation_status = false;
} else {
$("#edit_password").removeClass("validity-checker");
$("#edit_repassword").removeClass("validity-checker");
}
// if (!checkNationalCode(national_code)) {
// $("#edit_national_code").addClass("validity-checker");
// form_validation_status = false;
// } else {
// $("#edit_national_code").removeClass("validity-checker");
// }
if (form_validation_status) {
let formData = new FormData();
formData.append("_method", "put");
formData.append("username", username);
formData.append("password", password);
formData.append("province_id", province_id);
if (city_id == undefined) {
formData.append("city_id", 0);
} else {
formData.append("city_id", city_id);
}
formData.append("password_confirmation", repass);
if (edarate_ostani_id != 0 && edarate_ostani_id != undefined) {
formData.append("edarate_ostani_id", edarate_ostani_id);
formData.append("edarate_shahri_id", null);
} else {
formData.append("edarate_ostani_id", null);
formData.append("edarate_shahri_id", edarate_shahri_id);
}
formData.append("first_name", first_name);
formData.append("last_name", last_name);
formData.append("mobile", mobile);
if (degree != undefined) {
formData.append("degree", degree);
}
// formData.append("degree", degree);
formData.append("major", major);
formData.append("national_code", national_code);
if ($("#edit_user_photo")[0].files[0] != undefined) {
formData.append("avatar", $("#edit_user_photo")[0].files[0]);
}
$.ajax({
url: "https://rms.rmto.ir/users/" + global_user_id,
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
$("#edit_user_modal").modal('hide')
hideLoaderScreen()
tablereload()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
}
})
// end edit user
//begin add user
$("#add_user_show_modal_button").on("click", function () {
$("#add_province").val(-1)
$("#add_province_office").val(0)
enableDOM("add_city")
$("#add_city").empty();
$("#add_city").append('<option value="0" >ابتدا استان را انتخاب کنید</option>');
enableDOM("add_city_office")
$("#add_city_office").empty();
$("#add_city_office").append('<option value="0" selected>ابتدا شهر را انتخاب کنید</option>');
$("#add_username").val("")
setUserName();
$("#add_national_code").val("");
$("#add_last_name").val("")
$("#add_first_name").val("")
$("#add_mobile").val("09")
$("#add_major").val("")
$("#add_degree").val("")
$("#add_password").val("")
$("#add_repassword").val("")
$("#add_user_photo").val('');
$('#add_user_photo_preview').removeAttr('src');
$('#add_user_photo_title').css('display', '');
$('#add_user_photo_delete').prop('disabled', true)
$("#fileshow").css("display", "block")
$(".remove-image").css("display", "none")
$("#add_user_modal").modal('show')
})
$("#add_province").change(function () {
if ($(this).val() == 0 || $(this).val() == -1) {
disableDOM("add_city")
disableDOM("add_city_office")
$("#add_city").empty();
$("#add_city_office").empty();
} else {
if ($("#add_province_office").val() == 0) {
enableDOM("add_city")
enableDOM("add_city_office")
getCityByProvince($("#add_province").val(), "add_city")
getCityOfficeByProvince($("#add_province").val(), "add_city_office")
// $("#add_city_office").empty();
// $("#add_city_office").append('<option value="0" selected>ابتدا شهر را انتخاب کنید.</option>');
} else {
disableDOM("add_city")
disableDOM("add_city_office")
$("#add_city").empty();
$("#add_city_office").empty();
}
}
setUserName();
})
$("#add_province_office").change(function () {
if ($(this).val() != 0) {
disableDOM("add_city")
disableDOM("add_city_office")
$("#add_city").empty();
$("#add_city_office").empty();
} else {
if ($("#add_province").val() == 0 || $("#add_province").val() == -1) {
disableDOM("add_city")
disableDOM("add_city_office")
$("#add_city").empty();
$("#add_city_office").empty();
} else {
enableDOM("add_city")
enableDOM("add_city_office")
getCityByProvince($("#add_province").val(), "add_city")
getCityOfficeByProvince($("#add_province").val(), "add_city_office")
// $("#add_city_office").empty();
// $("#add_city_office").append('<option value="0" selected>ابتدا شهر را انتخاب کنید.</option>');
}
}
setUserName();
})
// $("#edit_city").change(function () {
// if ($(this).val() == 0) {
// $("#edit_city_office").empty();
// } else {
// getCityOfficeByCity($(this).val(), "edit_city_office")
// }
// setUserName("edit");
// })
// $("#add_simple_city").change(function () {
// if ($(this).val() == 0) {
// $("#add_simple_city_office").empty();
// } else {
// getCityOfficeByCity($(this).val(), "add_simple_city_office")
// }
// setUserName();
// })
// $("#add_city").change(function () {
// if ($(this).val() == 0) {
// $("#add_city_office").empty();
// } else {
// getCityOfficeByCity($(this).val(), "add_city_office")
// }
// setUserName();
// })
$("#add_city_office").change(function () {
setUserName();
})
$("#add_submit_form").on("click", function () {
var form_validation_status = true;
var username = $("#add_username").val();
var password = $("#add_password").val();
var repass = $("#add_repassword").val();
var province_id = $("#add_province").children("option:selected").val();
var edarate_ostani_id = $("#add_province_office").children("option:selected").val();
var edarate_shahri_id = $("#add_city_office").children("option:selected").val();
var national_code = $("#add_national_code").val();
var city_id = $("#add_city").children("option:selected").val();
var first_name = $("#add_first_name").val();
var degree = $("#add_degree").children("option:selected").val();
var last_name = $("#add_last_name").val();
var major = $("#add_major").val();
var mobile = $("#add_mobile").val();
if (edarate_ostani_id <= 0 && edarate_shahri_id <= 0) {
Swal.fire({
icon: "error",
title: "خطا",
text: "حداقل یکی از ادارات استانی یا شهری را انتخاب کنید",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
form_validation_status = false;
}
if (edarate_ostani_id > 0 && edarate_shahri_id > 0) {
Swal.fire({
icon: "error",
title: "خطا",
text: "انتخاب هر دو آیتم ادارات شهری و استانی امکان پذیر نیست",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
form_validation_status = false;
}
if (username.length == 0) {
$("#add_username").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_username").removeClass("validity-checker");
}
if (city_id == 0) {
$("#add_city").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_city").removeClass("validity-checker");
}
if (province_id < 0) {
$("#add_province").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_province").removeClass("validity-checker");
}
if ((password != repass) || (password.length == 0)) {
$("#add_password").addClass("validity-checker");
$("#add_repassword").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_password").removeClass("validity-checker");
$("#add_repassword").removeClass("validity-checker");
}
if (!checkNationalCode(national_code)) {
$("#add_national_code").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_national_code").removeClass("validity-checker");
}
if (form_validation_status) {
let formData = new FormData();
formData.append("username", username);
formData.append("password", password);
formData.append("province_id", province_id);
if (city_id == undefined) {
formData.append("city_id", 0);
} else {
formData.append("city_id", city_id);
}
formData.append("password_confirmation", repass);
if (edarate_ostani_id != 0) {
formData.append("edarate_ostani_id", edarate_ostani_id);
formData.append("edarate_shahri_id", null);
} else {
formData.append("edarate_ostani_id", null);
formData.append("edarate_shahri_id", edarate_shahri_id);
}
formData.append("first_name", first_name);
formData.append("last_name", last_name);
formData.append("mobile", mobile);
formData.append("degree", degree);
formData.append("national_code", national_code);
formData.append("major", major);
if ($("#add_user_photo")[0].files[0] != undefined) {
formData.append("avatar", $("#add_user_photo")[0].files[0]);
}
$.ajax({
url: "https://rms.rmto.ir/users",
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
$("#add_user_modal").modal('hide')
hideLoaderScreen()
tablereload()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
}
})
//end add user
// begin add simple user
$('#add_simple_user_show_modal').on('click', function () {
$("#add_simple_province").val(-1)
$("#add_simple_province_office").val(0)
$("#add_simple_username").val("")
$("#add_simple_password").val("")
$("#add_simple_repassword").val("")
enableDOM("add_simple_city")
$("#add_simple_city").empty();
$("#add_simple_city").append('<option value="0" selected disabled>ابتدا استان را انتخاب کنید</option>');
enableDOM("add_simple_city_office")
$("#add_simple_city_office").empty();
$("#add_simple_city_office").append('<option value="0" selected disabled></option>');
$("#add_simple_national_code").val("")
$("#modal_add_simple_user").modal('show')
})
$("#add_simple_province").change(function () {
if ($(this).val() == 0 || $(this).val() == -1) {
disableDOM("add_simple_city")
disableDOM("add_simple_city_office")
$("#add_simple_city").empty();
$("#add_simple_city_office").empty();
} else {
if ($("#add_simple_province_office").val() == 0) {
enableDOM("add_simple_city")
enableDOM("add_simple_city_office")
getCityByProvince($("#add_simple_province").val(), "add_simple_city")
getCityOfficeByProvince($("#add_simple_province").val(), "add_simple_city_office")
// $("#add_simple_city_office").empty();
// $("#add_simple_city_office").append('<option value="0" selected>ابتدا شهر را انتخاب کنید.</option>');
} else {
disableDOM("add_simple_city")
disableDOM("add_simple_city_office")
$("#add_simple_city").empty();
$("#add_simple_city_office").empty();
}
}
})
$("#add_simple_province_office").change(function () {
if ($(this).val() != 0) {
disableDOM("add_simple_city")
disableDOM("add_simple_city_office")
$("#add_simple_city").empty();
$("#add_simple_city_office").empty();
} else {
if ($("#add_simple_province").val() == 0 || $("#add_simple_province").val() == -1) {
disableDOM("add_simple_city")
disableDOM("add_simple_city_office")
$("#add_simple_city").empty();
$("#add_simple_city_office").empty();
} else {
enableDOM("add_simple_city")
enableDOM("add_simple_city_office")
getCityByProvince($("#add_simple_province").val(), "add_simple_city")
getCityOfficeByProvince($("#add_simple_province").val(), "add_simple_city_office")
// $("#add_simple_city_office").empty();
// $("#add_simple_city_office").append('<option value="0" selected>ابتدا شهر را انتخاب کنید.</option>');
}
}
})
$("#add_simple_submit_form").on("click", function () {
var form_validation_status = true;
var username = $("#add_simple_username").val();
var password = $("#add_simple_password").val();
var repass = $("#add_simple_repassword").val();
var province_id = $("#add_simple_province").children("option:selected").val();
var edarate_ostani_id = $("#add_simple_province_office").children("option:selected").val();
var edarate_shahri_id = $("#add_simple_city_office").children("option:selected").val();
var national_code = $("#add_simple_national_code").val();
var city_id = $("#add_simple_city").children("option:selected").val();
if (edarate_ostani_id <= 0 && edarate_shahri_id <= 0) {
Swal.fire({
icon: "error",
title: "خطا",
text: "حداقل یکی از ادارات استانی یا شهری را انتخاب کنید",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
form_validation_status = false;
}
if (edarate_ostani_id > 0 && edarate_shahri_id > 0) {
Swal.fire({
icon: "error",
title: "خطا",
text: "انتخاب هر دو آیتم ادارات شهری و استانی امکان پذیر نیست",
cancelButtonText: "بستن",
showConfirmButton: false,
showCancelButton: true,
});
form_validation_status = false;
}
if (username.length == 0) {
$("#add_simple_username").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_simple_username").removeClass("validity-checker");
}
if (city_id == 0) {
$("#add_simple_city").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_simple_city").removeClass("validity-checker");
}
if (province_id < 0) {
$("#add_simple_province").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_simple_province").removeClass("validity-checker");
}
if ((password != repass) || (password.length == 0)) {
$("#add_simple_password").addClass("validity-checker");
$("#add_simple_repassword").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_simple_password").removeClass("validity-checker");
$("#add_simple_repassword").removeClass("validity-checker");
}
if (!checkNationalCode(national_code)) {
$("#add_simple_national_code").addClass("validity-checker");
form_validation_status = false;
} else {
$("#add_simple_national_code").removeClass("validity-checker");
}
if (form_validation_status) {
let formData = new FormData();
formData.append("username", username);
formData.append("password", password);
formData.append("province_id", province_id);
if (city_id == undefined) {
formData.append("city_id", 0);
} else {
formData.append("city_id", city_id);
}
formData.append("password_confirmation", repass);
if (edarate_ostani_id != 0) {
formData.append("edarate_ostani_id", edarate_ostani_id);
formData.append("edarate_shahri_id", null);
} else {
formData.append("edarate_ostani_id", null);
formData.append("edarate_shahri_id", edarate_shahri_id);
}
formData.append("national_code", national_code);
$.ajax({
url: "https://rms.rmto.ir/add-simple-users",
type: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
showLoaderScreen()
},
success: function (result) {
$("#modal_add_simple_user").modal('hide')
hideLoaderScreen()
tablereload()
},
error: function (error) {
errorHandler(error);
hideLoaderScreen()
},
});
}
});
// end add simple user