Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
DropdownSupportedLinkActionElement.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  {
42  const MENU_ID = 'ListViewActionMenu';
43 
44  abstract public function getElementValue();
45 
46  public static function useItemUrlAsElementValue()
47  {
48  return false;
49  }
50 
51  public static function getDropDownId()
52  {
53  return static::MENU_ID;
54  }
55 
56  public static function shouldRenderAsDropDownWhenRequired()
57  {
58  return true;
59  }
60 
61  public function registerDropDownScripts($dropDownId = null, $scriptName = null)
62  {
63  if (!$dropDownId)
64  {
65  $dropDownId = static::getDropDownId();
66  }
67  if (!$scriptName)
68  {
69  $scriptName = $dropDownId;
70  }
71  if (Yii::app()->clientScript->isScriptRegistered($scriptName))
72  {
73  return;
74  }
75  else
76  {
77  Yii::app()->clientScript->registerScript($scriptName, "
78  $('#" . $dropDownId . "').unbind('change.action').bind('change.action', function()
79  {
80  // Heavy dependence on DOM...
81  selectedOption = $(this).find(':selected');
82  selectedOptionId = selectedOption.attr('id');
83  if (selectedOptionId)
84  {
85  selectedOptionValue = selectedOption.val();
86  hostInfo = '" . Yii::app()->request->hostInfo . "';
87  url = hostInfo + selectedOptionValue;
88  if (selectedOptionValue.indexOf('/') == 0)
89  {
90  if ($(this).isValidUrl(url))
91  {
92  window.location.href = url;
93  }
94  }
95  else
96  {
97  if (typeof window[selectedOptionValue] == 'function')
98  {
99  window[selectedOptionValue]();
100  }
101  }
102  $('#" . $dropDownId . "').val('');
103  }
104  }
105  );
106  ", CClientScript::POS_END);
107  }
108  }
109 
110  public function renderMenuItem()
111  {
112  $parentMenuItem = parent::renderMenuItem();
113  $itemOptions = array( 'itemOptions' => array('id' => get_class($this)));
114  $content = CMap::mergeArray($parentMenuItem, $itemOptions);
115  return $content;
116  }
117 
118  public function getOptGroup()
119  {
120  }
121 
122  public function getOptions()
123  {
124  return $this->renderMenuItem();
125  }
126 
127  protected function getListViewGridId()
128  {
129  if (!isset($this->params['listViewGridId']))
130  {
131  throw new NotSupportedException();
132  }
133  return $this->params['listViewGridId'];
134  }
135  }
136 ?>
Generated on Sun Jul 12 2020 07:10:26
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.