129 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| jQuery(function($){
 | |
| 
 | |
|   $(".refresh_table").on('click', function(e) {
 | |
|     e.preventDefault();
 | |
|     var table_name = $(this).data('table');
 | |
|     $('#' + table_name).DataTable().ajax.reload();
 | |
|   });
 | |
| 
 | |
| 
 | |
|   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]}
 | |
| 
 | |
|   // Queue item
 | |
|   $('#showQueuedMsg').on('show.bs.modal', function (e) {
 | |
|     $('#queue_msg_content').text(lang.loading);
 | |
|     button = $(e.relatedTarget)
 | |
|     if (button != null) {
 | |
|       $('#queue_id').text(button.data('queue-id'));
 | |
|     }
 | |
|     $.ajax({
 | |
|       type: 'GET',
 | |
|       url: '/api/v1/get/postcat/' + button.data('queue-id'),
 | |
|       dataType: 'text',
 | |
|       complete: function (data) {
 | |
|         $('#queue_msg_content').text(data.responseText);
 | |
|       }
 | |
|     });
 | |
|   })
 | |
| 
 | |
|   function draw_queue() {
 | |
|   // just recalc width if instance already exists
 | |
|   if ($.fn.DataTable.isDataTable('#queuetable') ) {
 | |
|     $('#queuetable').DataTable().columns.adjust().responsive.recalc();
 | |
|     return;
 | |
|   }
 | |
| 
 | |
|   $('#queuetable').DataTable({
 | |
|     responsive: true,
 | |
|     processing: true,
 | |
|     serverSide: false,
 | |
|     stateSave: true,
 | |
|     pageLength: pagination_size,
 | |
|     dom: "<'row'<'col-sm-12 col-md-6'f><'col-sm-12 col-md-6'l>>" +
 | |
|          "tr" +
 | |
|          "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
 | |
|     language: lang_datatables,
 | |
|     ajax: {
 | |
|       type: "GET",
 | |
|       url: "/api/v1/get/mailq/all",
 | |
|       dataSrc: function(data){
 | |
|         $.each(data, function (i, item) {
 | |
|           item.chkbox = '<input type="checkbox" data-id="mailqitems" name="multi_select" value="' + item.queue_id + '" />';
 | |
|           rcpts = $.map(item.recipients, function(i) {
 | |
|             return escapeHtml(i);
 | |
|           });
 | |
|           item.recipients = rcpts.join('<hr style="margin:1px!important">');
 | |
|           item.action = '<div class="btn-group">' +
 | |
|             '<a href="#" data-bs-toggle="modal" data-bs-target="#showQueuedMsg" data-queue-id="' + encodeURI(item.queue_id) + '" class="btn btn-xs btn-secondary">' + lang.show_message + '</a>' +
 | |
|             '</div>';
 | |
|           });
 | |
|           return data;
 | |
|         }
 | |
|       },
 | |
|       columns: [
 | |
|         {
 | |
|           // placeholder, so checkbox will not block child row toggle
 | |
|           title: '',
 | |
|           data: null,
 | |
|           searchable: false,
 | |
|           orderable: false,
 | |
|           defaultContent: ''
 | |
|         },
 | |
|         {
 | |
|           title: '',
 | |
|           data: 'chkbox',
 | |
|           searchable: false,
 | |
|           orderable: false,
 | |
|           defaultContent: ''
 | |
|         },
 | |
|         {
 | |
|           title: 'QID',
 | |
|           data: 'queue_id',
 | |
|           defaultContent: ''
 | |
|         },
 | |
|         {
 | |
|           title: 'Queue',
 | |
|           data: 'queue_name',
 | |
|           defaultContent: ''
 | |
|         },
 | |
|         {
 | |
|           title: lang_admin.arrival_time,
 | |
|           data: 'arrival_time',
 | |
|           defaultContent: '',
 | |
|           render: function (data, type){
 | |
|             var date = new Date(data ? data * 1000 : 0);
 | |
|             return date.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           title: lang_admin.message_size,
 | |
|           data: 'message_size',
 | |
|           defaultContent: '',
 | |
|           render: function (data, type){
 | |
|             return humanFileSize(data);
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           title: lang_admin.sender,
 | |
|           data: 'sender',
 | |
|           defaultContent: ''
 | |
|         },
 | |
|         {
 | |
|           title: lang_admin.recipients,
 | |
|           data: 'recipients',
 | |
|           defaultContent: ''
 | |
|         },
 | |
|         {
 | |
|           title: lang_admin.action,
 | |
|           data: 'action',
 | |
|           className: 'dt-sm-head-hidden dt-text-right',
 | |
|           defaultContent: ''
 | |
|         },
 | |
|       ]
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   draw_queue();
 | |
| 
 | |
| })
 | 
