You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
320 lines
8.0 KiB
320 lines
8.0 KiB
<script src="<?php echo BASE_URL;?>js/editor/tinymce.min.js"></script>
|
|
<?php if ($uploadactive) { ?>
|
|
<script src="<?php echo BASE_URL;?>js/dropzone.js"></script>
|
|
<?php } ?>
|
|
<script>
|
|
|
|
// Working Flag to 0
|
|
var working = false;
|
|
Dropzone.autoDiscover = false;
|
|
|
|
$(document).ready(function() {
|
|
tinymce.init({
|
|
selector: '#content-editor',
|
|
height: 300,
|
|
menubar: false,
|
|
paste_as_text: true,
|
|
entity_encoding : "raw",
|
|
plugins: [
|
|
'advlist autolink lists link charmap print preview textcolor',
|
|
'searchreplace visualblocks code fullscreen',
|
|
'insertdatetime table contextmenu paste code codesample'
|
|
],
|
|
toolbar: 'insert | undo redo | bold italic underline | bullist numlist | removeformat codesample code',
|
|
language: '<?php echo $BT_LANGUAGE;?>',
|
|
<?php if ($jkl["rtlsupport"]) { ?>
|
|
directionality : 'rtl',
|
|
<?php } ?>
|
|
relative_urls: false
|
|
});
|
|
|
|
<?php if (JAK_TICKET_SIMILAR == 1) { ?>
|
|
|
|
$("#subject").on("keyup", function(e) {
|
|
// We call the function for client is typing and input is bigger then 3
|
|
if (e.keyCode != 13 && $(this).val().length > 2) {
|
|
ticketSearch($(this).val());
|
|
} else {
|
|
$('#loadsimArticle').html("");
|
|
$('#similarArticle').fadeOut();
|
|
return false;
|
|
}
|
|
});
|
|
|
|
<?php } ?>
|
|
|
|
$('#jak_depid').change(function(){
|
|
ticketDepartment($(this).val());
|
|
});
|
|
|
|
$("#loader, #ticketpriority, #ticketoption").hide();
|
|
|
|
// Now that the DOM is fully loaded, create the dropzone, and setup the
|
|
var myDropzone = new Dropzone("#share-attachments", {dictResponseError: "SERVER ERROR",
|
|
dictDefaultMessage: '<i class="fa fa-file-upload fa-3x"></i>',
|
|
acceptedFiles: "<?php echo JAK_ALLOWED_FILES;?>",
|
|
addRemoveLinks: true,
|
|
autoProcessQueue: false,
|
|
url: "<?php echo BASE_URL;?>uploader/uploadert.php"});
|
|
|
|
// JavaScript to disable send button and show loading.gif image
|
|
$('.jak_form').submit(function(e){
|
|
|
|
e.preventDefault();
|
|
|
|
if(working) return false;
|
|
|
|
working = true;
|
|
|
|
$("#loader").show();
|
|
$('.sendTM').attr("disabled", "disabled");
|
|
$(this).find('input').removeClass("is-invalid");
|
|
|
|
// Call the server and due the necessary
|
|
var request = $.ajax({
|
|
async: true,
|
|
url: '<?php echo JAK_rewrite::jakParseurl(JAK_SUPPORT_URL, 'n');?>',
|
|
type: "POST",
|
|
data: $(this).serialize(),
|
|
dataType: "json",
|
|
processData: false,
|
|
cache: false
|
|
});
|
|
|
|
request.done(function(data) {
|
|
|
|
working = false;
|
|
|
|
if (data.status) {
|
|
|
|
if (myDropzone.files != "") {
|
|
|
|
myDropzone.on("sending", function(file, xhr, formData) {
|
|
// Will send the filesize along with the file as POST data.
|
|
formData.append("ticketId", data.ticketid);
|
|
formData.append("userIDU", data.userid);
|
|
formData.append("userIDC", data.clientid);
|
|
formData.append("base_url", "<?php echo BASE_URL;?>");
|
|
});
|
|
|
|
myDropzone.processQueue();
|
|
|
|
myDropzone.on("queuecomplete", function(a,b,c){
|
|
// Redirect to the ticket
|
|
window.location.replace(data.redirecturl);
|
|
});
|
|
|
|
} else {
|
|
// Redirect to the ticket
|
|
window.location.replace(data.redirecturl);
|
|
}
|
|
|
|
} else {
|
|
|
|
$.notifyClose();
|
|
|
|
// We will need to go through each error message
|
|
$.each(data.errors,function(k,v) {
|
|
$.notify({icon: 'warning', message: v}, {type: 'danger', animate: {
|
|
enter: 'animate__animated animate__fadeInDown',
|
|
exit: 'animate__animated animate__fadeOutUp'
|
|
}});
|
|
console.log(v);
|
|
$('#'+k).addClass("is-invalid");
|
|
});
|
|
|
|
$("#loader").hide();
|
|
$('.sendTM').removeAttr("disabled");
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
function ticketDepartment(v) {
|
|
|
|
// Check if we have a value
|
|
if (v) {
|
|
|
|
// Ticket Priorities
|
|
var tprio = $('#ticketpriority');
|
|
|
|
// Ticket Options
|
|
var topt = $('#ticketoption');
|
|
|
|
// Custom fields
|
|
var tcfield = $('#custom_fields');
|
|
|
|
// Get the value again from the input field
|
|
var depid = $('#jak_depid').val();
|
|
|
|
// Now let's cross check if the value is the same or stop the request
|
|
if (depid != v) {
|
|
tprio.fadeOut();
|
|
topt.fadeOut();
|
|
tcfield.fadeOut();
|
|
// return false;
|
|
}
|
|
|
|
var request = new XMLHttpRequest();
|
|
request.open('GET', '<?php echo BASE_URL;?>include/new_ticket.php?depid='+depid, true);
|
|
|
|
request.onload = function() {
|
|
if (request.status >= 200 && request.status < 400) {
|
|
// Success!
|
|
var data = JSON.parse(request.responseText);
|
|
|
|
if (data.status == 1) {
|
|
|
|
if (data.ticketpriority) {
|
|
|
|
let sel = document.querySelector('#prioirty');
|
|
|
|
// We will need to empty the list first
|
|
for (a in sel.options) { sel.options.remove(0); }
|
|
|
|
data.ticketpriority.forEach((tprio)=>{
|
|
let prioopt = document.createElement('option');
|
|
prioopt.value = tprio.id;
|
|
let prioTitle = document.createTextNode(tprio.title);
|
|
prioopt.appendChild(prioTitle);
|
|
sel.appendChild(prioopt);
|
|
});
|
|
|
|
tprio.fadeIn();
|
|
|
|
}
|
|
|
|
if (data.ticketoptions) {
|
|
|
|
let sel2 = document.querySelector('#toption');
|
|
|
|
// We will need to empty the list first
|
|
for (a in sel2.options) { sel2.options.remove(0); }
|
|
|
|
data.ticketoptions.forEach((topt)=>{
|
|
let optopt = document.createElement('option');
|
|
optopt.value = topt.id;
|
|
let optTitle = document.createTextNode(topt.title);
|
|
optopt.appendChild(optTitle);
|
|
sel2.appendChild(optopt);
|
|
});
|
|
|
|
topt.fadeIn();
|
|
|
|
}
|
|
|
|
if (data.customfields) {
|
|
|
|
$('#custom_fields').html(data.customfields);
|
|
|
|
tcfield.fadeIn();
|
|
|
|
}
|
|
|
|
if (data.precontent) tinymce.activeEditor.execCommand('mceInsertContent', false, data.precontent);
|
|
|
|
} else {
|
|
|
|
$.notifyClose();
|
|
|
|
$.notify({icon: 'warning', message: data.errormsg}, {type: 'danger', animate: {
|
|
enter: 'animate__animated animate__fadeInDown',
|
|
exit: 'animate__animated animate__fadeOutUp'
|
|
}});
|
|
|
|
// Nothing to do, remove the container
|
|
tprio.fadeOut();
|
|
topt.fadeOut();
|
|
tcfield.fadeOut();
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
request.onerror = function() {
|
|
return false;
|
|
}
|
|
|
|
request.send();
|
|
|
|
} else {
|
|
|
|
$.notifyClose();
|
|
|
|
$.notify({icon: 'warning', message: '<?php echo addslashes($jkl['e25']);?>'}, {type: 'danger', animate: {
|
|
enter: 'animate__animated animate__fadeInDown',
|
|
exit: 'animate__animated animate__fadeOutUp'
|
|
}});
|
|
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function ticketSearch(v) {
|
|
|
|
// Check if we have a value
|
|
if (v) {
|
|
|
|
// similar Article Container
|
|
var sac = $('#similarArticle');
|
|
|
|
// similar Article Div
|
|
var sadiv = $('#loadsimArticle');
|
|
|
|
// Get the value again from the input field
|
|
var newTsubject = $('#subject').val();
|
|
|
|
// Now let's cross check if the value is the same or stop the request
|
|
if (newTsubject != v) {
|
|
sadiv.html("");
|
|
sac.fadeOut();
|
|
return false;
|
|
}
|
|
|
|
var request = new XMLHttpRequest();
|
|
request.open('GET', '<?php echo BASE_URL;?>include/similar_search.php?s='+newTsubject, true);
|
|
|
|
request.onload = function() {
|
|
if (request.status >= 200 && request.status < 400) {
|
|
// Success!
|
|
var data = JSON.parse(request.responseText);
|
|
|
|
if (data.status == 1) {
|
|
|
|
// Show Similar Article Container
|
|
sac.fadeIn();
|
|
|
|
// Load the content
|
|
sadiv.html(data.articles);
|
|
|
|
} else {
|
|
|
|
// Nothing to do, remove the container
|
|
sadiv.html("");
|
|
sac.fadeOut();
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
request.onerror = function() {
|
|
// There was a connection error of some sort
|
|
sadiv.html("");
|
|
sac.fadeOut();
|
|
}
|
|
|
|
request.send();
|
|
|
|
} else {
|
|
// We could not output something.
|
|
sadiv.html("");
|
|
sac.fadeOut();
|
|
return false;
|
|
}
|
|
}
|
|
</script>
|
|
|