Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
ListAttributesSelectionElement.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 
42  {
43  protected function renderControlEditable()
44  {
45  assert('$this->model instanceof SearchForm');
46  assert('$this->attribute == null');
47  assert('$this->model->getListAttributesSelector() != null');
48  $content = $this->renderSelectionContent();
49  $content = ZurmoHtml::tag('div', array('class' => 'attributesContainer'), $content);
50  $linkContent = $this->renderApplyResetContent() . $this->renderApplyLinkContent();
51  $linkContent = ZurmoHtml::tag('div', array('class' => 'form-toolbar clearfix'), $linkContent);
52  return $content . ZurmoHtml::tag('div', array('class' => 'view-toolbar-container'), $linkContent);
53  }
54 
59  protected function renderControlNonEditable()
60  {
61  throw new NotSupportedException();
62  }
63 
68  protected function renderLabel()
69  {
70  return null;
71  }
72 
73  protected function renderSelectionContent()
74  {
75  $cClipWidget = new CClipWidget();
76  $cClipWidget->beginClip("SortableListAttributes");
77  $cClipWidget->widget('application.core.widgets.SortableCompareLists', array(
78  'leftSideId' => $this->getEditableInputId(SearchForm::SELECTED_LIST_ATTRIBUTES) . '_hidden',
79  'leftSideName' => $this->getEditableInputName(SearchForm::SELECTED_LIST_ATTRIBUTES) . '_hidden',
80  'leftSideValue' => array(),
81  'leftSideData' => $this->model->getListAttributesSelector()->getUnselectedListAttributesNamesAndLabelsAndAll(),
82  'leftSideDisplayLabel' => Zurmo::t('Core', 'Hidden Columns'),
83  'rightSideId' => $this->getEditableInputId(SearchForm::SELECTED_LIST_ATTRIBUTES),
84  'rightSideName' => $this->getEditableInputName(SearchForm::SELECTED_LIST_ATTRIBUTES),
85  'rightSideValue' => array(),
86  'rightSideData' => $this->model->getListAttributesSelector()->getSelectedListAttributesNamesAndLabelsAndAll(),
87  'rightSideDisplayLabel' => Zurmo::t('Core', 'Visible Columns'),
88  'formId' => $this->form->getId(),
89  'allowSorting' => true,
90  'multiselectNavigationClasses' => 'multiselect-nav-updown',
91  ));
92  $cClipWidget->endClip();
93  $cellsContent = $cClipWidget->getController()->clips['SortableListAttributes'];
94  $content = '<table>';
95  $content .= '<tbody>';
96  $content .= '<tr>';
97  $content .= $cellsContent;
98  $content .= '</tr>';
99  $content .= '</tbody>';
100  $content .= '</table>';
101  return $content;
102  }
103 
104  protected function renderResetScript()
105  {
106  $defaultSelectedAttributes = $this->model->getListAttributesSelector()->getMetadataDefinedListAttributeNames();
107  return "$('.select-list-attributes-view').hide();
108  resetSelectedListAttributes('" .
109  $this->getEditableInputId(SearchForm::SELECTED_LIST_ATTRIBUTES) . "', '" .
110  $this->getEditableInputId(SearchForm::SELECTED_LIST_ATTRIBUTES) . "_hidden', " .
111  CJSON::encode($defaultSelectedAttributes) . ");
112  ";
113  }
114 
115  protected function renderApplyLinkContent()
116  {
117  $params = array();
118  $params['label'] = Zurmo::t('Core', 'Apply');
119  $params['htmlOptions'] = array('id' => 'list-attributes-apply',
120  'onclick' => 'js:$(this).addClass("attachLoadingTarget");');
121  $element = new SaveButtonActionElement(null, null, null, $params);
122  return $element->render();
123  }
124 
125  protected function renderApplyResetContent()
126  {
127  $params = array();
128  $params['label'] = Zurmo::t('Core', 'Reset');
129  $params['htmlOptions'] = array('id' => 'list-attributes-reset',
130  'class' => 'default-btn',
131  'onclick' => 'js:$(this).addClass("attachLoadingTarget");' . $this->renderResetScript());
132  $element = new SaveButtonActionElement(null, null, null, $params);
133  return $element->render();
134  }
135  }
136 ?>
getEditableInputName($attributeName=null, $relationAttributeName=null)
Definition: Element.php:303
getEditableInputId($attributeName=null, $relationAttributeName=null)
Definition: Element.php:277
Generated on Thu Jul 9 2020 07:10:29
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.