function mod_tickets_destruct(){ $("a[type='mod_tickets']").die(); } function mod_tickets_init(request){ $('#tickets_table_block').show(300); tickets_indicator.set_count(false); var modul_core = new mod_tickets_core (); setTimeout(modul_core.tickets_table_init,150); $("a[type='mod_tickets']").live('click',function (){ var obj = $(this); switch(obj.attr('id')) { case 'read_tickets': modul_core.read_tickets(obj.attr('ticket')); navig_bar(eval('({"'+LANG.field_mod_tickets+'":"tickets","'+obj.text().replace(/(")/g,'"')+'":""})')); break; case 'add_ticket': modul_core.add_ticket(); break; case 'new_ticket': modul_core.new_ticket(); break; case 'close_ticket': modul_core.close_ticket(obj.attr('ticket_id')); break; case 'cancel_ticket': $.fancybox.close(); break; } }); } function mod_tickets_core(){ var hendl = this; this.new_ticket = function () { var Cq = new Cquery(true); Cq.url = PANEL + 'tickets/new/'; Cq.request(function (request){ if (request.tickets_stat) { show_form (request.tpl,450,383,false); var sel_obj = $("#category"); var tmp = ''; $.each(request.category, function(id, val) { tmp += ''; }); sel_obj.empty().append(tmp); var sel_obj = $("#priority"); var tmp = ''; $.each(request.priority, function(id, val) { tmp += ''; }); sel_obj.empty().append(tmp); $('#new_ticket_send').click(function (){ var elem = []; var error = false; elem[0] = $('#category option:selected'); elem[1] = $('#priority option:selected'); elem[2] = $('#them'); elem[3] = $('#message'); $.each(elem, function(id, obj) { if(obj.val() == '') { obj.parents('.sepH_c').addClass('error'); error = true; }else { obj.parents('.sepH_c').removeClass('error'); } }); if (!error) { $.fancybox.close(); Cq.url = PANEL + 'tickets/new/'; Cq.data = 'category='+elem[0].val()+'&priority='+elem[1].val()+'&them='+encodeURIComponent(elem[2].val())+'&message='+encodeURIComponent(elem[3].val()); Cq.request(function(request){ if(request.tickets_stat){ $('#tickets_table').dataTable().fnDestroy(); $('#tickets_table tbody').html(''); hendl.tickets_table_init(); }else{ alert('err'); } }); Cq.init(); } }); } }); Cq.init(); } this.add_ticket = function () { var Cq = new Cquery(true); Cq.url = PANEL + 'tickets/add/'; Cq.request(function (request){ if (request.tickets_stat) { show_form (request.tpl,450,227,false); $('#ticket_send').click(function (){ var message = $('#message'); if(message.val() == '') { message.parents('.sepH_c').addClass('error'); }else { message.parents('.sepH_c').removeClass('error'); $.fancybox.close(); Cq.url = PANEL + 'tickets/add/'; Cq.data = 'message='+encodeURIComponent(message.val()); Cq.request(function(request){ if(request.tickets_stat){ hendl.read_tickets(request.ticket_id); }else{ alert('err555'); } }); Cq.init(); } }); } }); Cq.init(); } this.read_tickets = function (ticket_id) { var Cq = new Cquery(true); Cq.url = PANEL + 'tickets/read/'; Cq.data = 'ticket_id='+ticket_id; Cq.request(function (request){ if(request.tickets_stat){ tickets_indicator.set_count(request.head.count_new); var ticket = ''; var tmp = ''; $.each(request.data, function(key, val){ ticket += '
#'+val.noid+(val.reply==0?' User: '+request.head.user:' Support: '+val.reply)+' '+val.created+'
'+val.text+'
'; }); $('#main_content').html('
'+request.head.category+' - '+request.head.them+''+ticket+ (request.head.status!=0?''+LANG.btn_close_ticket+'':'')+ ''+LANG.btn_write+'
'); } }); Cq.init(); } this.close_ticket = function (ticket_id) { var Cq = new Cquery(true); Cq.url = PANEL + 'tickets/close/'; Cq.data = 'ticket_id='+ticket_id; Cq.request(function(request){ if(request.tickets_stat){ $('#tickets').trigger('click'); }else{ alert('err'); } }); Cq.init(); } this.tickets_table_init = function (){ $('#tickets_table').dataTable({ 'sPaginationType': 'full_numbers', 'iDisplayLength':10, 'bProcessing': true, 'bServerSide': true, "bFilter": false, 'sAjaxSource': PANEL+'tickets/tickets_table/', 'sCookiePrefix':'pref_', 'fnServerData': function (sSource,aoData,fnCallback) { $.ajax({"dataType":'json',"type":"POST","url":sSource,"data":aoData,"success":fnCallback}); }, "fnCookieCallback": function (sName, oData, sExpires, sPath) { oData.aaSearchCols = []; oData.abVisCols = []; oData.sFilter = ''; oData.iStart = 0; oData.iEnd = 0; return sName+"="+encodeURIComponent (JSON.stringify(oData))+"; expires=" + sExpires +"; path=" + sPath; }, 'bRetrieve': true, 'bStateSave': true, 'bDestroy':true, 'aaSorting': [[ 0, 'desc' ]], 'oLanguage': {'sUrl': PANEL_HOST+'lib/datatables/lang/'+LANG_NAME+'.lng'}, 'aoColumns': [ {'sType': 'string'}, {'bSortable': false}, {'bSortable': false,'sWidth': '25%','fnRender':function(oObj){ return ''+oObj.aData[2][1]+''; }}, {'sType': 'string','sWidth': '12%','fnRender':function(oObj){ var marker = new Array('ok_bg','alert_bg','error_bg'); return ''+oObj.aData[3][1]+''; }}, {'sType': 'html','fnRender':function(oObj){ var marker = new Array('ok_bg','alert_bg','error_bg','info_bg'); return ''+oObj.aData[4][1]+''; }} ], }); } }