All Data Structures Functions Variables Pages
DesktopNotificationElement.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 function renderControlEditable()
47  {
48  $content = $this->renderEnableDesktopNotificationsCheckBox();
49  return ZurmoHtml::tag('div', array('id' => 'enableDesktopNotifications'), $content);
50  }
51 
52  protected function renderControlNonEditable()
53  {
54  throw new NotImplementedException();
55  }
56 
57  protected function renderLabel()
58  {
59  $content = parent::renderLabel();
60  $content .= $this->renderTooltipContentForEnableDesktopNotifications();
61  return $content;
62  }
63 
64  protected function renderEnableDesktopNotificationsCheckBox()
65  {
66  $htmlOptions = array();
67  $htmlOptions['id'] = $this->getEditableInputId();
68  $htmlOptions['name'] = $this->getEditableInputName();
69  $htmlOptions['disabled'] = $this->getDisabledValue();
70  $htmlOptions = array_merge($this->getHtmlOptions(), $htmlOptions);
71  $content = $this->form->checkBox($this->model, $this->attribute, $htmlOptions);
72  return ZurmoHtml::tag('span', array(), $content);
73  }
74 
75  protected static function renderTooltipContentForEnableDesktopNotifications()
76  {
77  $link = ZurmoHtml::link(Zurmo::t('Core', 'Click Here'),
78  '',
79  array('onClick' => 'js:desktopNotifications.requestAutorization(); return false;'));
80 
81  $title = Zurmo::t('UsersModule', '<p>This feature only works in Chrome when real time updates are globally enabled. </p>' .
82  '<p>Permissions need to be activated for each browser.</p>' .
83  '<p>To activate, <u>{link}</u> and choose "allow" at browser request.</p>',
84  array('{link}' => $link)
85  );
86  $content = ZurmoHtml::tag('span',
87  array('id' => 'user-enable-desktop-notifications-tooltip',
88  'class' => 'tooltip',
89  'title' => $title,
90  ),
91  '?');
92  $qtip = new ZurmoTip(array('options' => array('position' => array('my' => 'bottom right', 'at' => 'top left'),
93  'hide' => array('event' => 'unfocus'),
94  'show' => array('event' => 'click')
95 
96  )));
97  $qtip->addQTip("#user-enable-desktop-notifications-tooltip");
98  return $content;
99  }
100  }
101 ?>
getEditableInputName($attributeName=null, $relationAttributeName=null)
Definition: Element.php:303
getEditableInputId($attributeName=null, $relationAttributeName=null)
Definition: Element.php:277
Generated on Fri May 29 2020 07:10:34