/** * Display notification targets * * @param $notification the Notification object **/ function showNotificationTargets(Notification $notification) { global $LANG, $DB; if ($notification->getField('itemtype') != '') { $notifications_id = $notification->fields['id']; $this->getNotificationTargets($_SESSION['glpiactive_entity']); $canedit = $notification->can($notifications_id, 'w'); $options = ""; // Get User mailing $query = "SELECT `glpi_notificationtargets`.`items_id`,\n `glpi_notificationtargets`.`id`\n FROM `glpi_notificationtargets`\n WHERE `glpi_notificationtargets`.`notifications_id` = '{$notifications_id}'\n AND `glpi_notificationtargets`.`type` = '" . Notification::USER_TYPE . "'\n ORDER BY `glpi_notificationtargets`.`items_id`"; foreach ($DB->request($query) as $data) { if (isset($this->notification_targets[Notification::USER_TYPE . "_" . $data["items_id"]])) { unset($this->notification_targets[Notification::USER_TYPE . "_" . $data["items_id"]]); } if (isset($this->notification_targets_labels[Notification::USER_TYPE][$data["items_id"]])) { $name = $this->notification_targets_labels[Notification::USER_TYPE][$data["items_id"]]; } else { $name = " "; } $options .= "<option value='" . $data["id"] . "'>" . $name . "</option>"; } // Get Profile mailing $query = "SELECT `glpi_notificationtargets`.`items_id`,\n `glpi_notificationtargets`.`id`,\n `glpi_profiles`.`name` AS `prof`\n FROM `glpi_notificationtargets`\n LEFT JOIN `glpi_profiles`\n ON (`glpi_notificationtargets`.`items_id` = `glpi_profiles`.`id`)\n WHERE `glpi_notificationtargets`.`notifications_id` = '{$notifications_id}'\n AND `glpi_notificationtargets`.`type` = '" . Notification::PROFILE_TYPE . "'\n ORDER BY `prof`"; foreach ($DB->request($query) as $data) { $options .= "<option value='" . $data["id"] . "'>" . $LANG['profiles'][22] . " " . $data["prof"] . "</option>"; if (isset($this->notification_targets[Notification::PROFILE_TYPE . "_" . $data["items_id"]])) { unset($this->notification_targets[Notification::PROFILE_TYPE . "_" . $data["items_id"]]); } } // Get Group mailing $query = "SELECT `glpi_notificationtargets`.`items_id`,\n `glpi_notificationtargets`.`id`,\n `glpi_groups`.`name` AS `name`\n FROM `glpi_notificationtargets`\n LEFT JOIN `glpi_groups`\n ON (`glpi_notificationtargets`.`items_id` = `glpi_groups`.`id`)\n WHERE `glpi_notificationtargets`.`notifications_id`='{$notifications_id}'\n AND `glpi_notificationtargets`.`type` = '" . Notification::GROUP_TYPE . "'\n ORDER BY `name`;"; foreach ($DB->request($query) as $data) { $options .= "<option value='" . $data["id"] . "'>" . $LANG['common'][35] . " " . $data["name"] . "</option>"; if (isset($this->notification_targets[Notification::GROUP_TYPE . "_" . $data["items_id"]])) { unset($this->notification_targets[Notification::GROUP_TYPE . "_" . $data["items_id"]]); } } // Get Group mailing $query = "SELECT `glpi_notificationtargets`.`items_id`,\n `glpi_notificationtargets`.`id`,\n `glpi_groups`.`name` AS `name`\n FROM `glpi_notificationtargets`\n LEFT JOIN `glpi_groups`\n ON (`glpi_notificationtargets`.`items_id` = `glpi_groups`.`id`)\n WHERE `glpi_notificationtargets`.`notifications_id`='{$notifications_id}'\n AND `glpi_notificationtargets`.`type`\n = '" . Notification::SUPERVISOR_GROUP_TYPE . "'\n ORDER BY `name`;"; foreach ($DB->request($query) as $data) { $options .= "<option value='" . $data["id"] . "'>" . $LANG['common'][64] . ' ' . $LANG['common'][35] . " " . $data["name"] . "</option>"; if (isset($this->notification_targets[Notification::SUPERVISOR_GROUP_TYPE . "_" . $data["items_id"]])) { unset($this->notification_targets[Notification::SUPERVISOR_GROUP_TYPE . "_" . $data["items_id"]]); } } if ($canedit) { echo "<td class='right'>"; if (count($this->notification_targets)) { echo "<select name='mailing_to_add[]' multiple size='5'>"; foreach ($this->notification_targets as $key => $val) { list($type, $items_id) = explode("_", $key); echo "<option value='{$key}'>" . $this->notification_targets_labels[$type][$items_id] . "</option>"; } echo "</select>"; } echo "</td><td class='center'>"; if (count($this->notification_targets)) { echo "<input type='submit' class='submit' name='mailing_add' value='" . $LANG['buttons'][8] . " >>'>"; } echo "<br><br>"; if (!empty($options)) { echo "<input type='submit' class='submit' name='mailing_delete' value='<< " . $LANG['buttons'][6] . "'>"; } echo "</td><td>"; } else { echo "<td class='center'>"; } if (!empty($options)) { echo "<select name='mailing_to_delete[]' multiple size='5'>"; echo $options . "</select>"; } else { echo " "; } echo "</td>"; } }
/** * Display notification registered for a group * * @since version 0.83 * * @param $group Group object * * @return nothing **/ static function showForGroup(Group $group) { global $DB; if (!Notification::canView()) { return false; } $sql = "SELECT `glpi_notifications`.`id`\n FROM `glpi_notificationtargets`\n INNER JOIN `glpi_notifications`\n ON (`glpi_notifications`.`id` = `glpi_notificationtargets`.`notifications_id`)\n WHERE `items_id` = '" . $group->getID() . "'\n AND (`type` = '" . Notification::SUPERVISOR_GROUP_TYPE . "'\n OR `type` = '" . Notification::GROUP_TYPE . "') " . getEntitiesRestrictRequest('AND', 'glpi_notifications', '', '', true); $req = $DB->request($sql); echo "<table class='tab_cadre_fixe'>"; if ($req->numrows()) { echo "<tr><th>" . __('Name') . "</th>"; echo "<th>" . Entity::getTypeName(1) . "</th>"; echo "<th>" . __('Active') . "</th>"; echo "<th>" . __('Type') . "</th>"; echo "<th>" . __('Notification method') . "</th>"; echo "<th>" . NotificationEvent::getTypeName(1) . "</th>"; echo "<th>" . NotificationTemplate::getTypeName(1) . "</th></tr>"; $notif = new Notification(); Session::initNavigateListItems('Notification', sprintf(__('%1$s = %2$s'), Group::getTypeName(1), $group->getName())); foreach ($req as $data) { Session::addToNavigateListItems('Notification', $data['id']); if ($notif->getFromDB($data['id'])) { echo "<tr class='tab_bg_2'><td>" . $notif->getLink(); echo "</td><td>" . Dropdown::getDropdownName('glpi_entities', $notif->getEntityID()); echo "</td><td>" . Dropdown::getYesNo($notif->getField('is_active')) . "</td><td>"; $itemtype = $notif->getField('itemtype'); if ($tmp = getItemForItemtype($itemtype)) { echo $tmp->getTypeName(1); } else { echo " "; } echo "</td><td>" . Notification::getMode($notif->getField('mode')); echo "</td><td>" . NotificationEvent::getEventName($itemtype, $notif->getField('event')); echo "</td>" . "<td>" . Dropdown::getDropdownName('glpi_notificationtemplates', $notif->getField('notificationtemplates_id')); echo "</td></tr>"; } } } else { echo "<tr class='tab_bg_2'><td class='b center'>" . __('No item found') . "</td></tr>"; } echo "</table>"; }
-------------------------------------------------------------------------- */ // ---------------------------------------------------------------------- // Original Author of file: // Purpose of file: // ---------------------------------------------------------------------- define('GLPI_ROOT', '..'); include GLPI_ROOT . "/inc/includes.php"; header("Content-Type: text/html; charset=UTF-8"); header_nocache(); $notification = new Notification(); if (isset($_POST['id']) && $_POST['id'] > 0 && $notification->can($_POST['id'], 'r')) { if (!isset($_REQUEST['glpi_tab'])) { exit; } $target = NotificationTarget::getInstanceByType($notification->getField('itemtype'), $notification->getField('event'), array('entities_id' => $notification->getField('entities_id'))); switch ($_REQUEST['glpi_tab']) { case -1: if ($target) { $target->showForNotification($notification); } Plugin::displayAction($notification, $_REQUEST['glpi_tab']); break; case 1: if ($target) { $target->showForNotification($notification); } break; case 12: $notification->getFromDB($_POST["id"]); Log::showForItem($notification);