soc-fortress/iris-web/source/app/static/assets/js/iris/manage.case.templates.js
hcornet 506716e703
Some checks failed
Deployment Verification / deploy-and-test (push) Failing after 29s
first sync
2025-03-04 07:59:21 +01:00

336 lines
12 KiB
JavaScript

function add_case_template() {
let url = '/manage/case-templates/add/modal' + case_param();
$('#modal_case_template_json').load(url, function (response, status, xhr) {
if (status !== "success") {
ajax_notify_error(xhr, url);
return false;
}
let editor = ace.edit("editor_detail",
{
autoScrollEditorIntoView: true,
minLines: 30,
});
editor.setTheme("ace/theme/tomorrow");
editor.session.setMode("ace/mode/json");
editor.renderer.setShowGutter(true);
editor.setOption("showLineNumbers", true);
editor.setOption("showPrintMargin", false);
editor.setOption("displayIndentGuides", true);
editor.setOption("maxLines", "Infinity");
editor.session.setUseWrapMode(true);
editor.setOption("indentedSoftWrap", true);
editor.renderer.setScrollMargin(8, 5)
editor.setOptions({
enableBasicAutocompletion: [{
getCompletions: (editor, session, pos, prefix, callback) => {
callback(null, [
{value: 'name', score: 1, meta: 'name of the template'},
{value: 'display', score: 1, meta: 'display name of the template'},
{value: 'description', score: 1, meta: 'description of the template'},
{value: 'author', score: 1, meta: 'author of the template'},
{value: 'title_prefix', score: 1, meta: 'prefix of instantiated cases'},
{value: 'summary', score: 1, meta: 'summary of the case'},
{value: 'tags', score: 1, meta: 'tags of the case or the tasks'},
{value: 'tasks', score: 1, meta: 'tasks of the case'},
{value: 'note_groups', score: 1, meta: 'groups of notes'},
{value: 'title', score: 1, meta: 'title of the task or the note group or the note'},
{value: 'content', score: 1, meta: 'content of the note'},
]);
},
}],
enableLiveAutocompletion: true,
enableSnippets: true
});
$('#submit_new_case_template').on("click", function () {
let data_sent = Object();
data_sent['case_template_json'] = editor.getSession().getValue();
data_sent['csrf_token'] = $("#csrf_token").val();
post_request_api('/manage/case-templates/add', JSON.stringify(data_sent), false, function() {
window.swal({
title: "Adding...",
text: "Please wait",
icon: "/static/assets/img/loader.gif",
button: false,
allowOutsideClick: false
});
})
.done((data) => {
if (notify_auto_api(data)) {
refresh_case_template_table();
$('#modal_case_template').modal('hide');
}
})
.fail((error) => {
let data = error.responseJSON;
$('#submit_new_case_template').text('Save');
$('#alert_case_template_edit').text(data.message);
if (data.data && data.data.length > 0) {
let output='<li>'+ sanitizeHTML(data.data) +'</li>';
$('#case_template_err_details_list').append(output);
$('#alert_case_template_details').show();
}
$('#alert_case_template_edit').show();
})
.always((data) => {
window.swal.close();
});
return false;
})
});
$('#modal_case_template').modal({ show: true });
}
$('#case_templates_table').dataTable( {
"ajax": {
"url": "/manage/case-templates/list" + case_param(),
"contentType": "application/json",
"type": "GET",
"data": function ( d ) {
if (d.status == 'success') {
return JSON.stringify( d.data );
} else {
return JSON.stringify([]);
}
}
},
"order": [[ 0, "desc" ]],
"autoWidth": false,
"columns": [
{
"data": "id",
"render": function ( data, type, row ) {
return '<a href="#" onclick="case_template_detail(\'' + row['id'] + '\');">' + sanitizeHTML(data) +'</a>';
}
},
{
"data": "display_name",
"render": function ( data, type, row ) {
return '<a href="#" onclick="case_template_detail(\'' + row['id'] + '\');">' + sanitizeHTML(data) +'</a>';
}
},
{
"data": "description"
},
{
"data": "added_by"
},
{
"data": "created_at"
},
{
"data": "updated_at"
}
]
}
);
function refresh_case_template_table() {
$('#case_templates_table').DataTable().ajax.reload();
notify_success("Refreshed");
}
function delete_case_template(id) {
swal({
title: "Are you sure ?",
text: "You won't be able to revert this !",
icon: "warning",
buttons: true,
dangerMode: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
})
.then((willDelete) => {
if (willDelete) {
post_request_api('/manage/case-templates/delete/' + id)
.done((data) => {
if(notify_auto_api(data)) {
window.location.href = '/manage/case-templates' + case_param();
}
});
} else {
swal("Pfew, that was close");
}
});
}
function case_template_detail(ctempl_id) {
let url = '/manage/case-templates/' + ctempl_id + '/modal' + case_param();
$('#modal_case_template_json').load(url, function (response, status, xhr) {
if (status !== "success") {
ajax_notify_error(xhr, url);
return false;
}
let editor = ace.edit("editor_detail",
{
autoScrollEditorIntoView: true,
minLines: 30,
});
editor.setTheme("ace/theme/tomorrow");
editor.session.setMode("ace/mode/json");
editor.renderer.setShowGutter(true);
editor.setOption("showLineNumbers", true);
editor.setOption("showPrintMargin", false);
editor.setOption("displayIndentGuides", true);
editor.setOption("maxLines", "Infinity");
editor.session.setUseWrapMode(true);
editor.setOption("indentedSoftWrap", true);
editor.renderer.setScrollMargin(8, 5)
editor.setOptions({
enableBasicAutocompletion: [{
getCompletions: (editor, session, pos, prefix, callback) => {
callback(null, [
{value: 'name', score: 1, meta: 'name of the template'},
{value: 'display_name', score: 1, meta: 'display name of the template'},
{value: 'description', score: 1, meta: 'description of the template'},
{value: 'author', score: 1, meta: 'author of the template'},
{value: 'title_prefix', score: 1, meta: 'prefix of instantiated cases'},
{value: 'summary', score: 1, meta: 'summary of the case'},
{value: 'tags', score: 1, meta: 'tags of the case or the tasks'},
{value: 'tasks', score: 1, meta: 'tasks of the case'},
{value: 'note_groups', score: 1, meta: 'groups of notes'},
{value: 'title', score: 1, meta: 'title of the task or the note group or the note'},
{value: 'content', score: 1, meta: 'content of the note'},
]);
},
}],
enableLiveAutocompletion: true,
enableSnippets: true
});
$('#submit_new_case_template').on("click", function () {
update_case_template(ctempl_id, editor, false, false);
});
$('#submit_delete_case_template').on("click", function () {
delete_case_template(ctempl_id);
});
});
$('#modal_case_template').modal({ show: true });
}
function update_case_template(ctempl_id, editor, partial, complete){
event.preventDefault();
let data_sent = Object();
data_sent['case_template_json'] = editor.getSession().getValue();
data_sent['csrf_token'] = $("#csrf_token").val();
$('#alert_case_template_edit').empty();
$('#alert_case_template_details').hide();
$('#case_template_err_details_list').empty();
post_request_api('/manage/case-templates/update/' + ctempl_id, JSON.stringify(data_sent), false, function() {
window.swal({
title: "Updating...",
text: "Please wait",
icon: "/static/assets/img/loader.gif",
button: false,
allowOutsideClick: false
});
})
.done((data) => {
notify_auto_api(data);
})
.fail((error) => {
let data = error.responseJSON;
$('#submit_new_case_template').text('Update');
$('#alert_case_template_edit').text(data.message);
if (data.data && data.data.length > 0) {
let output='<li>'+ sanitizeHTML(data.data) +'</li>';
$('#case_template_err_details_list').append(output);
$('#alert_case_template_details').show();
}
$('#alert_case_template_edit').show();
})
.always((data) => {
window.swal.close();
});
return false;
}
function fire_upload_case_template() {
let url = '/manage/case-templates/upload/modal' + case_param();
$('#modal_upload_case_template_json').load(url, function (response, status, xhr) {
if (status !== "success") {
ajax_notify_error(xhr, url);
return false;
}
});
$('#modal_upload_case_template').modal({ show: true });
}
function upload_case_template() {
if ($("#input_upload_case_template").val() !== "")
{
var file = $("#input_upload_case_template").get(0).files[0];
var reader = new FileReader();
reader.onload = function (e) {
fileData = e.target.result
var data = new Object();
data['csrf_token'] = $('#csrf_token').val();
data['case_template_json'] = fileData;
post_request_api('/manage/case-templates/add', JSON.stringify(data), false, function() {
window.swal({
title: "Adding...",
text: "Please wait",
icon: "/static/assets/img/loader.gif",
button: false,
allowOutsideClick: false
});
})
.done((data) => {
notify_auto_api(data);
jsdata = data;
if (jsdata.status == "success") {
refresh_case_template_table();
$('#modal_upload_case_template').modal('hide');
}
})
.fail((error) => {
let data = error.responseJSON;
$('#alert_upload_case_template').text(data.message);
if (data.data && data.data.length > 0) {
let output='<li>'+ sanitizeHTML(data.data) +'</li>';
$('#upload_case_template_err_details_list').append(output);
$('#alert_upload_case_template_details').show();
}
$('#alert_upload_case_template').show();
})
.always((data) => {
$("#input_upload_case_template").val("");
window.swal.close();
});
};
reader.readAsText(file);
}
return false;
}
function downloadCaseTemplateDefinition() {
event.preventDefault();
let editor = ace.edit("editor_detail");
let data = editor.getSession().getValue();
let filename = "case_template.json";
download_file(filename, 'text/json' , data);
}