2672 lines
93 KiB
JavaScript
2672 lines
93 KiB
JavaScript
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
|