mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-23 23:29:31 +01:00
bringing notificaions to v1.4
This commit is contained in:
commit
fddb756140
@ -20,11 +20,13 @@ interface iface_notification {
|
|||||||
* @param object $_account
|
* @param object $_account
|
||||||
* @param object $_preferences
|
* @param object $_preferences
|
||||||
*/
|
*/
|
||||||
public function __construct( $_account, $_preferences );
|
public function __construct( $_account=false, $_preferences=false );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sends notification
|
* sends notification
|
||||||
*
|
*
|
||||||
|
* @abstract NOTE, $_message contains some html-tags (<p><a><b><br>)
|
||||||
|
* implementing class needs to handle them somehow.
|
||||||
* @param string $_message
|
* @param string $_message
|
||||||
*/
|
*/
|
||||||
public function send( $_message );
|
public function send( $_message );
|
||||||
|
@ -43,6 +43,10 @@ final class notification {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* sets notification message
|
* sets notification message
|
||||||
|
* @abstract $message accepts html tags: <p><a><b><br>.
|
||||||
|
* NOTE: There is no XSS prevention in notifications framework!
|
||||||
|
* You have to filter userinputs yourseve (e.g. htmlspechialchars() )
|
||||||
|
*
|
||||||
* @param string &$message
|
* @param string &$message
|
||||||
*/
|
*/
|
||||||
public function set_message($_message) {
|
public function set_message($_message) {
|
||||||
@ -125,4 +129,26 @@ final class notification {
|
|||||||
return $this->receivers;
|
return $this->receivers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Small helper function to just send a message
|
||||||
|
*
|
||||||
|
* @abstract To stay php4 compatible for the 1.4 release we don't
|
||||||
|
* throw exeptions here. This behaviour will change after 1.4!
|
||||||
|
* @param array $receivers
|
||||||
|
* @param string $message
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function notify( array $_receivers, $_message ) {
|
||||||
|
$notification = new notification();
|
||||||
|
$notification->set_receivers( $_receivers );
|
||||||
|
$notification->set_message( $_message );
|
||||||
|
try{
|
||||||
|
$notification->send();
|
||||||
|
}
|
||||||
|
catch(Exception $exception) {
|
||||||
|
return $exception->getMessage();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -68,10 +68,8 @@ class notification_popup implements iface_notification {
|
|||||||
// If we are called from class notification account and prefs are objects.
|
// If we are called from class notification account and prefs are objects.
|
||||||
// otherwise we have to fetch this objects for current user.
|
// otherwise we have to fetch this objects for current user.
|
||||||
if (!is_object($_account)) {
|
if (!is_object($_account)) {
|
||||||
$account_id = $GLOBALS['egw_info']['user']['account_id'];
|
$this->account = (object) $GLOBALS['egw']->accounts->read($_account);
|
||||||
$this->account = $GLOBALS['egw']->accounts->get_account_data($account_id);
|
$this->account->id =& $this->account->account_id;
|
||||||
$this->account[$account_id]['id'] = $account_id;
|
|
||||||
$this->account = (object)$this->account[$account_id];
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$this->account = $_account;
|
$this->account = $_account;
|
||||||
@ -94,7 +92,7 @@ class notification_popup implements iface_notification {
|
|||||||
$user_sessions[] = $session['session_id'];
|
$user_sessions[] = $session['session_id'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( empty($user_sessions) ) throw new Exception("Notice: User $this->account isn't online. Can't send notification via popup");
|
if ( empty($user_sessions) ) throw new Exception("Notice: User #{$this->account->id} isn't online. Can't send notification via popup");
|
||||||
$this->save( $_message, $user_sessions );
|
$this->save( $_message, $user_sessions );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,10 +116,10 @@ class notification_popup implements iface_notification {
|
|||||||
while ($notification = $this->db->row(true)) {
|
while ($notification = $this->db->row(true)) {
|
||||||
switch (self::_window ) {
|
switch (self::_window ) {
|
||||||
case 'div' :
|
case 'div' :
|
||||||
$message .= nl2br($notification['message']). '<br>';
|
$message .= '<p>'. nl2br($notification['message']). '</p>';
|
||||||
break;
|
break;
|
||||||
case 'alert' :
|
case 'alert' :
|
||||||
$message .= $notification['message']. "\n";
|
$message .= ".\n". $notification['message']. "\n";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,10 +11,9 @@
|
|||||||
* @link http://www.egroupware.org
|
* @link http://www.egroupware.org
|
||||||
* @author Cornelius Weiss <nelius@cwtech.de>
|
* @author Cornelius Weiss <nelius@cwtech.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
* @todo check if user wants notifications via egw popup!
|
|
||||||
*/
|
*/
|
||||||
$GLOBALS['egw']->translation->add_app('notifications');
|
|
||||||
if (!$GLOBALS['egw_info']['user']['preferences']['notifications']['disable_ajaxpopup']) {
|
if (!$GLOBALS['egw_info']['user']['preferences']['notifications']['disable_ajaxpopup']) {
|
||||||
|
$GLOBALS['egw']->translation->add_app('notifications');
|
||||||
echo '<script src="'. $GLOBALS['egw_info']['server']['webserver_url']. '/notifications/js/notificationajaxpopup.js'. '" type="text/javascript"></script>';
|
echo '<script src="'. $GLOBALS['egw_info']['server']['webserver_url']. '/notifications/js/notificationajaxpopup.js'. '" type="text/javascript"></script>';
|
||||||
echo '<script type="text/javascript">notificationwindow_init();</script>';
|
echo '<script type="text/javascript">notificationwindow_init();</script>';
|
||||||
echo '
|
echo '
|
||||||
|
@ -13,7 +13,7 @@ function notificationwindow_init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function notificationwindow_setTimeout() {
|
function notificationwindow_setTimeout() {
|
||||||
window.setTimeout("notificationwindow_refresh();", 10000);
|
window.setTimeout("notificationwindow_refresh();", 60000);
|
||||||
}
|
}
|
||||||
function notificationwindow_refresh() {
|
function notificationwindow_refresh() {
|
||||||
xajax_doXMLHTTP("notifications.notification_popup.ajax_get_notifications");
|
xajax_doXMLHTTP("notifications.notification_popup.ajax_get_notifications");
|
||||||
|
3
notifications/setup/phpgw_pl.lang
Normal file
3
notifications/setup/phpgw_pl.lang
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
don't notify me via popups in egroupware notifications pl Nie powiadamiaj mnie przez okienka wyskakuj±ce w eGroupWare
|
||||||
|
notification common pl Powiadomienie
|
||||||
|
preferences for notification notifications pl Preferencje dla powiadomienia
|
@ -1,3 +1,3 @@
|
|||||||
don't notify me via popups in egroupware notifications sk Neupozoròuj ma cez vyskakovacie okná v eGroupWare
|
don't notify me via popups in egroupware notifications sk Neupozoròuj ma cez vyskakovacie okná v eGroupWare
|
||||||
notification common sk Pripomienka
|
notification common sk Pripomienka
|
||||||
preferences for notification notifications sk Nastavenia pre Pripomienky
|
preferences for notification notifications sk Predvoµby pre Pripomienky
|
||||||
|
@ -15,7 +15,7 @@ if (!defined('NOTIFICATION_APP'))
|
|||||||
}
|
}
|
||||||
|
|
||||||
$setup_info[NOTIFICATION_APP]['name'] = NOTIFICATION_APP;
|
$setup_info[NOTIFICATION_APP]['name'] = NOTIFICATION_APP;
|
||||||
$setup_info[NOTIFICATION_APP]['version'] = '0.6';
|
$setup_info[NOTIFICATION_APP]['version'] = '1.4';
|
||||||
$setup_info[NOTIFICATION_APP]['app_order'] = 1;
|
$setup_info[NOTIFICATION_APP]['app_order'] = 1;
|
||||||
$setup_info[NOTIFICATION_APP]['tables'] = array('egw_notificationpopup');
|
$setup_info[NOTIFICATION_APP]['tables'] = array('egw_notificationpopup');
|
||||||
$setup_info[NOTIFICATION_APP]['enable'] = 2;
|
$setup_info[NOTIFICATION_APP]['enable'] = 2;
|
||||||
@ -40,10 +40,10 @@ $setup_info[NOTIFICATION_APP]['hooks'][] = 'preferences';
|
|||||||
/* Dependencies for this app to work */
|
/* Dependencies for this app to work */
|
||||||
$setup_info[NOTIFICATION_APP]['depends'][] = array(
|
$setup_info[NOTIFICATION_APP]['depends'][] = array(
|
||||||
'appname' => 'phpgwapi',
|
'appname' => 'phpgwapi',
|
||||||
'versions' => Array('1.2','1.3')
|
'versions' => Array('1.3','1.4','1.5')
|
||||||
);
|
);
|
||||||
$setup_info[NOTIFICATION_APP]['depends'][] = array(
|
$setup_info[NOTIFICATION_APP]['depends'][] = array(
|
||||||
'appname' => 'etemplate',
|
'appname' => 'etemplate',
|
||||||
'versions' => Array('1.2','1.3')
|
'versions' => Array('1.3','1.4','1.5')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -22,4 +22,11 @@
|
|||||||
|
|
||||||
return $GLOBALS['setup_info']['notifications']['currentver'] = '0.6';
|
return $GLOBALS['setup_info']['notifications']['currentver'] = '0.6';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$test[] = '0.6';
|
||||||
|
function notifications_upgrade0_6()
|
||||||
|
{
|
||||||
|
return $GLOBALS['setup_info']['notifications']['currentver'] = '1.4';
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
Loading…
Reference in New Issue
Block a user