- Publicity: Public Only All
notification-display-procs.tcl
Notifications Display Procs. Notifications is mostly a service package, but it does have some level of user interface. These procs enable other packages to simply display information about notifications.
- Location:
- packages/notifications/tcl/notification-display-procs.tcl
- Created:
- 2002-05-24
- Author:
- Ben Adida
- CVS Identification:
$Id: notification-display-procs.tcl,v 1.21.2.3 2022/07/12 14:05:27 antoniop Exp $
Procedures in this file
- notification::display::get_urls (public)
- notification::display::request_widget (public)
- notification::display::subscribe_url (public)
- notification::display::unsubscribe_url (public)
Detailed information
notification::display::get_urls (public)
notification::display::get_urls -type type -object_id object_id \ [ -return_url return_url ] [ -pretty_name pretty_name ] \ [ -user_id user_id ]
Get both subscribe_url and unsubscribe_url as a list. At most one of them will be set. Example:
lassign [notification::display::get_urls -type "my_notif_type" -object_id $object_id -pretty_name $title] subscribe_url unsubscribe_url
- Switches:
- -type (required)
- -object_id (required)
- -return_url (optional)
- -pretty_name (optional)
- -user_id (optional)
- Returns:
- a Tcl list with two elements (subscribe_url, unsubscribe_url)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
notification::display::request_widget (public)
notification::display::request_widget -type type -object_id object_id \ -pretty_name pretty_name -url url [ -user_id user_id ]
Produce a widget for requesting notifications of a given type. If the notifications package has not been mounted then return the empty string.
- Switches:
- -type (required)
- -object_id (required)
- -pretty_name (required)
- -url (required)
- -user_id (optional)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
notification::display::subscribe_url (public)
notification::display::subscribe_url -type type -object_id object_id \ -url url -user_id user_id [ -pretty_name pretty_name ]
Returns the URL that allows one to subscribe to a notification type on a particular object. If the notifications package has not been mounted return the empty string.
- Switches:
- -type (required)
- -object_id (required)
- -url (required)
- -user_id (required)
- -pretty_name (optional)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
notification::display::unsubscribe_url (public)
notification::display::unsubscribe_url -request_id request_id -url url
Returns the URL that allows one to unsubscribe from a particular request.
- Switches:
- -request_id (required)
- -url (required)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Content File Source
ad_library { Notifications Display Procs. Notifications is mostly a service package, but it does have some level of user interface. These procs enable other packages to simply display information about notifications. @creation-date 2002-05-24 @author Ben Adida <ben@openforce.biz> @cvs-id $Id: notification-display-procs.tcl,v 1.21.2.3 2022/07/12 14:05:27 antoniop Exp $ } namespace eval notification::display {} d_proc -public notification::display::request_widget { {-type:required} {-object_id:required} {-pretty_name:required} {-url:required} {-user_id ""} } { Produce a widget for requesting notifications of a given type. If the notifications package has not been mounted then return the empty string. } { # Check that we're mounted if { [apm_package_url_from_key [notification::package_key]] eq "" } { return {} } if {$user_id eq ""} { set user_id [ad_conn user_id] } # Get the type id set type_id [notification::type::get_type_id -short_name $type] # Check if subscribed set request_id [notification::request::get_request_id -type_id $type_id -object_id $object_id -user_id $user_id] if {$request_id ne ""} { set icon /resources/acs-subsite/email_delete.gif set icon_alt [_ acs-subsite.icon_of_envelope] set sub_url [unsubscribe_url -request_id $request_id -url $url] set pretty_name [ns_quotehtml $pretty_name] set title [_ notifications.lt_Ubsubscribe_Notification_] set sub_chunk [_ notifications.lt_You_have_requested_no] } else { set icon /resources/acs-subsite/email_add.gif set icon_alt [_ acs-subsite.icon_of_envelope] set sub_url [subscribe_url -type $type -object_id $object_id -url $url -user_id $user_id -pretty_name $pretty_name] set pretty_name [ns_quotehtml $pretty_name] set title [_ notifications.lt_Request_Notification_] set sub_chunk [_ notifications.lt_You_may_a_hrefsub_url] } set notif_chunk "<a href=\"[ns_quotehtml $sub_url]\" title=\"[ns_quotehtml $title]\">\ <img src=\"$icon\" alt=\"$icon_alt\" style=\"border:0\">$sub_chunk</a>" # if they are an admin give them to view all subscribers if { [permission::permission_p -object_id $object_id -privilege admin] } { set href [export_vars -base /notifications/subscribers -url {object_id}] append notif_chunk " \[<a href=\"[ns_quotehtml $href]\">[_ notifications.Subscribers]</a>\]" } if { $sub_url ne "" } { return $notif_chunk } else { return "" } } d_proc -public notification::display::subscribe_url { {-type:required} {-object_id:required} {-url:required} {-user_id:required} {-pretty_name} } { Returns the URL that allows one to subscribe to a notification type on a particular object. If the notifications package has not been mounted return the empty string. } { set type_id [notification::type::get_type_id -short_name $type] set root_path [apm_package_url_from_key [notification::package_key]] if { $root_path eq "" } { return "" } set subscribe_url [export_vars -base "${root_path}request-new" { type_id user_id object_id pretty_name {return_url $url} }] return $subscribe_url } d_proc -public notification::display::unsubscribe_url { {-request_id:required} {-url:required} } { Returns the URL that allows one to unsubscribe from a particular request. } { set root_path [apm_package_url_from_key [notification::package_key]] if { $root_path eq "" } { return "" } set unsubscribe_url [export_vars -base "${root_path}request-delete" { request_id { return_url $url } }] return $unsubscribe_url } d_proc -public notification::display::get_urls { {-type:required} {-object_id:required} {-return_url {}} {-pretty_name} -user_id } { Get both subscribe_url and unsubscribe_url as a list. At most one of them will be set. Example: <pre> lassign [notification::display::get_urls \ -type "my_notif_type" \ -object_id $object_id \ -pretty_name $title] subscribe_url unsubscribe_url </pre> @return a Tcl list with two elements (subscribe_url, unsubscribe_url) } { set root_path [apm_package_url_from_key [notification::package_key]] if { $root_path eq "" } { return [list {} {}] } set type_id [notification::type::get_type_id -short_name $type] if { $return_url eq "" } { set return_url [ad_return_url] } # Check if subscribed if {![info exists user_id]} { set user_id [ad_conn untrusted_user_id] } set request_id [notification::request::get_request_id \ -type_id $type_id -object_id $object_id -user_id $user_id] if { $request_id eq "" } { return [list [export_vars -base "${root_path}request-new" { type_id object_id pretty_name return_url }] {}] } else { return [list {} [export_vars -base "${root_path}request-delete" { request_id return_url }]] } } # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: