public static function get_change_subscription_icon_tags($category_name, $id) { $category_id = self::get_category_id($category_name); if (!$category_id) { return; } $last_seen = self::check_if_notified($category_name, $id); load_js('modules/Utils/Watchdog/subscribe.js'); $tag_id = 'watchdog_sub_button_' . $category_name . '_' . $id; $href = ' onclick="utils_watchdog_set_subscribe(' . ($last_seen === null ? 1 : 0) . ',\'' . $category_name . '\',' . $id . ',\'' . $tag_id . '\')" href="javascript:void(0);"'; if ($last_seen === null) { $icon = Base_ThemeCommon::get_template_file('Utils_Watchdog', 'not_watching_small.png'); $tooltip = __('Click to watch this record for changes.'); } else { if ($last_seen === true) { $icon = Base_ThemeCommon::get_template_file('Utils_Watchdog', 'watching_small.png'); $tooltip = __('You are watching this record, click to stop watching this record for changes.'); } else { $icon = Base_ThemeCommon::get_template_file('Utils_Watchdog', 'watching_small_new_events.png'); $ev = self::display_events($category_id, $last_seen, $id); $tooltip = __('You are watching this record, click to stop watching this record for changes.') . ($ev ? '<br>' . __('The following changes were made since the last time you were viewing this record:') . '<br><br>' . $ev['events'] : ''); } } $subscribers = self::get_subscribers($category_name, $id); $my_user = Base_AclCommon::get_user(); if ($subscribers) { $icon_on = ' src="' . Base_ThemeCommon::get_template_file('Utils_Watchdog', 'watching_small.png') . '"'; $icon_off = ' src="' . Base_ThemeCommon::get_template_file('Utils_Watchdog', 'watching_small_new_events.png') . '"'; $other_subscribers = array(); foreach ($subscribers as $subscriber) { if ($subscriber == $my_user) { continue; } if (class_exists('CRM_ContactsCommon')) { $contact = CRM_ContactsCommon::get_user_label($subscriber, true); } else { $contact = Base_UserCommon::get_user_login($subscriber); } $notified = self::user_check_if_notified($subscriber, $category_name, $id); $icon2 = $notified === true ? $icon_on : $icon_off; $other_subscribers[] = '<img style="margin-right:4px;" ' . $icon2 . ' /><a>' . Utils_RecordBrowserCommon::no_wrap($contact) . '</a>'; } if ($other_subscribers) { $tooltip .= '<hr />' . implode('<br>', $other_subscribers); } } $tooltip = Utils_TooltipCommon::open_tag_attrs($tooltip); return '<a ' . $href . ' ' . $tooltip . '><img border="0" src="' . $icon . '"></a>'; }
public static function display_contacts_with_notification($recordset, $record, $nolink, $desc) { $icon_on = Utils_TooltipCommon::open_tag_attrs(__('This person is up to date with all changes made to this record.')) . ' src="' . Base_ThemeCommon::get_template_file('Utils_Watchdog', 'watching_small.png') . '"'; $icon_off = Utils_TooltipCommon::open_tag_attrs(__('This person has notifications pending about changes made to this record.')) . ' src="' . Base_ThemeCommon::get_template_file('Utils_Watchdog', 'watching_small_new_events.png') . '"'; $icon_none = Utils_TooltipCommon::open_tag_attrs(__('This person is not watching this record.')) . ' src="' . Base_ThemeCommon::get_template_file('Utils_Watchdog', 'not_watching_small.png') . '"'; $v = $record[$desc['id']]; $def = ''; $first = true; $param = explode(';', $desc['param']); if (!is_array($v) && !is_numeric($v)) { return $v; } if ($param[1] == '::') { $callback = array('CRM_ContactsCommon', 'contact_format_default'); } else { $callback = explode('::', $param[1]); } if (!is_array($v)) { $v = array($v); } foreach ($v as $k => $w) { if ($w == '') { break; } if ($first) { $first = false; } else { $def .= '<br>'; } $contact = CRM_ContactsCommon::get_contact($w); if (!$nolink) { if ($contact['login'] == '') { $icon = $icon_none; } else { $icon = Utils_WatchdogCommon::user_check_if_notified($contact['login'], $recordset, $record['id']); if ($icon === null) { $icon = $icon_none; } elseif ($icon === true) { $icon = $icon_on; } else { $icon = $icon_off; } } $def .= '<img style="margin-right:4px;" ' . $icon . ' />'; } $def .= Utils_RecordBrowserCommon::no_wrap(call_user_func($callback, $contact, $nolink)); } if (!$def) { $def = '---'; } return $def; }