Planning::showSingleLinePlanningFilter PHP Method

showSingleLinePlanningFilter() static public method

See self::showPlanningFilter function
static public showSingleLinePlanningFilter ( $filter_key, $filter_data, $options = [] ) : Nothing
$filter_key : identify curent line of filter
$filter_data : array of filter date, must contains : * 'show_delete' (boolean): show delete button * 'filter_color_index' (integer): index of the color to use in self::$palette_bg
$options
return Nothing (display function)
    static function showSingleLinePlanningFilter($filter_key, $filter_data, $options = array())
    {
        global $CFG_GLPI;
        $params['show_delete'] = true;
        $params['filter_color_index'] = 0;
        if (is_array($options) && count($options)) {
            foreach ($options as $key => $val) {
                $params[$key] = $val;
            }
        }
        $actor = explode('_', $filter_key);
        $uID = 0;
        $gID = 0;
        if ($filter_data['type'] == 'user') {
            $uID = $actor[1];
            $user = new User();
            $user->getFromDB($actor[1]);
            $title = $user->getName();
        } else {
            if ($filter_data['type'] == 'group_users') {
                $group = new Group();
                $group->getFromDB($actor[1]);
                $title = $group->getName();
            } else {
                if ($filter_data['type'] == 'group') {
                    $gID = $actor[1];
                    $group = new Group();
                    $group->getFromDB($actor[1]);
                    $title = $group->getName();
                } else {
                    if ($filter_data['type'] == 'event_filter') {
                        if (!$filter_key::canView() || !($item = getItemForItemtype($filter_key))) {
                            return false;
                        }
                        $title = $filter_key::getTypeName();
                    }
                }
            }
        }
        echo "<li event_type='" . $filter_data['type'] . "'\n               event_name='{$filter_key}'\n               class='" . $filter_data['type'] . "'>";
        Html::showCheckbox(array('name' => 'filters[]', 'value' => $filter_key, 'title' => $title, 'checked' => $filter_data['display']));
        if ($filter_data['type'] != 'event_filter') {
            $icon_type = explode('_', $filter_data['type']);
            echo "<img class='actor_icon' src='" . $CFG_GLPI['root_doc'] . "/pics/" . $icon_type[0] . ".png'>";
        }
        echo "<label for='{$filter_key}'>{$title}</label>";
        $color = self::$palette_bg[$params['filter_color_index']];
        if (isset($filter_data['color']) && !empty($filter_data['color'])) {
            $color = $filter_data['color'];
        } else {
            $params['filter_color_index']++;
            $color = self::getPaletteColor('bg', $params['filter_color_index']);
        }
        if ($filter_data['type'] != 'event_filter') {
            echo "<span class='filter_option'>";
            echo "<img class='pointer' src='" . $CFG_GLPI['root_doc'] . "/pics/down.png' />";
            echo "<ul>";
            if ($params['show_delete']) {
                echo "<li class='delete_planning' value='{$filter_key}'>" . __("Delete") . "</li>";
            }
            if ($filter_data['type'] != 'group_users') {
                $url = parse_url($CFG_GLPI["url_base"]);
                $port = 80;
                if (isset($url['port'])) {
                    $port = $url['port'];
                } else {
                    if (isset($url['scheme']) && $url["scheme"] == 'https') {
                        $port = 443;
                    }
                }
                $cal_url = "/front/planning.php?genical=1&uID=" . $uID . "&gID=" . $gID . "&entities_id=" . $_SESSION["glpiactive_entity"] . "&is_recursive=" . $_SESSION["glpiactive_entity_recursive"] . "&token=" . User::getPersonalToken(Session::getLoginUserID(true));
                echo "<li><a target='_blank' href='" . $CFG_GLPI["root_doc"] . "{$cal_url}'>" . _sx("button", "Export") . " - " . __("Ical") . "</a></li>";
                echo "<li><a target='_blank' href='webcal://" . $url['host'] . ":{$port}" . (isset($url['path']) ? $url['path'] : '') . "{$cal_url}'>" . _sx("button", "Export") . " - " . __("Webcal") . "</a></li>";
            }
            echo "</ul>";
            echo "</span>";
        }
        // colors not for groups
        if ($filter_data['type'] != 'group_users') {
            echo "<span class='color_input'>";
            Html::showColorField($filter_key . "_color", array('value' => $color));
            echo "</span>";
        }
        if ($filter_data['type'] == 'group_users') {
            echo "<span class='toggle pointer' />";
        }
        if ($filter_data['type'] == 'group_users') {
            echo "<ul class='group_listofusers filters'>";
            foreach ($filter_data['users'] as $user_key => $userdata) {
                self::showSingleLinePlanningFilter($user_key, $userdata, array('show_delete' => false, 'filter_color_index' => $params['filter_color_index']));
            }
            echo "</ul>";
        }
        echo "</li>";
    }