Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
PortletController.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 PortletController extends Controller
41  {
49  public function actionSaveLayout()
50  {
51  $portlets = Portlet::getByLayoutIdAndUserSortedById($_POST['portletLayoutConfiguration']['uniqueLayoutId'], Yii::app()->user->userModel->id);
52  $portletsStillOnLayout = array();
53  if (!empty($_POST['portletLayoutConfiguration']['portlets']))
54  {
55  foreach ($_POST['portletLayoutConfiguration']['portlets'] as $key => $portletPostData)
56  {
57  $idParts = explode("_", $portletPostData['id']);
58  $portlets[$idParts[1]]->column = $portletPostData['column'] + 1;
59  $portlets[$idParts[1]]->position = $portletPostData['position'] + 1;
60  $portlets[$idParts[1]]->collapsed = BooleanUtil::boolVal($portletPostData['collapsed']);
61  $portlets[$idParts[1]]->save();
62  $portletsStillOnLayout[$idParts[1]] = $idParts[1];
63  }
64  }
65  foreach ($portlets as $portletId => $portlet)
66  {
67  if (!isset($portletsStillOnLayout[$portletId]))
68  {
69  $portlet->delete();
70  }
71  }
72  }
73 
80  public function actionModalConfigEdit()
81  {
82  if (isset($_POST['ajax']) && $_POST['ajax'] === 'modal-edit-form')
83  {
84  $this->actionModalConfigValidate();
85  }
86  Yii::app()->getClientScript()->setToAjaxMode();
87  $portlet = Portlet::getById(intval($_GET['portletId']));
88  $portlet->params = array(
89  'modalConfigSaveAction' => 'modalConfigSave',
90  'controllerId' => $this->getId(),
91  'moduleId' => $this->getModule()->getId(),
92  'uniquePortletPageId' => $portlet->getUniquePortletPageId(),
93  );
95  $configurableView = $portlet->getView()->getConfigurationView();
96  $view = new ModalView($this, $configurableView);
97  echo $view->render();
98  }
99 
100  protected function actionModalConfigValidate()
101  {
102  $portlet = Portlet::getById(intval($_GET['portletId']));
104  $configurableView = $portlet->getView()->getConfigurationView();
105  $configurableView->validate();
106  Yii::app()->end(0, false);
107  }
108 
112  public function actionModalConfigSave($portletId, $uniqueLayoutId, array $portletParams = array())
113  {
114  $portlet = Portlet::getById(intval($portletId));
115  $configurableView = $portlet->getView()->getConfigurationView();
116  $configurableView->setMetadataFromPost($_POST[$configurableView->getPostArrayName()]);
117  $portlet->serializedViewData = serialize($configurableView->getViewMetadata());
118  $portlet->save();
119  $portlet->forget();
120  StickyUtil::clearDataByKey($uniqueLayoutId.'_'.$portletId);
121  $this->actionModalRefresh($portletId, $uniqueLayoutId, null, $portletParams);
122  }
123 
134  public function actionModalRefresh($portletId, $uniqueLayoutId, $redirectUrl, array $portletParams = array(),
135  $portletsAreRemovable = true)
136  {
137  $portlet = Portlet::getById(intval($portletId));
138  $portlet->params = array_merge(array(
139  'controllerId' => 'default',
140  'moduleId' => $this->getModule()->getId(),
141  'redirectUrl' => $redirectUrl), $portletParams);
142  if (isset($portlet->params['relationModelId']) && $portlet->params['relationModelId'] != '')
143  {
144  assert('$portlet->params["relationModuleId"] != ""');
145  $modelClassName = Yii::app()->findModule($portlet->params["relationModuleId"])->getPrimaryModelName();
146  $portlet->params['relationModel'] = $modelClassName::getById((int)$portlet->params['relationModelId']);
147  }
148  $view = new AjaxPageView(new PortletRefreshView($portlet, $uniqueLayoutId, $this->getModule()->getId(),
149  (bool)$portletsAreRemovable));
150  echo $view->render();
151  }
152 
156  protected function resolveAddingRelationModelIdToPortletParams($portlet)
157  {
158  }
159  }
160 ?>
resolveAddingRelationModelIdToPortletParams($portlet)
static boolVal($var)
Definition: BooleanUtil.php:46
static getById($id, $modelClassName=null)
actionModalConfigSave($portletId, $uniqueLayoutId, array $portletParams=array())
actionModalRefresh($portletId, $uniqueLayoutId, $redirectUrl, array $portletParams=array(), $portletsAreRemovable=true)
Generated on Thu Jul 9 2020 07:10:28
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.