Merge remote-tracking branch 'upstream/4.4' into 4.4-4.5-2014-09-08-20-42-29
[civicrm-core.git] / CRM / Contact / Form / Edit / Email.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
06b69b18 4 | CiviCRM version 4.5 |
6a488035 5 +--------------------------------------------------------------------+
06b69b18 6 | Copyright CiviCRM LLC (c) 2004-2014 |
6a488035
TO
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
26*/
27
28/**
29 *
30 * @package CRM
06b69b18 31 * @copyright CiviCRM LLC (c) 2004-2014
6a488035
TO
32 * $Id$
33 *
34 */
35
36/**
37 * form helper class for an Email object
38 */
39class CRM_Contact_Form_Edit_Email {
40
41 /**
42 * build the form elements for an email object
43 *
44 * @param CRM_Core_Form $form reference to the form object
45 * @param int $blockCount block number to build
46 * @param boolean $blockEdit is it block edit
47 *
48 * @return void
49 * @access public
50 * @static
51 */
52 static function buildQuickForm(&$form, $blockCount = NULL, $blockEdit = FALSE) {
53 // passing this via the session is AWFUL. we need to fix this
54 if (!$blockCount) {
55 $blockId = ($form->get('Email_Block_Count')) ? $form->get('Email_Block_Count') : 1;
56 }
57 else {
58 $blockId = $blockCount;
59 }
60
61 $form->applyFilter('__ALL__', 'trim');
62
63 //Email box
64 $form->addElement('text', "email[$blockId][email]", ts('Email'), CRM_Core_DAO::getAttribute('CRM_Core_DAO_Email', 'email'));
65 $form->addRule("email[$blockId][email]", ts('Email is not valid.'), 'email');
66 if (isset($form->_contactType) || $blockEdit) {
67 //Block type
30193ce3 68 $form->addSelect("email[$blockId][location_type_id]", array('entity' => 'email', 'class' => 'eight', 'placeholder' => NULL));
6a488035
TO
69
70 $multipleBulk = CRM_Core_BAO_Email::isMultipleBulkMail();
71
72 //On-hold select
73 if ($multipleBulk) {
74 $holdOptions = array(0 => ts('- select -'),
75 1 => ts('On Hold Bounce'),
76 2 => ts('On Hold Opt Out'),
77 );
78 $form->addElement('select', "email[$blockId][on_hold]", '', $holdOptions);
79 }
80 else {
81 $form->addElement('advcheckbox', "email[$blockId][on_hold]", NULL);
82 }
83
84 //Bulkmail checkbox
85 $form->assign('multipleBulk', $multipleBulk);
86 if ($multipleBulk) {
87 $js = array('id' => "Email_" . $blockId . "_IsBulkmail");
88 $form->addElement('advcheckbox', "email[$blockId][is_bulkmail]", NULL, '', $js);
89 }
90 else {
91 $js = array('id' => "Email_" . $blockId . "_IsBulkmail");
92 if (!$blockEdit) {
93 $js['onClick'] = 'singleSelect( this.id );';
94 }
95 $form->addElement('radio', "email[$blockId][is_bulkmail]", '', '', '1', $js);
96 }
97
98 //is_Primary radio
99 $js = array('id' => "Email_" . $blockId . "_IsPrimary");
100 if (!$blockEdit) {
101 $js['onClick'] = 'singleSelect( this.id );';
102 }
103
104 $form->addElement('radio', "email[$blockId][is_primary]", '', '', '1', $js);
105
106 if (CRM_Utils_System::getClassName($form) == 'CRM_Contact_Form_Contact') {
107
108 $form->add('textarea', "email[$blockId][signature_text]", ts('Signature (Text)'),
109 array('rows' => 2, 'cols' => 40)
110 );
111
112 $form->addWysiwyg("email[$blockId][signature_html]", ts('Signature (HTML)'),
113 array('rows' => 2, 'cols' => 40)
114 );
115 }
116 }
117 }
118}
119