Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
FilterByRadioElement.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
40  abstract class FilterByRadioElement extends Element
41  {
46  protected function renderControlEditable()
47  {
48  $content = ZurmoHtml::tag('strong', array(), Zurmo::t('Core', 'View') . ':');
49  $content .= $this->form->radioButtonList(
50  $this->model,
51  $this->attribute,
52  $this->getArray(),
53  $this->getEditableHtmlOptions()
54  );
55  $this->renderEditableScripts();
56  $content = ZurmoHtml::tag('div', array('id' => $this->getEditableInputId() . '_area', 'class' => 'filters-bar'), $content);
57  return $content;
58  }
59 
60  protected function renderControlNonEditable()
61  {
62  throw new NotImplementedException();
63  }
64 
69  protected function renderLabel()
70  {
71  if ($this->form === null)
72  {
73  throw new NotImplementedException();
74  }
75  $for = ZurmoHtml::ID_PREFIX . $this->getEditableInputId();
76  return $this->form->labelEx($this->model, $this->attribute, array('for' => $for));
77  }
78 
79  public function getEditableHtmlOptions()
80  {
81  $htmlOptions = array(
82  'name' => $this->getEditableInputName(),
83  'id' => $this->getEditableInputId(),
84  'separator' => '',
85  'template' => '{input}{label}',
86  'ignoreIdPrefix' => true,
87  );
88  return $htmlOptions;
89  }
90 
95  abstract protected function getArray();
96 
97  protected function renderEditableScripts()
98  {
99  $id = $this->getEditableInputId();
100  $buttonAreaId = $this->getEditableInputId() . '_area';
101  $script = "
102  $('#{$buttonAreaId}').find('input:checked').next().addClass('ui-state-active');
103  $('#{$buttonAreaId}').find('label').each(
104  function()
105  {
106  \$(this).click(function()
107  {
108  $('#{$buttonAreaId}').find('label').each(function(){\$(this).removeClass('ui-state-active')});
109  \$(this).addClass('ui-state-active');
110  var inputIdSelector = '#' + $(this).attr('for');
111  $(inputIdSelector).prop('checked', true);
112  $('#{$id}').val($(inputIdSelector).val());
113  $(this).closest('form').submit();
114  })
115  }
116  );
117  ";
118  Yii::app()->clientScript->registerScript('searchFilterByFor' . $buttonAreaId, $script, CClientScript::POS_READY);
119  }
120  }
121 ?>
getEditableInputName($attributeName=null, $relationAttributeName=null)
Definition: Element.php:303
getEditableInputId($attributeName=null, $relationAttributeName=null)
Definition: Element.php:277
Generated on Fri Jul 10 2020 07:10:26
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.