Files
Backend-Api/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/OperationRequestModal.js

502 lines
19 KiB
JavaScript

$(document).ready(function () {
if (btnAllRequestActive) {
var firstButton = $('#btnAssignList').first();
var firstDataId = firstButton.data('id');
setTimeout(function() {
loadChatMessageRequest(Number(firstDataId));
}, 1000);
} else {
setTimeout(function () {
loadAllRequest();
}, 1000);
}
$('.btnAssignList').click(function () {
$('.btnAssignList').removeClass('active');
$(this).addClass('active');
});
$('textarea[id^="Description_"]').on('input', function () {
$(this).removeClass('error-valid');
});
//showAllRequestAction();
});
$(".date").on('input', function () {
var value = $(this).val();
$(this).val(convertPersianNumbersToEnglish(value));
}).mask("0000/00/00");
function showAllRequestAction() {
//$('.admincardActionSection').css('position', 'sticky');
$('#AssignTaskName').text(`کل درخواست‌ها`);
$('#ajaxChatSection').html('');
$('.admincardActionSection').addClass('position-relative');
$('.admincardAction').show();
loadAllRequest();
}
function loadAllRequest() {
$('#LoadingCard').show();
$('#ajaxChatSection').html('');
var html = '';
$.ajax({
async: false,
contentType: 'charset=utf-8',
dataType: 'json',
type: 'GET',
url: loadOperationRequestTaskDetailsAjax,
data: { 'taskId': taskId },
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
success: function(response) {
var assignViewModels = response.data.assignViewModels;
//var taskDetailsData = response.taskDetailsData;
html += `<div class="admincardActionSection position-relative">`;
if (assignViewModels.length > 0) {
assignViewModels.forEach(function(taskDetailsData) {
var typeMessage = "";
var color = "";
if (taskDetailsData.isCanceledRequest) {
typeMessage = "درخواست انصراف ";
color = "red";
} else if (taskDetailsData.timeRequest) {
typeMessage = "درخواست مهلت ";
color = "orange";
} else if (taskDetailsData.isDoneRequest) {
typeMessage = "درخواست انجام شد ";
color = "green";
}
html += `
<div class="admincardAction ${color}" id="Assign_${taskDetailsData.id}">
<div class="row">
<div class="${taskDetailsData.timeRequest ? `col-6` : `col-9`}">
<p class="mb-1 m-0">${taskDetailsData.assignedName} ${typeMessage} از وظیفه داده است.</p>
</div>`;
if (taskDetailsData.timeRequest) {
html += `<div class="col-3">
<p class="mb-1 m-0 text-center">به تاریخ: ${taskDetailsData.requestDateFa}</p>
</div>`;
}
html += `</div>
<div class="row align-items-center">
<div class="${taskDetailsData.timeRequest ? `col-6` : `col-9`} pe-1">
<textarea class="form-control" id="Description_${taskDetailsData.assignedId}" placeholder="توضیحات" style="height: 40px; resize: none"></textarea>
</div>`;
if (taskDetailsData.timeRequest) {
html += `<div class="col-3 px-0">
<input type="text" id="dateTime_${taskDetailsData.assignedId}" class="form-control text-center date" placeholder="تاریخ" style="height: 40px;"/>
</div>`;
}
html += `<div class="col-3 mt-1 ps-1">
<div class="btn-section gap-1">`;
var onclickReject = '';
var onclickAccept = '';
if (taskDetailsData.isCanceledRequest) {
onclickReject = `handleRejectCancel(${taskDetailsData.assignedId},${taskDetailsData.id})`;
onclickAccept = `handleAcceptCancel(${taskDetailsData.assignedId},${taskDetailsData.id})`;
}
else if (taskDetailsData.timeRequest) {
onclickReject = `handleRejectTimeRequest(${taskDetailsData.assignedId},${taskDetailsData.id})`;
onclickAccept = `handleAcceptTimeRequest(${taskDetailsData.assignedId},${taskDetailsData.id})`;
}
else if (taskDetailsData.isDoneRequest) {
onclickReject = `handleRejectComplete(${taskDetailsData.assignedId},${taskDetailsData.id})`;
onclickAccept = `handleAcceptComplete(${taskDetailsData.assignedId},${taskDetailsData.id})`;
}
html += `<button type="button" class="btn-submit" onclick="${onclickAccept}">تایید</button>
<button type="button" class="btn-reject" onclick="${onclickReject}">عدم تایید</button>
</div>
</div>
</div>
</div>`;
});
}
html += `</div>`;
$('#LoadingCard').hide();
$('#ajaxChatSection').append(html);
}
});
}
function loadChatMessageRequest(id) {
$('#LoadingCard').show();
//$('.admincardActionSection').css('position', 'absolute');
$('#AssignTaskName').text($(`#AssignedName_${id}`).text());
$('#ajaxChatSection').html('');
$('.admincardAction').hide();
$('.admincardActionSection').removeClass('position-relative');
$(`#Assign_${id}`).show();
var html = '';
$.ajax({
async: false,
contentType: 'charset=utf-8',
dataType: 'json',
type: 'GET',
url: `${loadChatMessageAjax}`,
data: { 'assignId': Number(id), 'taskId': taskId },
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
success: function (response) {
$.each(response.data, function (i, item) {
var color = "";
var textType = "";
switch (item.typeOfMessage) {
case "درخواست مهلت":
color = "orange";
break;
case "درخواست کنسل":
color = "red";
break;
case "درخواست انجام":
color = "green";
break;
case "تایید درخواست مهلت":
color = "accept";
textType = "تایید";
break;
case "رد درخواست مهلت":
color = "reject";
textType = "رد";
break;
case "تایید درخواست کنسل":
color = "accept";
textType = "تایید";
break;
case "رد درخواست کنسل":
color = "reject";
textType = "رد";
break;
case "تایید درخواست انجام":
color = "accept";
textType = "تایید";
break;
case "رد درخواست انجام":
color = "reject";
textType = "رد";
break;
default:
color = "";
}
if (Number(UserId) === item.receiverId) {
html += `
<div class="chat-card-receiver ${color}">
<h6 class="m-0" style="${Number(UserId) === item.receiverId ? 'padding:0 20px 0 0;' : ''}">
${item.senderName}
</h6>
<p class="m-0 mt-2" style="word-break: break-word; ${Number(UserId) === item.receiverId ? 'padding:0 20px 0 0;' : ''}">
${item.message}
</p>
<p class="date-time pt-3 m-0" style="word-break: break-word; ${Number(UserId) === item.receiverId ? 'padding:0 20px 0 0;' : ''}">${item.creationDate}</p>`;
if (response.data.length === i + 1) {
html += `<div class="admincardActionSection position-relative">`;
var taskDetailsData = response.taskDetailsData;
if (taskDetailsData != null) {
var typeMessage = "";
var color = "";
if (taskDetailsData.isCanceledRequest) {
typeMessage = "درخواست انصراف ";
color = "#F87171";
} else if (taskDetailsData.timeRequest) {
typeMessage = "درخواست مهلت ";
color = "#FBBF24";
} else if (taskDetailsData.isDoneRequest) {
typeMessage = "درخواست انجام شد ";
color = "#84CC16";
}
html += `<div class="admincardAction" style="background: transparent; border: none;margin: 5px 12px 0 -6px;border-top: 1px solid ${color};border-radius: 0; padding: 7px 7px 3px;" id="Assign_${taskDetailsData.id}">
${taskDetailsData.timeRequest ?
`<div class="requestDateShow">
تاریخ درخواست : ${taskDetailsData.requestDateFa}
</div>`
:
``
}
<div class="row align-items-center mt-1">
<div class="col-8 pe-1">
<textarea class="form-control" id="Description_${taskDetailsData.assignedId}" placeholder="توضیحات" style="height: ${taskDetailsData.timeRequest ? `53px` : `40px`}; resize: none"></textarea>
</div>`;
html += `<div class="col-4 mt-1 ps-1">`;
if (taskDetailsData.timeRequest) {
html += `<div class="px-0">
<input type="text" id="dateTime_${taskDetailsData.assignedId}" class="form-control text-center date mb-1" style="height: 25px;" placeholder="تاریخ" />
</div>`;
}
html += `<div class="btn-section gap-1">`;
var onclickReject = '';
var onclickAccept = '';
if (taskDetailsData.isCanceledRequest) {
onclickReject = `handleRejectCancel(${taskDetailsData.assignedId},${taskDetailsData.id})`;
onclickAccept = `handleAcceptCancel(${taskDetailsData.assignedId},${taskDetailsData.id})`;
}
else if (taskDetailsData.timeRequest) {
onclickReject = `handleRejectTimeRequest(${taskDetailsData.assignedId},${taskDetailsData.id})`;
onclickAccept = `handleAcceptTimeRequest(${taskDetailsData.assignedId},${taskDetailsData.id})`;
}
else if (taskDetailsData.isDoneRequest) {
onclickReject = `handleRejectComplete(${taskDetailsData.assignedId},${taskDetailsData.id})`;
onclickAccept = `handleAcceptComplete(${taskDetailsData.assignedId},${taskDetailsData.id})`;
}
html += `<button type="button" class="btn-submit" onclick="${onclickAccept}" style="height: 24px;">تایید</button>
<button type="button" class="btn-reject" onclick="${onclickReject}" style="height: 24px;">عدم تایید</button>
</div>
</div>
</div>
</div>`;
}
html += `</div>`;
}
html += `<div class="chat-tag" style="${Number(UserId) === item.receiverId ? 'right: 0;left: auto;' : ''}">
<span>
${item.typeOfMessage}
</span>
</div>
</div>
`;
} else {
html += `
<div class="chat-card-sender ${color}">
<p class="m-0 mt-4" style="word-break: break-word;">
${item.message}
</p>
<p class="date-time pt-3 m-0">${item.creationDate}</p>
<div class="chat-tag">
<span>
${item.typeOfMessage}
</span>
</div>
</div>
`;
}
});
$('#LoadingCard').hide();
$('#ajaxChatSection').append(html);
$('.date').each(function () {
var value = $(this).val();
$(this).val(convertPersianNumbersToEnglish(value));
$(this).mask("0000/00/00");
});
},
failure: function (response) {
console.log(5, response);
}
});
}
function handleRejectCancel(id, assignId) {
var descriptionValue = $(`#Description_${id}`).val();
if (!descriptionValue) {
checkValidation(id);
return;
}
var dataSave = {
'taskId': taskId,
'assignedId': id,
'message': descriptionValue
};
saveRequestAjax(RejectCancel, dataSave, assignId);
}
function handleAcceptCancel(id, assignId) {
var dataSave = {
'taskId': taskId,
'assignedId': id,
'message': $(`#Description_${id}`).val()
};
saveRequestAjax(AcceptCancel, dataSave, assignId);
}
function handleRejectComplete(id, assignId) {
var descriptionValue = $(`#Description_${id}`).val();
if (!descriptionValue) {
checkValidation(id);
return;
}
var dataSave = {
'taskId': taskId,
'assignedId': id,
'message': descriptionValue
};
saveRequestAjax(RejectComplete, dataSave, assignId);
}
function handleAcceptComplete(id, assignId) {
var dataSave = {
'taskId': taskId,
'assignedId': id,
'message': $(`#Description_${id}`).val()
};
saveRequestAjax(AcceptComplete, dataSave, assignId);
}
function handleRejectTimeRequest(id, assignId) {
var descriptionValue = $(`#Description_${id}`).val();
if (!descriptionValue) {
checkValidation(id);
return;
}
var dataSave = {
'taskId': taskId,
'assignedId': id,
'message': descriptionValue
};
saveRequestAjax(RejectTimeRequest, dataSave, assignId);
}
function handleAcceptTimeRequest(id, assignId) {
var dataSave = {};
var timeValue = $(`#dateTime_${id}`).val();
if (timeValue) {
dataSave = {
'time': timeValue,
'taskId': taskId,
'assignedId': id,
'message': $(`#Description_${id}`).val()
};
saveRequestAjax(changeTime, dataSave, assignId);
} else {
dataSave = {
'taskId': taskId,
'assignedId': id,
'message': $(`#Description_${id}`).val()
};
saveRequestAjax(AcceptTimeRequest, dataSave, assignId);
}
}
function checkValidation(id) {
$(`#Description_${id}`).addClass('error-valid');
$('.alert-msg').show();
$('.alert-msg p').text("توضیحات اجباری است.");
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 2000);
return;
}
function saveRequestAjax(url, data, assignId) {
$.ajax({
async: false,
dataType: 'json',
type: 'POST',
url: `${url}`,
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
data: data,
success: function (response) {
if (response.isSuccess) {
$('.alert-success-msg').show();
$('.alert-success-msg p').text(response.message);
setTimeout(function () {
$('.alert-success-msg').hide();
$('.alert-success-msg p').text('');
}, 1500);
//loadRequestCount();
loadTicketAndRequestCount();
var countAssign = CountAssignViewModel - 1;
$(`#Assign_${assignId}`).remove();
$('[data-id="' + assignId + '"]').remove();
if (countAssign === 1) {
$('#assignsSection').addClass('d-none');
$('#chatSection').addClass('col-12 col-md-12');
var firstButton = $('#btnAssignList').first();
var firstDataId = firstButton.data('id');
setTimeout(function() {
loadChatMessageRequest(Number(firstDataId));
},
1000);
}
else if (countAssign === 0) {
/*window.location.reload();*/
$('#MainModal').modal('toggle');
//$('#btnTaskRequest').click();
$(`.section-btns-task button.active`).click();
//loadRequestCount();
}
else if (countAssign > 1) {
$('.btnAssignList.blue').addClass('active');
showAllRequestAction();
}
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 2000);
}
CountAssignViewModel = countAssign;
},
error: function (err) {
console.log(err);
}
});
}
//function loadRequestCount() {
// $.ajax({
// async: false,
// dataType: 'json',
// type: 'GET',
// url: `${loadRequestCountAjax}`,
// headers: { "RequestVerificationToken": `${antiForgeryToken}` },
// success: function (response) {
// $('#badgeRequestCount').text(response.result);
// },
// error: function (err) {
// console.log(err);
// }
// });
//}