OTRS enhancements (unipd)

Miglioramenti ad OTRS

当前为 2017-04-26 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        OTRS enhancements (unipd)
// @namespace   camelsoft
// @description Miglioramenti ad OTRS
// @include     https://helpdesk.ammcentr.unipd.it/otrs/index.pl*
// @icon        data:image/png;base64,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
// @version     1.4.5
// @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 ($) { $(function () {
// -----------------------------------------------------------------------------
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://cava.link/" target="_blank">Cava.link</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');

// --- 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(.di_altri) 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('—','&middot;').
        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>&minus;<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

// -----------------------------------------------------------------------------
});})(jQuery);