Notifications: Difference between revisions
From LimeSurvey Manual
Line 69: | Line 69: | ||
== Examples == | == Examples == | ||
Create a new notification for a survey | '''Create a new notification for a survey''' | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
Line 80: | Line 80: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Send an important notification''' | |||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
Line 92: | Line 93: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Notification to a specific user''' | |||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
Line 104: | Line 106: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Broadcast''' | |||
<syntaxhighlight lang="php"> | |||
Notification::broadcast(array( | |||
'title' => 'To all users', | |||
'message' => 'I\'m in love with Marge. I don\'t care if everyone knows.' | |||
)); | |||
</syntaxhighlight> |
Revision as of 11:26, 4 August 2016
Have an icon in top menu about notifications to user. Can be bound to user, user group or survey.
Also need an 'irritating' message type that will be 'new' until a certain condition is fulfilled (like survey must be activated).
GUI
- Bell icon
- List of last 5 messages in menu where you can can see which messages are new
- History view of all messages? Grid view.
- Delete messages? Soft delete.
Usage
Should be possible for the developer to invoke new notification both from PHP and JS.
PHP:
$not = new Notification();
$not->type = 'danger';
$not->message = gT('New info!');
$not->save();
JS:
$.ajax(
url: 'notification.php',
data: {
message: translatedMessageString
}
).done(function(result) {
updateNotifications(result);
});
For JS: When to fire new message? At reload or immediate? Set option.
Localization
Support localization for messages dynamically created by admin?
Flash
Merge system with flash message, so that programmer will call addNotification
instead of setFlash
.
Pro:
- Store log of all notifications
Database
New database table required to make notifications persist between login/logout.
Fields:
- id
- entity, like survey, user, ...
- entity_id, survey id, user id, ...
- title, title of message (shown in dropdown and overview)
- message, the actual message
- modal_class, success, danger, default
- type, important, log
- status, new, read
- created, datetime
- read, datetime
Examples
Create a new notification for a survey
$not = new Notification(array(
'survey_id' => 316222,
'title' => 'My title',
'message' => 'Hello, and welcome to LimeSurvey! Anyone who can see this survey can see this message.'
));
$not->save();
Send an important notification
$not = new Notification(array(
'survey_id' => 316222,
'title' => 'My title',
'type' => 'important',
'message' => 'This notification will be a pop-up modal automaticall opened at load'
));
$not->save();
Notification to a specific user
$user = ...
$not = new Notification(array(
'user_id' => $user->id,
'title' => 'My title',
'message' => 'This is a love letter only Marge can see.'
));
$not->save();
Broadcast
Notification::broadcast(array(
'title' => 'To all users',
'message' => 'I\'m in love with Marge. I don\'t care if everyone knows.'
));