OpenXE/classes/Modules/Ticket/www/js/ticket_template.js

307 lines
10 KiB
JavaScript
Raw Normal View History

2021-05-21 08:49:41 +02:00
var TicketTemplate = function ($) {
"use strict";
var me = {
storage: {
api : null,
},
selector: {
overviewTable: '#ticket_vorlagenlist',
itemPopup: '#tickettemplatepopup',
newButton: 'input#newtemplate',
},
updateOverviewTable: function() {
$(me.selector.overviewTable).DataTable().ajax.reload();
},
saveItem: function()
{
$.ajax({
type: 'POST',
url: 'index.php?module=ticket_vorlage&action=list&cmd=saveitem',
data: {
itemId: $('#itemid').val(),
name:$('#itemname').val(),
text:$('#itemtext').val(),
project:$('#itemproject').val(),
category:$('#itemcategory').val(),
sort:$('#itemsort').val(),
visible:$('#itemvisible').prop('checked')?1:0,
},
success: function () {
$(me.selector.itemPopup).dialog('close');
me.updateOverviewTable();
}
});
},
resetItem: function()
{
$('#itemid').val('');
$('#itemname').val('');
$('#itemtext').val('');
$('#itemsort').val('');
$('#itemcategory').val('');
$('#itemvisible').prop('checked', false);
},
getItem: function(itemId)
{
$.ajax({
type: 'POST',
url: 'index.php?module=ticket_vorlage&action=list&cmd=getitem',
data: {
itemId: itemId,
categoryId: $('#categoryid').val(),
name:$('#newtemplatename').val()
},
success: function (data) {
if(typeof data.id == 'undefined') {
me.resetItem();
$(me.selector.itemPopup).dialog('open');
return;
}
$('#itemid').val(data.id);
$('#itemname').val(data.name);
$('#itemtext').val(data.text);
$('#itemsort').val(data.sort);
$('#itemcategory').val(data.category);
$('#itemvisible').prop('checked', data.visible == '1');
$(me.selector.itemPopup).dialog('open');
}
});
},
initTree: function() {
$('#mlmTree').aciTree({
autoInit: false,
checkboxChain: false,
ajax: {
url: 'index.php?module=ticket_vorlage&action=list&cmd=gettree'
},
checkbox: true,
itemHook: function(parent, item, itemData, level) {
//console.log(itemData);
},
filterHook: function(item, search, regexp) {
if (search.length) {
var parent = this.parent(item);
if (parent.length) {
var label = this.getLabel(parent);
if (regexp.test(String(label))) {
this.setVisible(item);
return true;
}
this.setVisible(item);
}
if (regexp.test(String(this.getLabel(item)))) {
item.addClass('searched');
return true;
} else {
return false;
}
//return regexp.test(String(this.getLabel(item)));
} else {
return true;
}
}
});
},
initOverview: function() {
$(me.selector.newButton).on('click',function () {
me.getItem(0);
});
$(me.selector.overviewTable).on('afterreload',function() {
$(this).find('img.deleteitem').on('click', function() {
if(confirm('Wirklich löschen?')) {
$.ajax({
type: 'POST',
url: 'index.php?module=ticket_vorlage&action=list&cmd=deleteitem',
data: {
itemId: $(this).data('id')
},
success: function () {
me.updateOverviewTable();
}
});
}
});
$(this).find('img.edititem').on('click', function() {
me.getItem($(this).data('id'));
});
});
$(me.selector.itemPopup).toggleClass('hidden', false);
$(me.selector.itemPopup).dialog(
{
modal: true,
autoOpen: false,
minWidth: 940,
title:'',
buttons: {
'ABBRECHEN': function() {
$(this).dialog('close');
},
'SPEICHERN': function()
{
me.saveItem();
},
},
close: function(event, ui){
}
});
$('#savesubcategory').on('click',function(){
$.ajax({
type: 'POST',
url: 'index.php?module=ticket_vorlage&action=list&cmd=savenewsubcategory',
data: {
categoryId: $('#categoryid').val(),
name: $('#subcategoriename').val(),
},
success: function () {
$('#mlmTree').aciTree('api').unload(null, {
success: function() {
this.ajaxLoad(null);
}
});
me.updateOverviewTable();
$('#subcategoriename').val('');
}
});
});
$('#savecategory').on('click',function(){
$.ajax({
type: 'POST',
url: 'index.php?module=ticket_vorlage&action=list&cmd=savecategory',
data: {
categoryId: $('#categoryid').val(),
name: $('#categoriename').val(),
},
success: function () {
$('#mlmTree').aciTree('api').unload(null, {
success: function() {
this.ajaxLoad(null);
}
});
me.updateOverviewTable();
}
});
});
$('#deletecategory').on('click',function(){
if(!confirm('Wirklich löschen?')) {
return;
}
$.ajax({
type: 'POST',
url: 'index.php?module=ticket_vorlage&action=list&cmd=deletecategory',
data: {
categoryId: $('#categoryid').val()
},
success: function () {
$('#categoryid').val('');
$('#categoriename').val('');
$('#mlmTree').aciTree('api').unload(null, {
success: function() {
this.ajaxLoad(null);
}
});
me.updateOverviewTable();
}
});
});
me.initTree();
me.storage.api = $('#mlmTree').aciTree('api');
$('#search').val('');
var last = '';
$('#search').on('keyup', function() {
if ($(this).val() === last) {
return;
}
$('.aciTreeLi').removeClass('searched');
last = $(this).val();
me.storage.api.filter(null, {
search: $(this).val(),
callback: function() {
},
success: function(item, options) {
if (!options.first) {
//alert('No results found!');
}
}
});
});
$('#mlmTree').on('acitree', function(event, api, item, eventName, options){
switch (eventName){
case 'checked':
break;
case 'unchecked':
break;
case 'selected':
var ajaxData = {
id: api.getId(item),
name: api.getLabel(item)
}
$.ajax({
url: 'index.php?module=ticket_vorlage&action=list&cmd=gettreedetail',
data: ajaxData,
type: 'POST',
dataType: 'json',
success: function(data) {
$('#categoryid').val(data.id);
$('#categoriename').val(data.name);
me.updateOverviewTable();
}
});
break;
default:
if (api.isItem(item)){
//console.log('the event is: ' + eventName + ' for the item ID: ' + api.getId(item));
} else {
//console.log('the event is: ' + eventName + ' for the tree ROOT');
}
}
});
$('#mlmTree').aciTree('init');
},
init: function () {
if($(me.selector.overviewTable).length) {
me.initOverview();
}
}
};
return {
init: me.init,
};
}(jQuery);
$(document).ready(function () {
TicketTemplate.init();
});