Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
ActionBarForSearchAndListView.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 
41  {
46  protected $model;
47 
52  protected $listViewGridId;
53 
58  protected $pageVarName;
59 
64  protected $listViewRowsAreSelectable;
65 
70  protected $introView;
71 
72  public function __construct($controllerId, $moduleId, RedBeanModel $model, $listViewGridId,
73  $pageVarName, $listViewRowsAreSelectable, $activeActionElementType = null,
74  IntroView $introView = null)
75  {
76  assert('is_string($controllerId)');
77  assert('is_string($moduleId)');
78  assert('is_string($listViewGridId)');
79  assert('is_string($pageVarName)');
80  assert('is_bool($listViewRowsAreSelectable)');
81  assert('$activeActionElementType == null || is_string($activeActionElementType)');
82  $this->controllerId = $controllerId;
83  $this->moduleId = $moduleId;
84  $this->model = $model;
85  $this->listViewGridId = $listViewGridId;
86  $this->pageVarName = $pageVarName;
87  $this->listViewRowsAreSelectable = $listViewRowsAreSelectable;
88  $this->activeActionElementType = $activeActionElementType;
89  $this->introView = $introView;
90  }
91 
92  protected function renderContent()
93  {
94  $content = '<div class="view-toolbar-container clearfix">';
95  $firstActionElementBarContent = $this->renderActionElementBar(false);
96  if ($firstActionElementBarContent == null)
97  {
98  $extraClass = ' empty';
99  }
100  else
101  {
102  $extraClass = null;
103  }
104 
105  $content .= '<nav class="pillbox clearfix' . $extraClass. '">' . $firstActionElementBarContent . '</nav>'; // Not Coding Standard
106  if (!Yii::app()->userInterface->isMobile() &&
107  null != $secondActionElementBarContent = $this->renderSecondActionElementBar(false))
108  {
109  $content .= '<nav class="pillbox clearfix">' . $secondActionElementBarContent . '</nav>';
110  }
111  $content .= '</div>';
112  if (isset($this->introView))
113  {
114  $content .= $this->introView->render();
115  }
116  return $content;
117  }
118 
119  public static function getDefaultMetadata()
120  {
121  $metadata = array(
122  'global' => array(
123  'toolbar' => array(
124  'elements' => array(
125  array('type' => 'CreateMenu',
126  'iconClass' => 'icon-create'),
127  array('type' => 'MassEditMenu',
128  'listViewGridId' => 'eval:$this->listViewGridId',
129  'pageVarName' => 'eval:$this->pageVarName',
130  'iconClass' => 'icon-edit'),
131  array('type' => 'ExportMenu',
132  'listViewGridId' => 'eval:$this->listViewGridId',
133  'pageVarName' => 'eval:$this->pageVarName',
134  'iconClass' => 'icon-export'),
135  array('type' => 'MassDeleteMenu',
136  'listViewGridId' => 'eval:$this->listViewGridId',
137  'pageVarName' => 'eval:$this->pageVarName',
138  'iconClass' => 'icon-delete'),
139  ),
140  ),
141  ),
142  );
143  return $metadata;
144  }
145 
150  protected function shouldRenderToolBarElement($element, $elementInformation)
151  {
152  assert('$element instanceof ActionElement');
153  assert('is_array($elementInformation)');
154  if (!parent::shouldRenderToolBarElement($element, $elementInformation))
155  {
156  return false;
157  }
158  if ($this->activeActionElementType == ListViewTypesToggleLinkActionElement::TYPE_KANBAN_BOARD &&
159  ($elementInformation['type'] == 'MassEditMenu' ||
160  $elementInformation['type'] == 'MassDeleteMenu' ||
161  $elementInformation['type'] == 'ExportMenu'))
162  {
163  return false;
164  }
165  if ($elementInformation['type'] == 'MassEditMenu' && !$this->listViewRowsAreSelectable)
166  {
167  return false;
168  }
169  return true;
170  }
171 
172  protected function resolveActionElementInformationDuringRender(& $elementInformation)
173  {
174  parent::resolveActionElementInformationDuringRender($elementInformation);
175  if ($elementInformation['type'] == $this->activeActionElementType)
176  {
177  if (isset($elementInformation['htmlOptions']['class']))
178  {
179  $elementInformation['htmlOptions']['class'] .= ' active';
180  }
181  else
182  {
183  $elementInformation['htmlOptions']['class'] = 'active';
184  }
185  }
186  }
187  }
188 ?>
renderSecondActionElementBar($renderedInForm)
shouldRenderToolBarElement($element, $elementInformation)
renderActionElementBar($renderedInForm)
Generated on Thu Jul 2 2020 07:10:30
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.