Notifications: Difference between revisions
From LimeSurvey Manual
Line 14: | Line 14: | ||
All notifications are created on server side with PHP. A page reload is always necessary to see new notifications. | All notifications are created on server side with PHP. A page reload is always necessary to see new notifications. | ||
A notification can either be of type 'important' or the default type. Important messages will show a modal popup at page load. Default messages will only show a notification at the bell in the admin menu. | A notification can either be of type 'important' or the default type 'log'. Important messages will show a modal popup at page load. Default messages will only show a notification at the bell in the admin menu. | ||
See examples below for more information. | |||
== Localization == | == Localization == |
Revision as of 11:46, 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
All notifications are created on server side with PHP. A page reload is always necessary to see new notifications.
A notification can either be of type 'important' or the default type 'log'. Important messages will show a modal popup at page load. Default messages will only show a notification at the bell in the admin menu.
See examples below for more information.
Localization
Support localization for messages dynamically created by admin?
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
This notification will be visible for all users who visit the 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
Visible on page load.
$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
Only this user can see this notification.
$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
All users will get this notification.
Notification::broadcast(array(
'title' => 'To all users',
'message' => 'I\'m in love with Marge. I don\'t care if everyone knows.'
));
Modal class
You can change the modal class of the modal popup using modal_class.
$not = new Notification(array(
'survey_id' => 316222,
'title' => 'Error',
'message' => 'This modal will have a red panel header, because it\'s an error.',
'modal_class' => 'warning'
));
$not->save();
Open issues
- Merge with Yii flash system?
- More plugin friendly? E.g. having a message history page, adding soft delete.