[Advanced Logbook] Now can print label from advanced logbook
这个提交包含在:
		
							父节点
							
								
									f13aa83254
								
							
						
					
					
						当前提交
						8dd3f290a7
					
				
					共有  4 个文件被更改,包括 74 次插入 和 16 次删除
				
			
		|  | @ -87,22 +87,27 @@ class Labels extends CI_Controller { | ||||||
| 	 | 	 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	public function printids() { | ||||||
|  | 		$ids = xss_clean(json_decode($this->input->post('id'))); | ||||||
|  | 		$this->load->model('labels_model'); | ||||||
|  | 		$result = $this->labels_model->export_printrequestedids($ids); | ||||||
|  | 
 | ||||||
|  | 		$this->prepareLabel($result); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	public function print($station_id) { | 	public function print($station_id) { | ||||||
| 		$clean_id = xss_clean($station_id); | 		$clean_id = xss_clean($station_id); | ||||||
| 
 | 
 | ||||||
| 		$this->load->model('labels_model'); | 		$this->load->model('labels_model'); | ||||||
| 		$result = $this->labels_model->export_printrequested($clean_id); | 		$result = $this->labels_model->export_printrequested($clean_id); | ||||||
| 
 | 
 | ||||||
|  | 		$this->prepareLabel($result); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	function prepareLabel($qsos) { | ||||||
|  | 		$this->load->model('labels_model'); | ||||||
| 		$label = $this->labels_model->getDefaultLabel(); | 		$label = $this->labels_model->getDefaultLabel(); | ||||||
| 
 | 	 | ||||||
| 		// require_once('fpdf.php');
 |  | ||||||
| 		// require('PDF_Label.php');
 |  | ||||||
| 		// require_once APPPATH."/src/Label/PDF_Label.php";
 |  | ||||||
| 		// require_once APPPATH."/src/Label/fpdf.php";
 |  | ||||||
| 
 |  | ||||||
| 		// Example of custom format
 |  | ||||||
| 		// $pdf = new PDF_Label(array('paper-size'=>'A4', 'metric'=>'mm', 'marginLeft'=>1, 'marginTop'=>1, 'NX'=>2, 'NY'=>7, 'SpaceX'=>0, 'SpaceY'=>0, 'width'=>99, 'height'=>38, 'font-size'=>14));
 |  | ||||||
| 
 |  | ||||||
| 		try { | 		try { | ||||||
| 			if ($label) { | 			if ($label) { | ||||||
| 				$pdf = new PDF_Label(array( | 				$pdf = new PDF_Label(array( | ||||||
|  | @ -127,9 +132,9 @@ class Labels extends CI_Controller { | ||||||
| 			redirect('labels'); | 			redirect('labels'); | ||||||
| 		} | 		} | ||||||
| 		define('FPDF_FONTPATH', './src/Label/font/'); | 		define('FPDF_FONTPATH', './src/Label/font/'); | ||||||
| 
 | 	 | ||||||
| 		$pdf->AddPage(); | 		$pdf->AddPage(); | ||||||
| 
 | 	 | ||||||
| 		if ($label->font == 'DejaVuSans') { | 		if ($label->font == 'DejaVuSans') { | ||||||
| 			$pdf->AddFont($label->font,'','DejaVuSansMono.ttf',true); | 			$pdf->AddFont($label->font,'','DejaVuSansMono.ttf',true); | ||||||
| 			$pdf->SetFont($label->font); | 			$pdf->SetFont($label->font); | ||||||
|  | @ -137,13 +142,12 @@ class Labels extends CI_Controller { | ||||||
| 			$pdf->AddFont($label->font); | 			$pdf->AddFont($label->font); | ||||||
| 			$pdf->SetFont($label->font); | 			$pdf->SetFont($label->font); | ||||||
| 		} | 		} | ||||||
| 
 | 	 | ||||||
| 
 | 		if ($qsos->num_rows() > 0) { | ||||||
| 		if ($result->num_rows() > 0) { |  | ||||||
| 			if ($label->qsos == 1) { | 			if ($label->qsos == 1) { | ||||||
| 				$this->makeOneQsoLabel($result->result(), $pdf); | 				$this->makeOneQsoLabel($qsos->result(), $pdf); | ||||||
| 			} else { | 			} else { | ||||||
| 				$this->makeMultiQsoLabel($result->result(), $pdf, $label->qsos); | 				$this->makeMultiQsoLabel($qsos->result(), $pdf, $label->qsos); | ||||||
| 			} | 			} | ||||||
| 		} else { | 		} else { | ||||||
| 			$this->session->set_flashdata('message', '0 QSOs found for print!');  | 			$this->session->set_flashdata('message', '0 QSOs found for print!');  | ||||||
|  |  | ||||||
|  | @ -127,4 +127,16 @@ class Labels_model extends CI_Model { | ||||||
| 
 | 
 | ||||||
|         return $query; |         return $query; | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     function export_printrequestedids($ids) { | ||||||
|  |         $this->db->select($this->config->item('table_name').'.*, station_profile.*, dxcc_entities.name as station_country'); | ||||||
|  |         $this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id'); | ||||||
|  |         $this->db->join('dxcc_entities', 'station_profile.station_dxcc = dxcc_entities.adif'); | ||||||
|  |         $this->db->where('station_profile.user_id', $this->session->userdata('user_id')); | ||||||
|  |         $this->db->where_in('COL_PRIMARY_KEY', $ids); | ||||||
|  |         $this->db->order_by("COL_DXCC", "ASC"); | ||||||
|  |         $query = $this->db->get($this->config->item('table_name')); | ||||||
|  | 
 | ||||||
|  |         return $query; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | @ -191,7 +191,10 @@ | ||||||
| 		<button type="button" class="btn btn-sm btn-success" id="sentElectronic">Sent Electronic</button> | 		<button type="button" class="btn btn-sm btn-success" id="sentElectronic">Sent Electronic</button> | ||||||
| 		<button type="button" class="btn btn-sm btn-warning" id="dontSend">Not Sent</button> | 		<button type="button" class="btn btn-sm btn-warning" id="dontSend">Not Sent</button> | ||||||
| 		<button type="button" class="btn btn-sm btn-warning" id="notRequired">QSL Not Required</button> | 		<button type="button" class="btn btn-sm btn-warning" id="notRequired">QSL Not Required</button> | ||||||
|  | 		<button type="button" class="btn btn-sm btn-warning" id="receivedBureau">Received (bureau)</button> | ||||||
|  | 		<button type="button" class="btn btn-sm btn-warning" id="receivedDirect">Received (direct)</button> | ||||||
| 		<button type="button" class="btn btn-sm btn-info" id="exportAdif">Create ADIF</button> | 		<button type="button" class="btn btn-sm btn-info" id="exportAdif">Create ADIF</button> | ||||||
|  | 		<button type="button" class="btn btn-sm btn-info" id="printLabel">Print Label</button> | ||||||
| 		<button type="button" class="btn btn-sm btn-danger" id="deleteQsos">Delete</button> | 		<button type="button" class="btn btn-sm btn-danger" id="deleteQsos">Delete</button> | ||||||
| 		<span id="infoBox"></span> | 		<span id="infoBox"></span> | ||||||
| 	</div> | 	</div> | ||||||
|  |  | ||||||
|  | @ -348,6 +348,45 @@ $(document).ready(function () { | ||||||
| 	$('#notRequired').click(function (event) { | 	$('#notRequired').click(function (event) { | ||||||
| 		handleQsl('I','', 'notRequired'); | 		handleQsl('I','', 'notRequired'); | ||||||
| 	}); | 	}); | ||||||
|  | 	$('#receivedBureau').click(function (event) { | ||||||
|  | 	}); | ||||||
|  | 	$('#receivedDirect').click(function (event) { | ||||||
|  | 	}); | ||||||
|  | 
 | ||||||
|  | 	$('#printLabel').click(function (event) { | ||||||
|  | 		var elements = $('#qsoList tbody input:checked'); | ||||||
|  | 		var nElements = elements.length; | ||||||
|  | 		if (nElements == 0) { | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  | 		$('#printLabel').prop("disabled", true); | ||||||
|  | 
 | ||||||
|  | 		var id_list=[]; | ||||||
|  | 
 | ||||||
|  | 		elements.each(function() { | ||||||
|  | 			let id = $(this).first().closest('tr').data('qsoID') | ||||||
|  | 			id_list.push(id); | ||||||
|  | 		}); | ||||||
|  | 
 | ||||||
|  | 		$.ajax({ | ||||||
|  | 			url: base_url + 'index.php/labels/printids', | ||||||
|  | 			type: 'post', | ||||||
|  | 			data: {'id': JSON.stringify(id_list, null, 2) }, | ||||||
|  | 			xhr:function(){ | ||||||
|  | 				var xhr = new XMLHttpRequest(); | ||||||
|  | 				xhr.responseType= 'blob' | ||||||
|  | 				return xhr; | ||||||
|  | 			}, | ||||||
|  | 			success: function(data) { | ||||||
|  | 				if(data){  | ||||||
|  | 					var file = new Blob([data], {type: 'application/pdf'}); | ||||||
|  | 					var fileURL = URL.createObjectURL(file); | ||||||
|  | 					window.open(fileURL);    | ||||||
|  | 				} | ||||||
|  | 				$('#printLabel').prop("disabled", false); | ||||||
|  | 			} | ||||||
|  | 		}); | ||||||
|  | 	}); | ||||||
| 
 | 
 | ||||||
| 	$('#searchForm').on('reset', function(e) { | 	$('#searchForm').on('reset', function(e) { | ||||||
| 		setTimeout(function() { | 		setTimeout(function() { | ||||||
|  |  | ||||||
		正在加载…
	
		在新工单中引用