Features/Messages Notification: Difference between revisions

Tch (talk | contribs)
Godiard (talk | contribs)
No edit summary
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<noinclude>{{TOCright}}
<noinclude>{{TOCright}}
[[Category:Feature Page Incomplete]]
[[Category:Feature Page Incomplete]]
[[Category:Feature|Messages Notification]]
[[Category:FeatureObsoleted|Messages Notification]]
</noinclude>
</noinclude>


Line 7: Line 7:
The current icons-only notification system is generally ineffective to fully communicate different kind of system events. This feature provides a set of extensions to the current system to display simple text messages.   
The current icons-only notification system is generally ineffective to fully communicate different kind of system events. This feature provides a set of extensions to the current system to display simple text messages.   


'''This feature will be use for especial events and messages communications, it is not intended to replace the current logging system and Log activity viewer.'''
'''This feature will be use for special events and communications, it is not intended to replace the current logging system and Log activity viewer.'''


== Owner ==
== Owner ==
* Name: [[User:tch|Martin Abente]]
* Name: [[User:tch|Martin Abente]], [[User:ajay|Ajay Garg]] (internet-links in notifications)
* Email: <tch AT sugarlabs DOT org>
* Email: <tch AT sugarlabs DOT org>, <ajay@activitycentral.com>


== Current status ==
== Current status ==
Line 18: Line 18:


== Detailed Description ==
== Detailed Description ==
* Extends our support for the [http://library.gnome.org/devel/notification-spec/ fd.o Desktop Notifications protocol]
* This feature requires a some re-factoring of jarabe.frame.notification(NotificationIcon, NotificationWindow) widgets.
* This feature requires a some re-factoring of jarabe.frame.notification(NotificationIcon, NotificationWindow) widgets.


Line 48: Line 50:
== How To Test ==
== How To Test ==
Running this python script should work (provided by Gonzalo Odiard):
Running this python script should work (provided by Gonzalo Odiard):
<code><pre>
import dbus
BUS_NAME = 'org.freedesktop.Notifications'
OBJ_PATH = '/org/freedesktop/Notifications'
IFACE_NAME = 'org.freedesktop.Notifications'
bus = dbus.SessionBus()
notify_obj = bus.get_object(BUS_NAME,OBJ_PATH)
notifications = dbus.Interface(notify_obj,IFACE_NAME)
notifications.Notify("HelloWorld",0,'',"Summary","Body",[],{},-1)
</pre></code>
== Internet-Links in Notifications ==
*This would help in navigating to any internet-link, by simply clicking on the link.
*There are two cases possible ::
** No instance of "Browse" is open. In this case, following sequence of steps happen ::
*** User clicks on the link in the notification.
*** "Browse" opens (in a new window, obviously) and the URL is loaded.
** There is an instance of "Browse" already open. In this case,
*** User clicks on the link.
*** The window gets switched to the "Browse" window (if not already).
*** The URL is loaded.
*Code changes required at the client-side ::
**If the link needs to be added, with a particular text for the hyerlink, the following code needs to be written :
<code><pre>  frame.add_message(body='Description', summary='First Title', link='http://www.linuxquestions.org', link_text='Click here to get answers to all your Linux questions')</pre></code>
**If no special text needs to be present for the link, we can skip the "link_text" attribute :
<code><pre>    frame.add_message(body='Description',summary='Second Title',link='http://www.wikipedia.org')</pre></code>
===Notifications===
[[Image:ns_1.png|640px]]
===User clicks on a link.===
[[Image:ns_2.png|640px]]
==="Browse" opens, and URL is loaded.===
[[Image:ns_3.png|640px]]
===User switches to Neighborhood-View. ===
[[Image:ns_4.png|640px]]
===User clicks another link.===
[[Image:ns_5.png|640px]]


  import dbus
===The view changes to "Browse" window (without opening a new  window), and the URL is loaded.===
  BUS_NAME = 'org.freedesktop.Notifications'
[[Image:ns_6.png|640px]]
  OBJ_PATH = '/org/freedesktop/Notifications'
  IFACE_NAME = 'org.freedesktop.Notifications'
  bus = dbus.SessionBus()
  notify_obj = bus.get_object(BUS_NAME,OBJ_PATH)
  notifications = dbus.Interface(notify_obj,IFACE_NAME)
  notifications.Notify("HelloWorld",0,'',"Summary","Body",[],{},-1)


== User Experience ==
== User Experience ==