hcornet 506716e703
Some checks failed
Deployment Verification / deploy-and-test (push) Failing after 29s
first sync
2025-03-04 07:59:21 +01:00

240 lines
6.9 KiB
JavaScript

/*************************
* Case creation section
*************************/
/* create the select picker for customer */
$('#case_customer').selectpicker({
liveSearch: true,
title: "Select customer *",
style: "btn-outline-white",
size: 8
});
$('#case_template_id').selectpicker({
liveSearch: true,
title: "Select case template",
style: "btn-outline-white",
size: 8
});
$('#case_template_id').prepend(new Option('', ''));
$('#classification_id').selectpicker({
liveSearch: true,
title: "Select classification",
style: "btn-outline-white",
size: 8
});
$('#classification_id').prepend(new Option('', ''));
/* Submit event handler for new case */
function submit_new_case() {
if(!$('form#form_new_case').valid()) {
return false;
}
var data_sent = $('form#form_new_case').serializeObject();
ret = get_custom_attributes_fields();
has_error = ret[0].length > 0;
attributes = ret[1];
if (has_error){return false;}
data_sent['custom_attributes'] = attributes;
send_add_case(data_sent);
return false;
};
function send_add_case(data_sent) {
post_request_api('/manage/cases/add', JSON.stringify(data_sent), true, function () {
$('#submit_new_case_btn').text('Checking data..')
.attr("disabled", true)
.removeClass('bt-outline-success')
.addClass('btn-success', 'text-dark');
})
.done((data) => {
if (notify_auto_api(data, true)) {
case_id = data.data.case_id;
swal("That's done !",
"Case has been successfully created",
"success",
{
buttons: {
again: {
text: "Create a case again",
value: "again",
dangerMode: true,
color: '#d33'
},
dash: {
text: "Go to dashboard",
value: "dash",
color: '#d33'
},
go_case: {
text: "Switch to newly created case",
value: "go_case"
}
}
}
).then((value) => {
switch (value) {
case "dash":
window.location.replace("/dashboard" + case_param());
break;
case "again":
window.location.replace("/manage/cases" + case_param());
break;
case 'go_case':
window.location.replace("/case?cid=" + case_id);
default:
window.location.replace("/case?cid=" + case_id);
}
});
}
})
.always(() => {
$('#submit_new_case_btn')
.attr("disabled", false)
.addClass('bt-outline-success')
.removeClass('btn-success', 'text-dark');
})
.fail(() => {
$('#submit_new_case_btn').text('Save');
})
}
/*************************
* Case list section
*************************/
/* case table creation */
$.each($.find("table"), function(index, element){
addFilterFields($(element).attr("id"));
});
$('#cases_table').dataTable({
"ajax": {
"url": "cases/list" + case_param(),
"contentType": "application/json",
"type": "GET",
"data": function (d) {
if (d.status == 'success') {
return JSON.stringify(d.data);
} else {
return [];
}
}
},
"columns": [
{
"render": function (data, type, row) {
data = sanitizeHTML(data);
return '<a href="#" onclick="case_detail(\'' + row['case_id'] + '\');">' + data + '</a>';
},
"data": "case_name"
},
{
"data": "case_description",
"render": function (data, type, row) {
if (type === 'display' && data != null) {
if (row["case_description"].length > 50){
return sanitizeHTML(row["case_description"].slice(0,50)) + " ... " ;
}
else {
return sanitizeHTML(row["case_description"]);
}
}
return data;
},
},
{
"data": "client_name",
"render": function (data, type, row, meta) {
if (type === 'display') { data = sanitizeHTML(data);}
return data;
}
},
{
"data": "state_name",
"render": function (data, type, row, meta) {
if (type === 'display') { data = sanitizeHTML(data);}
return data;
}
},
{
"data": "case_open_date",
"render": function (data, type, row, meta) {
if (type === 'display') { data = sanitizeHTML(data);}
return data;
},
"type": "date"
},
{
"data": "case_close_date",
"type": "date",
"render": function (data, type, row, meta) {
if (type === 'display') { data = sanitizeHTML(data);}
return data;
}
},
{
"data": "case_soc_id",
"render": function (data, type, row, meta) {
if (type === 'display') { data = sanitizeHTML(data);}
return data;
}
},
{
"data": "opened_by",
"render": function (data, type, row, meta) {
if (type === 'display') { data = sanitizeHTML(data);}
return data;
}
}
],
dom: '<"container-fluid"<"row"<"col"l><"col"f>>>rt<"container-fluid"<"row"<"col"i><"col"p>>>',
filter: true,
info: true,
ordering: true,
processing: true,
retrieve: true,
lengthChange: true,
pageLength: 25,
select: true,
sort: true,
responsive: {
details: {
display: $.fn.dataTable.Responsive.display.childRow,
renderer: $.fn.dataTable.Responsive.renderer.tableAll()
}
},
initComplete: function () {
tableFiltering(this.api(), 'cases_table');
}
}
);
$(document).ready(function() {
if ($('.nav-tabs').length > 0) { // if .nav-tabs exists
var hashtag = window.location.hash;
if (hashtag!='') {
$('.nav-item > a').removeClass('active').removeClass('show');
$('.nav-item > a[href="'+hashtag+'"]').addClass('active');
$('.nav-item > a[href="'+hashtag+'"]').addClass('show');
$('.tab-content > div').removeClass('active');
$(hashtag).addClass('active'); $(hashtag).addClass('show');
}
}
});