[Watchdog] Use stackoverflow.com for DNS check
[Git] Ignore mail_plugins* [Dovecot] Read mail_plugins from dynamically generated file [Dovecot] Encrypt FTS [Dovecot] Add break_imap_seach option to Solr [Web] Add ability to send quarantine notification mails [Web] Minor style fixes [Web] Add new MAILBOX_DEFAULT_ATTRIBUTES (doc updates, anyone? :-( ) [Web] Use rcpt_smtp if rcpt_mime is not set [Web] Other minor fixes
This commit is contained in:
		@@ -1,22 +1,23 @@
 | 
			
		||||
// Base64 functions
 | 
			
		||||
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(r){var t,e,o,a,h,n,c,d="",C=0;for(r=Base64._utf8_encode(r);C<r.length;)a=(t=r.charCodeAt(C++))>>2,h=(3&t)<<4|(e=r.charCodeAt(C++))>>4,n=(15&e)<<2|(o=r.charCodeAt(C++))>>6,c=63&o,isNaN(e)?n=c=64:isNaN(o)&&(c=64),d=d+this._keyStr.charAt(a)+this._keyStr.charAt(h)+this._keyStr.charAt(n)+this._keyStr.charAt(c);return d},decode:function(r){var t,e,o,a,h,n,c="",d=0;for(r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");d<r.length;)t=this._keyStr.indexOf(r.charAt(d++))<<2|(a=this._keyStr.indexOf(r.charAt(d++)))>>4,e=(15&a)<<4|(h=this._keyStr.indexOf(r.charAt(d++)))>>2,o=(3&h)<<6|(n=this._keyStr.indexOf(r.charAt(d++))),c+=String.fromCharCode(t),64!=h&&(c+=String.fromCharCode(e)),64!=n&&(c+=String.fromCharCode(o));return c=Base64._utf8_decode(c)},_utf8_encode:function(r){r=r.replace(/\r\n/g,"\n");for(var t="",e=0;e<r.length;e++){var o=r.charCodeAt(e);o<128?t+=String.fromCharCode(o):o>127&&o<2048?(t+=String.fromCharCode(o>>6|192),t+=String.fromCharCode(63&o|128)):(t+=String.fromCharCode(o>>12|224),t+=String.fromCharCode(o>>6&63|128),t+=String.fromCharCode(63&o|128))}return t},_utf8_decode:function(r){for(var t="",e=0,o=c1=c2=0;e<r.length;)(o=r.charCodeAt(e))<128?(t+=String.fromCharCode(o),e++):o>191&&o<224?(c2=r.charCodeAt(e+1),t+=String.fromCharCode((31&o)<<6|63&c2),e+=2):(c2=r.charCodeAt(e+1),c3=r.charCodeAt(e+2),t+=String.fromCharCode((15&o)<<12|(63&c2)<<6|63&c3),e+=3);return t}};
 | 
			
		||||
jQuery(function($){
 | 
			
		||||
  acl_data = JSON.parse(acl);
 | 
			
		||||
  // http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery
 | 
			
		||||
  var entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};
 | 
			
		||||
  function escapeHtml(n){return String(n).replace(/[&<>"'`=\/]/g,function(n){return entityMap[n]})}
 | 
			
		||||
  function humanFileSize(i){if(Math.abs(i)<1024)return i+" B";var B=["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],e=-1;do{i/=1024,++e}while(Math.abs(i)>=1024&&e<B.length-1);return i.toFixed(1)+" "+B[e]}
 | 
			
		||||
 | 
			
		||||
  function draw_quarantine_table() {
 | 
			
		||||
    ft_quarantinetable = FooTable.init('#quarantinetable', {
 | 
			
		||||
      "columns": [
 | 
			
		||||
        {"name":"chkbox","title":"","style":{"maxWidth":"40px","width":"40px"},"filterable": false,"sortable": false,"type":"html"},
 | 
			
		||||
        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
 | 
			
		||||
        {"name":"id","type":"ID","filterable": false,"sorted": true,"direction":"DESC","title":"ID","style":{"width":"50px"}},
 | 
			
		||||
        {"name":"qid","type":"text","title":lang.qid,"style":{"width":"125px"}},
 | 
			
		||||
        {"name":"sender","style":{"word-break":"break-all"},"title":lang.sender,"breakpoints":"xs sm"},
 | 
			
		||||
        {"name":"rcpt","title":lang.rcpt, "type": "text"},
 | 
			
		||||
        {"name":"subject","title":"Subject", "type": "text"},
 | 
			
		||||
        {"name":"qid","breakpoints":"all","type":"text","title":lang.qid,"style":{"width":"125px"}},
 | 
			
		||||
        {"name":"sender","title":lang.sender},
 | 
			
		||||
        {"name":"rcpt","title":lang.rcpt, "breakpoints":"xs sm md", "type": "text"},
 | 
			
		||||
        {"name":"virus","title":lang.danger, "type": "text"},
 | 
			
		||||
        {"name":"subject","title":lang.subj, "type": "text"},
 | 
			
		||||
        {"name":"created","formatter":function unix_time_format(tm) { var date = new Date(tm ? tm * 1000 : 0); return date.toLocaleString();},"title":lang.received,"style":{"width":"170px"}},
 | 
			
		||||
        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right"},"style":{"width":"220px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
 | 
			
		||||
        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right"},"style":{"width":"220px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}
 | 
			
		||||
      ],
 | 
			
		||||
      "rows": $.ajax({
 | 
			
		||||
        dataType: 'json',
 | 
			
		||||
@@ -28,15 +29,26 @@ jQuery(function($){
 | 
			
		||||
        success: function (data) {
 | 
			
		||||
          $.each(data, function (i, item) {
 | 
			
		||||
            if (item.subject === null) {
 | 
			
		||||
              item.subject = '<i>no preview</i>';
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
              item.subject = '';
 | 
			
		||||
            } else {
 | 
			
		||||
              item.subject = escapeHtml(item.subject);
 | 
			
		||||
            }
 | 
			
		||||
            if (item.virus_flag > 0) {
 | 
			
		||||
              item.virus = '<span class="dot-danger"></span>';
 | 
			
		||||
            } else {
 | 
			
		||||
              item.virus = '<span class="dot-neutral"></span>';
 | 
			
		||||
            }
 | 
			
		||||
            if (acl_data.login_as === 1) {
 | 
			
		||||
            item.action = '<div class="btn-group">' +
 | 
			
		||||
              '<a href="#" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-info show_qid_info"><span class="glyphicon glyphicon-modal-window"></span> ' + lang.show_item + '</a>' +
 | 
			
		||||
              '<a href="#" data-action="delete_selected" data-id="del-single-qitem" data-api-url="delete/qitem" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
 | 
			
		||||
              '</div>';
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
            item.action = '<div class="btn-group">' +
 | 
			
		||||
              '<a href="#" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-info show_qid_info"><span class="glyphicon glyphicon-modal-window"></span> ' + lang.show_item + '</a>' +
 | 
			
		||||
              '</div>';
 | 
			
		||||
            }
 | 
			
		||||
            item.chkbox = '<input type="checkbox" data-id="qitems" name="multi_select" value="' + item.id + '" />';
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user