Merge pull request #18559 from agileware/CIVICRM-1567
[civicrm-core.git] / CRM / Campaign / Form / Task / Print.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12 /**
13 *
14 * @package CRM
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
16 */
17
18 /**
19 * This class provides the functionality to print voter records
20 */
21 class CRM_Campaign_Form_Task_Print extends CRM_Campaign_Form_Task {
22
23 /**
24 * Build all the data structures needed to build the form.
25 */
26 public function preProcess() {
27 parent::preprocess();
28
29 // set print view, so that print templates are called
30 $this->controller->setPrint(1);
31
32 // get the formatted params
33 $queryParams = $this->get('queryParams');
34
35 $sortID = NULL;
36 if ($this->get(CRM_Utils_Sort::SORT_ID)) {
37 $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID),
38 $this->get(CRM_Utils_Sort::SORT_DIRECTION)
39 );
40 }
41
42 $selector = new CRM_Campaign_Selector_Search($queryParams,
43 $this->_action,
44 $this->_componentClause
45 );
46 $controller = new CRM_Core_Selector_Controller($selector,
47 NULL,
48 $sortID,
49 CRM_Core_Action::VIEW,
50 $this,
51 CRM_Core_Selector_Controller::SCREEN
52 );
53 $controller->setEmbedded(TRUE);
54 $controller->run();
55 }
56
57 /**
58 * Build the form object.
59 *
60 * It consists of
61 * - displaying the QILL (query in local language)
62 * - displaying elements for saving the search
63 */
64 public function buildQuickForm() {
65 //
66 // just need to add a javacript to popup the window for printing
67 //
68 $this->addButtons([
69 [
70 'type' => 'next',
71 'name' => ts('Print Respondents'),
72 'js' => ['onclick' => 'window.print()'],
73 'isDefault' => TRUE,
74 ],
75 [
76 'type' => 'back',
77 'name' => ts('Done'),
78 ],
79 ]);
80 }
81
82 /**
83 * Process the form after the input has been submitted and validated.
84 */
85 public function postProcess() {
86 // redirect to the main search page after printing is over
87 }
88
89 }