您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Miglioramenti ad OTRS
当前为
// ==UserScript== // @name OTRS enhancements (unipd) // @namespace camelsoft // @description Miglioramenti ad OTRS // @include https://helpdesk.ammcentr.unipd.it/otrs/index.pl* // @include https://helpdesk.ammcentr.unipd.it/otrs/customer.pl?Action=CustomerTicketZoom* // @icon data:image/png;base64,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 // @version 3.1.0 // @grant none // ==/UserScript== // NB: queste due direttive non servono perche' OTRS ha gia' jQuery e sembra funzionare senza problemi // require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js //jQuery.noConflict(); function setup_admin ($) { if (!window.location.pathname.match(/index.pl/)) return; var cur_user = $('#UserInfo a:first').text().trim(); // displayed name var icons = { idra: "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", Coda: "R0lGODlhEAAQAMQfAOvGUf7ztuvPMf/78/fkl/Pbg+u8Rvjqteu2Pf3zxPz36Pz0z+vTmPzurPvuw/npofbjquvNefHVduuyN+uuMu3Oafbgjfnqvf/3zv/3xevPi+vRjP/20/bmsP///////yH5BAEAAB8ALAAAAAAQABAAAAV24CeOZGmepqeqqOgxjBZFa+19r4ftWQUAgqDgltthMshMIJAZ4jYDHsBARSAmFOJvq+g6HIdEFgcYmBWNxoNAsDjGHgBnmV5bCoUDHLBIq9sFEhIdcAYJdYASFRUQhQkLCwkOFwcdEBAXhVabE52ecDahKy0oIQA7", Indietro: "R0lGODlhEAAQAMQfACROFdzy00yoLbDhnUSVKFe+OV3CPMXpuLPioitfGordWnfRTXTLXLzmqX3UUYTaVjyDJGTEQaPdjI/gXXDLSc7sw2rKRdjwz9PuyVG6NTRzH4zUc9/z2H3OZf///////yH5BAEAAB8ALAAAAAAQABAAAAWH4CeOXumNKOkJLFGm4ipwXHARbrrSzaQMmArkFJtVJj7Fw4E4aIg75MSzXFCcp1WgoVCUHFbLppEoES6Ph8kUMZDNGIdjXTIUEGUPpCKxlixtBQwIAFkQBxaAHgZ2GYRQGgcSbXYFGRsDhSQaDQ0dGRkMA5lEJAkJCAijAJowJaysLzAqsighADs=", Rilascia: "R0lGODlhEAAQALMPAEWi6azap1WzS9LusYrSbApexXLHV+z41vH559Ltw8ns+pe75hBs0iCZEP///////yH5BAEAAA8ALAAAAAAQABAAAARl8MlJq30uuztzawyTXc53IIjCNBtVIscxAMAysC6DDIMAEIZbC8NQJAYEmgAYwBEVgADtZxA0W47iYgoQeK+SUgI4DTUCok5j7GUUCou0OtADwePD8CcQWMTlFR4hInkWGoUciREAOw==", Gestisci: "R0lGODlhEAAQAMQfAOvx9pjL/HWVsbfb/eTs9abS+0lVa1ZtjZG3z7+beLvU4cbg9Im77PHl2tfn8PD2+/v7+1JgeavO4UNLXODo7ykxQz5FVarQ8sOUaENxm36s1bF2RYlhMunXxv///////yH5BAEAAB8ALAAAAAAQABAAAAWfoCeO5PidniOtEoJoQix4qOQQQA4QPMEcNI8EsOAYOYvB4MH4iRQPTmJD5SgfWKBHIaV6rdfIk7PpmDsbcOEh9iw2DY5ZvhkU1gbRAtNImP0YdwUEeSkAGGcdgYIEEyIOGRcYkxgaGQUBARSOHpEXFxqhoRmZFBYikZGhFxmWmQCnWwAPOz0UtwAKFSICB74REQYGExMWFhViECXLIxAhADs=", Storico: "R0lGODlhEAAQALMPAOz2/6mjhdrMrMe6kkE4H7OfY7iofJR7PnBgN9Dq/tLT1Ojaw3h/hf7+/v///////yH5BAEAAA8ALAAAAAAQABAAAAR88MnpqpuYusNPzVLDLeTCNZm4CEM7CMKBSts6OEhltDl9sBaHorHzPGo3i4IQIBYIlcMi2VgyEgDDs4KYIhqNAAFA1kJxC0ODDGAgEonC9ogQGNiJa2DQoxcGAXBwAQIFfQ8NCH8BjFqGMxOJBHJyCF8gRw4Em2eYGh8ZEQA7", PDF: "R0lGODlhEAAQAMQfAOmNjMfHx9UqJ3Fvb9hoZqmpqbe3t96pqPn4+IeHh9ra2qRSUOXl5dtFQ9i2turq6uDg4NTT0+7u7uzMy/DX15OTk9/Ew99+fa89PN+Yl/Hp6eLi4vPz8/v7+////////yH5BAEAAB8ALAAAAAAQABAAAAWgoCeO5PidHhOtQWC8ReyhEdLdOB5Usxd1HARnSOy0eD4gkUO5UHAJUaAjqVYBl8zjgYh6pg/J9mFpZBiMrsjQGaMZDQsEovYYEI/3hiEQWBQcA2scaBtzBxkZcRoDCB4FhBuGEBcOCg19GBePHJJzCgQEDQQZBxgAjwiTChcNlSuBIhVpHBMNDRRiDxwKgo8JFQkCGAsJA8fHXiQAuCUjIQA7", Priorit: "R0lGODlhEAAQAMQfAK41AGI6Ff+pJ9BPAP/x2v/DZf+eDv+kHP/qxv+5Sv+vNf+ZBP/Oe/+hFv+cCv2nNd55BP/UjP/ThVQzGIFUAP+fEv+qOP+tQP+yO/++Vv/15P/cobF2RVk2Gf///////yH5BAEAAB8ALAAAAAAQABAAAAVx4CeOZCl6aKqqp8QUWaIIh9Hd3sloBIEgEYkEwunkPp4CgXZoGBwLYuDoSSAOzcpzQeFMT5hNdsv1UgWRhpbcNZ4ODAN5UZ5QK4WLxfLoPwIcdicQEAOGAwCJHYFUKyqLgiYkHpBHkieLbpeYOJsnLCEAOw==", Collega: "R0lGODlhEAAQANUkAHBwcMXFxaioqJqamtHR0XNzc6SkpJeXl6CgoNXV1ZiYmHd3d8fHx6Kioo2NjZubm6GhoX9/f4qKipSUlKenp5CQkJOTk6Ojo3t7e6WlpZ2dnX19fZ+fn4SEhHJycn5+foWFhZ6entra2v///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACQALAAAAAAQABAAAAZmQJJwSCwaj0jSaMlMjgSUjAGCGB2fI1GCwAg8rEKmYGRAcAYKRWDCHIXe78vyAH8vRXg8SBjJ45cggYEDSwUAh4dtDSMHFRIdHxgBC01hGllbXR5gRSMWDiAbCwWcRm1LSamqq6pBADs=", Operatore: "R0lGODlhEAAQAMQfAFWApnCexR4xU1SApaJ3SlB5oSg9ZrOVcy1HcURok/Lo3iM2XO/i1lJ8o2eVu011ncmbdSc8Zc6lg4212DZTgC5Hcmh3f8OUaDhWg7F2RYlhMunXxqrQ8n6s1f///////yH5BAEAAB8ALAAAAAAQABAAAAVz4CeOXumNKOpprHampAZltAt/q0Tvdrpmm+Am01MRGJpgkvBSXRSHYPTSJFkuws0FU8UBOJiLeAtuer6dDmaN6Uw4iNeZk653HIFORD7gFOhpARwGHQJ8foAdgoSGJA1/HJGRC40qHg8JGBQVe10kJiUpIQA7", Nota: "R0lGODlhEAAQAMQAAJvN/MXi/naZtl13lavU+6TR+7TZ/Pz9/r7e/VpwiUhacfL1+cjk/rHX/GF8m4Gnwrrc/cDf/Za805/E2Lfa/OLq9K/Q4ubv96jL3Yyyy7DS42eHp1Nle+zx9////////yH5BAEAAB8ALAAAAAAQABAAAAV+4CeOZEl6aKqWnoVNUvY8grB5Y6t6x3JVlQHOo/EwjoFAJIJAVBYO1MTISDIhFERjIfRIDkklAmtoELiox2KJoJQJhEKhkkAJOmOKOV4AACocdh1kZnJ+f4EfHncdjY0ABY2JIh4ODgMJCRySCjgnO5uTJiccoqM5pqeUnh8hADs=", Chiudi: "R0lGODlhEAAQAMQfAOt0dP94eOFjY/a0tP/JyfFfX/yVlf6mppNtbf5qanknJ9dVVeZqat5eXpiMjGo4OIUvL3pGRthWVuhvb1kaGv39/f1lZdg7O/7Y2F8/P+13d4tcXNRTU2dCQv///////yH5BAEAAB8ALAAAAAAQABAAAAV/4Cd+Xml6Y0pGTosgEap6G0YQh6FDskhjGg0AMJkwAjxfBygkGhmCAAXl6QyGnuLFI4g+qNbixLMNdBNfkpXBLncbial6AC17Gvg4eND1BPB3cHJVBguGhwsSHHo+GRqKHJGRCQo9JI4WBZoFFpUVMw8QCqMQU58qJCclqKytIQA7" }; // localStorage shortcuts Storage.prototype.rm = function(k) { this.removeItem(k); }; Storage.prototype.get = function(k, default_value) { var v = JSON.parse(this.getItem(k) || 'null'); return (typeof v !== 'undefined' && v != null) ? v : default_value; };// Storage.prototype.get --------------------------------------------------- Storage.prototype.set = function(k, v) { try { return (typeof v !== 'undefined' && v != null) ? this.setItem(k, JSON.stringify(v)) : this.rm(k); } catch (e) { console.log('ERROR: key not saved'); return null; }//try-catch };// Storage.prototype.set --------------------------------------------------- var $ls = localStorage; // abbrevia localStorage function extend_uris () { $('a[title]:contains([..])').each(function () { $(this).text( $(this).attr('href') ); }); }//extend_uris // sort select options by text => http://stackoverflow.com/a/278509 function sortSelect (selElem) { var tmpAry = new Array(), i = 0; for (i=0; i < selElem.options.length; i++) { tmpAry[i] = new Array(); tmpAry[i][0] = selElem.options[i].text; tmpAry[i][1] = selElem.options[i].value; } tmpAry.sort(); while (selElem.options.length > 0) selElem.options[0] = null; for (i=0; i < tmpAry.length; i++) selElem.options[i] = ( new Option(tmpAry[i][0], tmpAry[i][1]) ); }//sortSelect // piccole migliorie per guadagnare spazio $('#Header').css('height', '1rem'); $('#Navigation').css('top','2px'); $('#Logo').hide(); // Arial default font al posto dell'Helvetica per via del pessimo render a video... $('<style>body {font-family: Arial,"Helvetica Neue",Helvetica,sans-serif;}</style>').appendTo('head'); // riquadro credits + links var links_hp = '<a href="https://acavalin.com/" target="_blank">A.Cavalin</a>', links_script = '<a href="https://github.com/acavalin/otrs_enhancements" target="_blank">OTRS script</a>', links_css = 'position: absolute; top: 0.5rem; left: 43%; padding: 0.3rem 0.6rem; z-index: 65000;'+ 'background: linear-gradient(to bottom, rgb(249, 249, 249) 0%, rgb(241, 241, 241) 100%);'+ 'border-radius: 0.5rem; border: 1px outset red;'; $('<div style="'+links_css+'">'+links_script+' by '+links_hp+'</div>').appendTo('body'); // --- cruscotto ------------------------------------------------------------- if (window.location.href.match(/Action=AgentDashboard/)){ // 1 2 3 4 5 6 7 8 9 // COLONNE: Priorita, Star, Ticket, Tempo, Da/Oggetto, Stato, Gestione, Operatore, Coda // nascondi sidebar inutile! $('div.SidebarColumn').hide(); // mostra sempre impostazioni dell'elenco $('div.ActionMenu').show(); $('div.WidgetAction.Close').remove(); function setup_cruscotto () { if ($('form .DataTable tbody').hasClass('enhanced')) return; else $('form .DataTable tbody').addClass('enhanced'); // evidenzia righe mie $('form .DataTable tbody tr td:nth-child(9) div:contains('+cur_user+')'). parent().parent(). addClass('miei'). find('td').css('background-color', '#ddd'); // pale gray // evidenzia righe non mie $('form .DataTable tbody tr:not(.assegnati) td:nth-child(9) div').not( ':contains(Admin OTRS),'+ ':contains('+cur_user+')' ).parent().parent(). addClass('assegnati'). find('td').css('background-color', '#FCE3FF'); // violetta // sposta righe mie in alto $('form .DataTable tbody tr.miei').prependTo( $('form .DataTable tbody') ); // sposta righe non mie in basso $('form .DataTable tbody tr.assegnati').appendTo( $('form .DataTable tbody') ); // metti bordo sui blocchi di righe $('form .DataTable tbody tr.miei:last td').css('border-bottom', '1px solid black'); $('form .DataTable tbody tr.assegnati:first td').css('border-top' , '1px solid black'); // evidenzia utente e titolo $('form .DataTable tbody tr td:nth-child(5)').each(function () { $(this).find('div:first').css('font-weight', 'bold'); }); // mostra solo nome finale della coda $('form .DataTable tbody tr td:nth-child(10)').each(function () { var div = $(this).find('div:first'), coda = div.attr('title').trim().replace(/.*::(.+)/,'$1'); $('<span style="font-size: smaller"></span>').text(coda).appendTo( div.empty() ); }); // abbrevia "preso in gestione" $('form .DataTable tbody tr td:nth-child(8)').each(function () { var div = $(this).find('div:first'); div.text( div.text().trim().replace(/preso /, '') ); }); // abbrevia "chiuso con successo" $('form .DataTable tbody tr td:nth-child(7)').each(function () { var div = $(this).find('div:first'); div.text( div.text().trim().replace(/ con successo/, '') ); }); // imposta larghezza minima per le celle mono-info $('form .DataTable tbody tr td:nth-child(-n+5)').css('white-space','nowrap').attr('width', '1%'); // prime 5 colonne $('form .DataTable tbody tr td:nth-child(n+7) ').css('white-space','nowrap').attr('width', '1%'); // dalla 7^ colonna // accorcia alcune scritte $('form .DataTable thead tr th.Age a:last').text('Tempo'); // tempo trascorso $('form .DataTable thead tr th.State a:last').text('St.'); // stato $('form .DataTable thead tr th.Lock a:last').text('Gestione'); // gestione // dai un titolo alla priorita' $('form .DataTable thead tr th:eq(0) a').text('Pr.'); //rendi leggibile il campo Tempo trascorso $('form .DataTable tbody tr td:nth-child(4)'). css('font-family', 'monospace').css('font-size', 'small').css('text-align', 'right'). each(function () { var t = $(this).text().trim(). replace(/ ([dhm])/g, '$1'). replace(/ ([0-9]{1}[hm])/g, ' 0$1'). replace(/h /, '.'). replace(/m/, "'"); $(this).text(t); }); // evidenzia area Ticket# per middle-clic $('form .DataTable tbody tr td:nth-child(3)'). css('background-color', 'orange'). find('a').css('color', 'black'); // avvisa se ci son tickets //if ($('#OverviewBody tr[id^=TicketID]').length > 0) // alert('HD: ' + num_tickets + ' tickets nuovi! :O'); window.document.title = 'T: ' + $('form .DataTable tbody tr.miei').length + '|' + $('form .DataTable tbody tr:not(.assegnati):not(.miei)').length + '/' + $('form .DataTable tbody tr').length; }//setup_cruscotto // per il refresh automatico in ajax e tramite i 3 link della tabella setInterval(setup_cruscotto, 1000); }//if cruscotto // --- ticket overview ------------------------------------------------------- if ($('.OverviewBox h1:contains(Lista Ticket: Le mie Code)').length > 0 || $('.OverviewBox h1:contains(Visualizzazione Stato: Ticket)').length > 0) { // 1 2 3 4 5 6 7 8 9 10 // COLONNE: [x], Priorita, Star, Ticket, Tempo, Da/Oggetto, Stato, Gestione, Operatore, Coda // evidenzia righe mie $('#OverviewBody tr[id^=TicketID] td:nth-child(9) div:contains('+cur_user+')'). parent().parent(). addClass('miei'). find('td').css('background-color', '#ddd'); // pale gray // evidenzia righe non mie $('#OverviewBody tr[id^=TicketID]:not(.assegnati) td:nth-child(9) div').not( ':contains(Admin OTRS),'+ ':contains('+cur_user+')' ).parent().parent(). addClass('assegnati'). find('td').css('background-color', '#FCE3FF'); // violetta // sposta righe mie in alto $('#OverviewBody tr.miei').prependTo( $('#OverviewBody tbody') ); // sposta righe non mie in basso $('#OverviewBody tr.assegnati').appendTo( $('#OverviewBody tbody') ); // metti bordo sui blocchi di righe $('#OverviewBody tr.miei:last td').css('border-bottom', '1px solid black'); $('#OverviewBody tr.assegnati:first td').css('border-top' , '1px solid black'); // evidenzia utente e titolo $('#OverviewBody tr[id^=TicketID] td:nth-child(6)').each(function () { $(this).find('div:first'). css('font-weight', 'bold').css('float', 'left').css('white-space', 'nowrap'). css('padding-right', '0.5em'); var t = $(this).find('div:last').css('white-space', 'wrap').css('display', 'inherit'); t.text( t.attr('title') ); }); // unica linea per utente e titolo + stessa larghezza per l'utente var utenti = $('#OverviewBody tr[id^=TicketID] td:nth-child(6) div:nth-child(1)'), utenti_w = utenti.map(function () { return $(this).outerWidth() }), utente_w = Math.max.apply(null, utenti_w); utenti.width(utente_w); // mostra solo nome finale della coda $('#OverviewBody tr[id^=TicketID] td:nth-child(10)').each(function () { var div = $(this).find('div:first'), coda = div.attr('title').trim().replace(/.*::(.+)/,'$1'); $('<span style="font-size: smaller"></span>').text(coda).appendTo( div.empty() ); }); // abbrevia "preso in gestione" $('#OverviewBody tr[id^=TicketID] td:nth-child(8)').each(function () { var div = $(this).find('div:first'); div.text( div.text().trim().replace(/preso /, '') ); }); // abbrevia "chiuso con successo" $('#OverviewBody tr[id^=TicketID] td:nth-child(7)').each(function () { var div = $(this).find('div:first'); div.text( div.text().trim().replace(/ con successo/, '') ); }); //// nascondi ultima colonna //$('#OverviewBody thead th.Last').hide(); //$('#OverviewBody tr[id^=TicketID] td.Last').hide(); // imposta larghezza minima per le celle mono-info $('#OverviewBody tr[id^=TicketID] td:nth-child(-n+5)').css('white-space','nowrap').attr('width', '1%'); // prime 5 colonne $('#OverviewBody tr[id^=TicketID] td:nth-child(n+7) ').css('white-space','nowrap').attr('width', '1%'); // dalla 7^ colonna // accorcia alcune scritte $('#OverviewBody thead tr th.Age a:last').text('Tempo'); // tempo trascorso $('#OverviewBody thead tr th.State a:last').text('St.'); // stato $('#OverviewBody thead tr th.Lock a:last').text('Gestione'); // gestione // dai un titolo alla priorita' $('#OverviewBody thead tr th:eq(1) a').text('Pr.'); //rendi leggibile il campo Tempo trascorso $('#OverviewBody tr[id^=TicketID] td:nth-child(5)'). css('font-family', 'monospace').css('font-size', 'small').css('text-align', 'right'). each(function () { var t = $(this).text().trim(). replace(/ ([dhm])/g, '$1'). replace(/ ([0-9]{1}[hm])/g, ' 0$1'). replace(/h /, '.'). replace(/m/, "'"); $(this).text(t); }); // eguaglia larghezza TD e TH $('#OverviewBody tr[id^=TicketID]:first td').each(function (i) { $('#OverviewBody thead tr:first th:eq('+i+')').width( $(this).outerWidth() ); }); // evidenzia area Ticket# per middle-clic $('#OverviewBody tr[id^=TicketID] td:nth-child(4)').css('background-color', 'orange'); // avvisa se ci son tickets //if ($('#OverviewBody tr[id^=TicketID]').length > 0) // alert('HD: ' + num_tickets + ' tickets nuovi! :O'); window.document.title = 'T: ' + $('#OverviewBody tr[id^=TicketID].miei').length + '|' + $('#OverviewBody tr[id^=TicketID]:not(.assegnati):not(.miei)').length + '/' + $('#OverviewBody tr[id^=TicketID]').length; }//if // --- visualizzazione ticket ------------------------------------------------ if ($('#ArticleTableBody').length > 0) { function underscorize (str) { return str.trim().replace(/[^A-Z ]/ig, '').replace(/\s/g, '_'); }//camelize function icon_tag (icon_key) { return '<img src="data:image/x-icon;base64,'+icons[icon_key]+'">'; }//icon_tag // inserisci filtro per area var sel_area = $('<select id="sel_area"><option value="-">- Area -</option></select>').insertBefore('#DestQueueID'); // inserisci filtro per servizio var sel_serv = $('<select id="sel_serv"><option value="-">- Serv -</option></select>').insertBefore('#DestQueueID').hide(); $('#sel_area, #sel_serv').css('width', '5rem'); // ridimensiona filtri $('#DestQueueID' ).css('width', '6rem'); // ridimensiona combo spostamento var aree = [], servizi = {}; // combo spostamento: imposta classi area/servizio ad ogni option var cur_opt = $('#DestQueueID option:eq(1)'), cur_area = '', cur_serv = ''; while (cur_opt.length > 0) { if ( cur_opt.is('[disabled][value=-]') ) { if ( cur_opt.text().match(/^[^\s]/) ) { // area aree.push( cur_opt.text() ); cur_area = underscorize(cur_opt.text()); cur_opt.addClass('area area_'+cur_area); } else if ( cur_opt.text().match(/^\s{2}[^\s]/) ) { // servizio servizi[cur_area] = servizi[cur_area] || []; servizi[cur_area].push( cur_opt.text() ); cur_serv = underscorize(cur_opt.text()); cur_opt.addClass('serv area_'+cur_area+' serv_'+cur_serv); } else // coda corrente ; } else cur_opt.addClass('coda area_'+cur_area+' serv_'+cur_serv); cur_opt = cur_opt.next(); }//while // popola filtro dell'area coi valori ordinati $.each( aree.sort(function (a,b) { return a.replace(/AREA\s+/,'') > b.replace(/AREA\s+/,'') ? 1 : -1; }), function () { var i = this.toString(); $('<option></option>'). html(i.replace('AREA','').trim()). val(underscorize(i)). appendTo(sel_area); } ); // filtra code per area sel_area.change(function () { var area = $(this).val(), opts = $('#DestQueueID option').hide(); $('#DestQueueID').get(0).selectedIndex = 0; //opts.first().prop('selected', true); if (area == '-') { opts.show(); sel_serv.hide(); } else { sel_serv.show().find('option:gt(0)').remove(); // svuota filtro del servizio per il successivo popolamento sel_serv.get(0).selectedIndex = 0; // popola filtro del servizio coi valori ordinati $.each( servizi[area].sort(function (a,b) { return a.replace(/SERVIZIO\s+/,'') > b.replace(/SERVIZIO\s+/,'') ? 1 : -1; }), function () { var i = this.toString(); $('<option></option>'). html(i.replace('SERVIZIO','').trim()). val(underscorize(i)). appendTo(sel_serv); } ); opts.filter('.area_'+area).show(); }//if-else }); // filtra code per servizio sel_serv.change(function () { var area = sel_area.val(), serv = $(this).val(), opts = $('#DestQueueID option').hide(); $('#DestQueueID').get(0).selectedIndex = 0; //opts.first().prop('selected', true); if (serv == '-') opts.filter('.area_'+area).show(); else opts.filter('.serv_'+serv).show(); }); // togli margine superiore per: $('.MainBox:first').css('margin-top', '-0.9rem'); // contenitore principale $('#ArticleTree' ).css('margin-top', '0.2rem'); // contenitore dei post // piccole migliorie per guadagnare spazio col titolo var headline = $('div.Headline').hide(), title_row = $('div.ControlRow:first'), ticket_status = headline.find('div.Flag').css('display', 'inline-block').css('float', 'left'), ticket_descr = headline.find('h1').hide().text().trim().replace('—','·'). replace(/Ticket\#([0-9]+)/,'Ticket <span style="font-size: larger;">$1</span>'), tempo_descr = title_row.find('.AdditionalInformation').hide().text().trim(). replace('Tempo trascorso','Tempo').replace(/ +[^ ] Data di Creazione:/, ' dal'); title_row. css('min-height', 'unset'). find('h2').hide(). after(ticket_status). after('<b>'+ticket_descr+'</b>'). after('<i style="float: right">'+tempo_descr+'</span>'); // gestione toggle righe di sistema function toggle_sys_rows () { $('#ArticleTableBody tbody tr[class*="system-email-"]'). toggle( !$ls.get('prefs.hide_sys_rows', true) ); }//toggle_sys_rows toggle_sys_rows(); // toggle alla prima visualizzazione // toggle su onclick del pulsantino che aggiorna le preferenze var sys_rows_class = $ls.get('prefs.hide_sys_rows', true) ? ' Active' : ''; $('<a href="#" title="Mostra righe di sistema" class="OneArticle'+sys_rows_class+'"><i style="font-size: small">Sys</i><span>Mostra righe di sistema</span></a>'). prependTo('.TicketList .ControlRow .ArticleView.Icons'). click(function () { var hide_rows = $ls.set('prefs.hide_sys_rows', !$ls.get('prefs.hide_sys_rows', true)); $(this).toggleClass('Active', hide_rows); toggle_sys_rows(); }); // ridimensiona lo scroller in modo da mostrare tutte le righe var rows = $('#ArticleTableBody tbody tr:visible'); $('#ArticleTableBody div.Scroller'). css('min-height', '3.5rem'). height( parseInt($('#ArticleTableBody thead tr:visible:first').height()) + rows.length * parseInt(rows.filter(':first').height()) + 3 ); // evidenzia link allegati $('a.Attachment').parent(). css('border', '1px dotted red'). css('background-color', 'orange'); //$('#ArticleTableBody tbody tr').live('click', function () { // setTimeout(extend_uris, 1000); // setTimeout(extend_uris, 2000); // setTimeout(extend_uris, 3000); //}); setInterval(extend_uris, 1000); // visualizza l'ultimo messaggio rows.filter(':last').click(); // scambia nome-cognome nella colonna "DA" $('#ArticleTableBody tbody tr:visible td.From').each(function () { $(this).text( $(this).text().trim().replace(/^(\w+)\s([\w\s]+)$/,"$2 $1") ); }); // rendi visibile il telefono $('p:contains(049827)').each(function () { var tel = $(this).text().trim().replace(/049827(.+)/, '049.827.<b style="font-size: large">$1</b>'); $(this).html(tel); }); // rendi visibile il telefono esterno (medicina) $('p:contains(049821)').each(function () { var tel = $(this).text().trim().replace(/049821(.+)/, '049.<b style="font-size: large">821</b>−<b style="font-size: large">$1</b>'); $(this).html(tel); }); // rimuovi intestazioni delle widgets sulla destra... $('div.SidebarColumn div.WidgetSimple'). css('margin-bottom', '0'). find('div.Header').hide(); // ...e il bordo in alto $('div.SidebarColumn div.WidgetSimple:gt(0)').css('border-top', '0'); // evidenzia stato ticket var p_stato = $('fieldset label:contains(Stato:)').next(); p_stato.html( '<b>'+p_stato.text().trim()+'</b>' ); // nascondi codice cliente = email cliente (gia' presente in basso) $('fieldset label:contains(Codice cliente:)').hide().next().hide().next().hide(); // evidenzia operatore var p_op = $('fieldset label:contains(Operatore:)').next(); p_op.html( '<b>'+p_op.text().trim()+'</b>' ); // rendi leggibile la coda var p_coda = $('fieldset label:contains(Coda:)').next(), //coda = p_coda.text().trim().replace(/::/g,'<hr style="border-top: 1px solid black">'); coda = p_coda.text().trim().replace(/.*::/,''); p_coda.html('<div style="font-size: smaller">'+coda+'</div>' ); // evidenzia email var p_email = $('fieldset label:contains(Email:)').next(), mail = p_email.attr('title').trim(), ticket_num = $('h1:contains(Ticket#)').text().trim().replace(/^([^ ]+).+/,'$1'); p_email.html('<a href="mailto:'+mail+'?Subject='+ticket_num+'">'+mail+'</a>' ); if (p_coda.is('[title^=AREA DIDATTICA E SERVIZI AGLI STUDENTI]')) { // add link IDRA personale p_email. append('<br>'). append('<a href="https://programmazione.didattica.unipd.it/persone?search='+mail+'" target="_blank"></a>'). find('a:last').append('(vedi in '+icon_tag('idra')+')'); } // merge nome e cognome var p_cogn = $('fieldset label:contains(Cognome:)').next(); p_cogn.hide().prev().hide().prev().hide().prev().append( p_cogn.text().trim() ); // rendi leggibile la sede var p_sede = $('fieldset label:contains(Commento:)').next(); p_sede.text( (p_sede.attr('title')||'').trim().replace(/DIPARTIMENTO (DI|DEI)/,'DIP.') ); // nascondi nome utente che e' uguale alla mail $('fieldset label:contains(Nome utente:)').next().andSelf().hide(); // compatta fieldset info sulla destra $('div.Content fieldset.TableLike').css('margin-bottom', '0'); // metti in riga i link dei tickets aperti dall'utente $('div.Content ul.ItemRow').css('margin-left', '0').find('li').css('display', 'inline-block'); // migliora elenco collegamenti $('ul.Tablelike.SpacingTopSmall').each(function () { var ul = $(this).css('margin-left', '0'), title = ul.prev().hide().text().trim(); ul.find('li.Header').text(title); ul.find('li:not(.Header)').css('display', 'inline-block'); }); $('#Footer').hide(); // nascondi footer // aggiungi icone ai link delle azioni $.each(icons, function (label, data) { var link = $('.ActionRow ul.Actions a:contains('+label+')'); switch (label) { case 'Nota': link.text('Nota'); break; case 'Chiudi': link.text('Chiudi/Stato'); break; }//switch link.append(icon_tag(label)); }); $('#DestQueueID').after(icon_tag('coda')); $('.ActionRow ul.Actions'). find('li').css('margin-right', '-1px'). find('a').css('border', '2px outset #555').css('border-radius', '0.3rem'); $('#DestQueueID').parents('form:first'). css('border', '2px outset #555').css('border-radius', '0.3rem').css('padding', '0.13rem'). find('select').css('margin', 'auto'); $('.ActionRow img').css('vertical-align', 'middle').css('margin-left', '0.2rem'); // mostra storico sopra alle righe delle note var storico = $('<fieldset style="height: 40px; font-size: smaller; padding: 0 2px 6px 2px; border: 1px solid black; overflow-x: hidden; overflow-y: scroll;"><legend style="margin: 0 2em; padding: 0 0.5em">Storico del ticket</legend></fieldset>'). insertBefore('#ArticleTableBody'); $.get( $('a:contains(Storico)').attr('href'), function (resp) { $('#ArticleTableBody').css('border', '1px solid green'); $(resp).find('table.DataTable:first').appendTo(storico); storico.find('tr').hide(); var storico_height = storico.find('tr td:first-child'). filter(':contains(Move), :contains(OwnerUpdate)'). parent().show(). length * 20; storico.height(storico_height > 100 ? 100 : storico_height); // indica se la richiesta proviene da un TEAM var team_row = storico.find('table tbody tr:first td[title*="TEAM"]'); if (team_row.length != 0) { var team = team_row.attr('title').replace(/.+(TEAM[^;)]+).+/, '$1'); $('<span style="background-color: red; margin-left: 1rem;">Creato in: '+team+'</span>').prependTo('.TicketList .ControlRow'); } },//success 'html' ); }//if // --- cambio proprietario --------------------------------------------------- var sel_owner = $('#NewOwnerID'); if (sel_owner.length > 0) { //// nascondi nomi non usati //sel_owner.find('option').not( // ':contains([email protected]),'+ // ':contains([email protected])' //).hide() // swap nome e cognome sel_owner.find('option').each(function () { var o = $(this); o.text( o.text().trim(). replace(/^([^ ]+) (.+)/, '$2 $1'). replace(/\b\w/g, function(l){ return l.toUpperCase() }) // capitalize => http://stackoverflow.com/a/38530325 ); }); // resort options sortSelect( sel_owner.get(0) ); // imposta oggetto predefinito $('#NewOwnerID, #OldOwnerID').change(function () { $('#Subject').val( 'per ' + $(this).find('option:selected').text().replace(/^(.: )*.+ (\w+) .+/, '$2') ); return false; }); // seleziona proprietario precedente $(':radio[value="Old"]').attr('checked', true); $('#OldOwnerID').change(); // testo predefinito $('#RichText'). val('fatto'). bind('focus', function () { $(this).select(); }); // seleziona tutto onfocus }//if // --- aggiungi nota --------------------------------------------------------- // evidenzia la riga col tipo di nota $('#ArticleTypeID'). css('height', '3rem'). css('width', '50%'). css('font-size', 'x-large'); }// setup_admin ---------------------------------------------------------------- function setup_customer ($) { if (!window.location.pathname.match(/customer.pl/)) return; // nascondi righe di sistema $('#Messages li[class*=system]').hide(); }// setup_customer ------------------------------------------------------------- (function ($) { $(function () { setup_customer($); setup_admin($); });})(jQuery);