Jakweb.ch stuff
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.
 
 
 
 
clouddesk/operator/template/js_ticket.php

241 lines
9.1 KiB

<script src="<?php echo BASE_URL;?>js/liveticket.js"></script>
<script src="<?php echo BASE_URL_ORIG;?>js/editor/tinymce.min.js" type="text/javascript"></script>
<?php if ($jakuser->getVar("files") && $jakosub['files'] && $ticket_status_closed != 1) { ?>
<script type="text/javascript" src="<?php echo BASE_URL_ORIG;?>js/dropzone.js"></script>
<?php } ?>
<script>
$(document).ready(function() {
// fire the live ticket status
ltJAK(<?php echo $page2;?>, <?php echo JAK_USERID;?>);
tinymce.init({
selector: '#content-editor',
height: 300,
menubar: false,
paste_as_text: true,
entity_encoding : "raw",
plugins: [
'advlist autolink lists link image charmap print preview anchor textcolor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table contextmenu paste code responsivefilemanager codesample'
],
toolbar: 'insert | undo redo | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist | removeformat codesample code',
language: '<?php echo $BT_LANGUAGE;?>',
<?php if ($jkl["rtlsupport"]) { ?>
directionality : 'rtl',
<?php } ?>
external_filemanager_path:"<?php echo BASE_URL_ORIG;?>js/editor/filemanager/",
filemanager_title:"Filemanager" ,
external_plugins: { "filemanager" : "<?php echo BASE_URL_ORIG;?>js/editor/filemanager/plugin.min.js"},
// Live Ticket Status
init_instance_callback: function(editor) {
editor.on('Change', function(e) {
ticketTyping(<?php echo $page2;?>, <?php echo JAK_USERID;?>);
});
},
relative_urls: false
});
$('.datepicker').datetimepicker({
format: '<?php echo $duedateformat[1];?>'
});
//init DateTimePickers
md.initFormExtendedDatetimepickers();
$("#loader").hide();
// JavaScript to disable send button and show loading.gif image
$("#sendTM").click(function() {
$("#loader").show();
$('#sendTM').attr("disabled", "disabled");
$('.jak_form').submit();
});
$('body').on('click', '.btn-delfile', function (e) {
e.preventDefault();
var _this = this;
var rediurl = jQuery(this).attr('href');
var btnaction = jQuery(this).data("action");
var title = jQuery(this).data("title");
var text = jQuery(this).data("text");
var okbtn = '<button class="alertable-ok" type="submit">'+jQuery(this).data("okbtn")+'</button>';
var cbtn = '<button class="alertable-cancel" type="button">'+jQuery(this).data("cbtn")+'</button>';
jQuery.alertable.confirm(title, {prompt: text, okButton: okbtn, cancelButton: cbtn}).then(function() {
$.ajax({
url: rediurl,
dataType: 'json',
success: function(data) {
$(_this).closest('tr').find('td').fadeOut();
$('#answerid-'+data.answerid).fadeOut();
// Update the counter
var countSpan = $('#upload-counter').text();
var newSpan = parseInt(countSpan) - 1;
$('#upload-counter').html(newSpan);
}
});
}, function() {
return false;
});
});
});
window.onbeforeunload = function(){
ticketNotTyping(<?php echo $page2;?>, <?php echo JAK_USERID;?>);
// return 'Are you sure you want to leave?';
};
// Insert the standard response into the editor
$('select#supresp').on("change", function() {
var respid = this.value;
if (respid != 0) {
$.ajax({
type: "POST",
url: ls.main_url + 'ajax/oprequests.php',
data: "oprq=supportresponse&respid="+respid+"&cname=<?php echo $JAK_FORM_DATA["name"];?>&uid="+ls.opid,
dataType: 'json',
success: function(msg){
if (msg.status) {
tinymce.activeEditor.execCommand('mceInsertContent', false, msg.response);
md.showNotification('check', '<?php echo $jkl['g14'];?>', 'success', 'top', 'right');
} else {
md.showNotification('warning', '<?php echo $jkl['g116'];?>', 'danger', 'top', 'right');
}
}
});
$('#supresp').val(0);
}
});
$("#private_note").change(function() {
if(this.checked) {
$(".mce-path").addClass('bg-warning');
} else {
$(".mce-path").removeClass('bg-warning');
}
});
<?php if ($jakuser->getVar("files") && $jakosub['files'] && $ticket_status_closed != 1) { ?>
Dropzone.autoDiscover = false;
$(function() {
// Now that the DOM is fully loaded, create the dropzone, and setup the
// event listeners
var myDropzone = new Dropzone("#share-attachments", {dictResponseError: "SERVER ERROR",
dictDefaultMessage: '<i class="fa fa-file-upload fa-3x"></i>',
acceptedFiles: "<?php echo JAK_ALLOWEDO_FILES;?>",
addRemoveLinks: true,
url: "<?php echo BASE_URL_ORIG;?>uploader/uploaderto.php"});
myDropzone.on("sending", function(file, xhr, formData) {
// Will send the filesize along with the file as POST data.
formData.append("ticketId", <?php echo $page2;?>);
formData.append("userIDU", <?php echo $jakuser->getVar("id");?>);
formData.append("base_url", "<?php echo BASE_URL_ORIG;?>");
formData.append("operatorNameU", "<?php echo $jakuser->getVar("name");?>");
formData.append("operatorLanguage", "<?php echo $USER_LANGUAGE;?>");
});
myDropzone.on("success", function(file, serverResponse) {
//myDropzone.removeAllFiles();
// Update the counter
var thefile = "";
var countSpan = $('#upload-counter').text();
var newSpan = parseInt(countSpan) + 1;
$('#upload-counter').html(newSpan);
// console.log(serverResponse);
data = JSON.parse(serverResponse);
if (data.isimage) {
thefile = '<tr><td><a data-toggle="lightbox" href="<?php echo BASE_URL_ORIG;?>_showfile.php?i='+data.filepath+'"><img src="<?php echo BASE_URL_ORIG;?>_showfile.php?i='+data.filepath+'" alt="'+data.filename+'" class="img-thumbnail" width="50"></a> <a href="<?php echo BASE_URL_ORIG;?>_showfile.php?i='+data.filepath+'" class="btn btn-info btn-sm"><i class="fa fa-file-download"></i></a> <a href="'+data.delpath+'" class="btn btn-danger btn-sm btn-delfile" data-title="<?php echo addslashes($jkl["g48"]);?>" data-text="<?php echo addslashes($jkl["e32"]);?>" data-type="warning" data-okbtn="<?php echo addslashes($jkl["g279"]);?>" data-cbtn="<?php echo addslashes($jkl["g280"]);?>"><i class="fa fa-trash-alt"></i></a></td></tr>';
} else {
thefile = '<tr><td>'+data.filename+' <a href="<?php echo BASE_URL_ORIG;?>_showfile.php?i='+data.filepath+'" class="btn btn-info btn-sm"><i class="fa fa-file-download"></i></a> <a href="'+data.delpath+'" class="btn btn-danger btn-sm btn-delfile" data-title="<?php echo addslashes($jkl["g48"]);?>" data-text="<?php echo addslashes($jkl["e32"]);?>" data-type="warning" data-okbtn="<?php echo addslashes($jkl["g279"]);?>" data-cbtn="<?php echo addslashes($jkl["g280"]);?>"><i class="fa fa-trash-alt"></i></a></td></tr>';
}
// Attach file visually
$('#attach-list').append(thefile);
// Notification messages
md.showNotification('check', '<?php echo $jkl['e38'];?>', 'success', 'top', 'right');
});
});
<?php } ?>
$(document).on("click", ".btn-translate", function(e) {
e.preventDefault();
var _this = $(this);
var wscan = $(_this).data("scan");
var tid = $(_this).data("ticketid");
var aid = $(_this).data("answerid");
var tcontent = tinymce.get("content-editor").getContent();
var tlang = $('#jak_tlang').find(":selected").val();
// No content so we stop
if (wscan != "answer" && tcontent == "") return false;
// Check if we translate something but the language is empty
if (wscan == "translate" && tlang == "-") {
md.showNotification('warning', '<?php echo addslashes($jkl['e47']);?>', 'danger', 'top', 'right');
return false;
}
// Show the loader
$(".tl-loader", _this).removeClass("d-none");
$.ajax({
type: "POST",
url: ls.main_url + 'ajax/translate_ticket.php',
data: "wsource="+wscan+"&id="+tid+"&aid="+aid+"&tcontent="+tcontent+"&uid="+ls.opid+"&lang="+tlang,
dataType: 'json',
success: function(msg){
if (msg.status == 1) {
// Success message
md.showNotification('check', msg.txt, 'success', 'top', 'right');
// We will add the translation below
if (aid != 0) {
$('.aitranslate'+aid).html(msg.translation).fadeIn();
} else {
$('.aitranslatem'+tid).html(msg.translation).fadeIn();
}
// We have a new language
if (msg.lang) $("#jak_tlang").val(msg.lang);
$('.selectpicker').selectpicker('refresh');
} else if (msg.status == 2) {
// We have a fine new text, let's add it
tinymce.activeEditor.setContent(msg.grammar_correct);
} else if (msg.status == 3) {
// We have a translation, let's add it
tinymce.activeEditor.setContent(msg.translate_correct);
} else {
md.showNotification('warning', msg.txt, 'danger', 'top', 'right');
}
// Hide the loader
$(".tl-loader", _this).addClass("d-none");
return true;
}
});
});
</script>