502 lines
19 KiB
JavaScript
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);
|
|
// }
|
|
// });
|
|
//}
|