SLT::showForSla PHP Метод

showForSla() статический публичный Метод

Print the HTML array for SLTs linked to a SLA
static public showForSla ( SLA $sla ) : boolean
$sla SLA
Результат boolean
    static function showForSla(SLA $sla)
    {
        global $CFG_GLPI;
        $instID = $sla->fields['id'];
        $slt = new self();
        $calendar = new Calendar();
        if (!$sla->can($instID, READ)) {
            return false;
        }
        $canedit = $sla->canEdit($instID) && isset($_SESSION["glpiactiveprofile"]) && $_SESSION["glpiactiveprofile"]["interface"] == "central";
        $rand = mt_rand();
        if ($canedit) {
            echo "<div id='viewslt{$instID}{$rand}'></div>\n";
            echo "<script type='text/javascript' >";
            echo "function viewAddSlt{$instID}{$rand}() {";
            $params = array('type' => $slt->getType(), 'parenttype' => $sla->getType(), $sla->getForeignKeyField() => $instID, 'id' => -1);
            Ajax::updateItemJsCode("viewslt{$instID}{$rand}", $CFG_GLPI["root_doc"] . "/ajax/viewsubitem.php", $params);
            echo "}";
            echo "</script>";
            echo "<div class='center firstbloc'>" . "<a class='vsubmit' href='javascript:viewAddSlt{$instID}{$rand}();'>";
            echo __('Add a new SLT') . "</a></div>\n";
        }
        // SLT list
        $sltList = $slt->find("`slas_id` = '" . $instID . "'");
        Session::initNavigateListItems('SLT', sprintf(__('%1$s = %2$s'), $sla::getTypeName(1), $sla->getName()));
        echo "<div class='spaced'>";
        if (count($sltList)) {
            if ($canedit) {
                Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
                $massiveactionparams = array('container' => 'mass' . __CLASS__ . $rand);
                Html::showMassiveActions($massiveactionparams);
            }
            echo "<table class='tab_cadre_fixehov'>";
            $header_begin = "<tr>";
            $header_top = '';
            $header_bottom = '';
            $header_end = '';
            if ($canedit) {
                $header_top .= "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
                $header_top .= "</th>";
                $header_bottom .= "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
                $header_bottom .= "</th>";
            }
            $header_end .= "<th>" . __('Name') . "</th>";
            $header_end .= "<th>" . __('Type') . "</th>";
            $header_end .= "<th>" . __('Maximum time') . "</th>";
            $header_end .= "<th>" . __('Calendar') . "</th>";
            echo $header_begin . $header_top . $header_end;
            foreach ($sltList as $val) {
                $edit = $canedit ? "style='cursor:pointer' onClick=\"viewEditSlt" . $instID . $val["id"] . "{$rand}();\"" : '';
                echo "\n<script type='text/javascript' >\n";
                echo "function viewEditSlt" . $instID . $val["id"] . "{$rand}() {\n";
                $params = array('type' => $slt->getType(), 'parenttype' => $sla->getType(), $sla->getForeignKeyField() => $instID, 'id' => $val["id"]);
                Ajax::updateItemJsCode("viewslt{$instID}{$rand}", $CFG_GLPI["root_doc"] . "/ajax/viewsubitem.php", $params);
                echo "};";
                echo "</script>\n";
                echo "<tr class='tab_bg_1'>";
                echo "<td width='10' {$edit}>";
                if ($canedit) {
                    Html::showMassiveActionCheckBox($slt->getType(), $val['id']);
                }
                echo "</td>";
                $slt->getFromDB($val['id']);
                echo "<td {$edit}>" . $slt->getLink() . "</td>";
                echo "<td {$edit}>" . $slt->getSpecificValueToDisplay('type', $slt->fields['type']) . "</td>";
                echo "<td {$edit}>";
                echo $slt->getSpecificValueToDisplay('number_time', array('number_time' => $slt->fields['number_time'], 'definition_time' => $slt->fields['definition_time']));
                echo "</td>";
                if (!$sla->fields['calendars_id']) {
                    $link = __('24/7');
                } else {
                    if ($sla->fields['calendars_id'] == -1) {
                        $link = __('Calendar of the ticket');
                    } else {
                        if ($calendar->getFromDB($sla->fields['calendars_id'])) {
                            $link = $calendar->getLink();
                        }
                    }
                }
                echo "<td {$edit}>" . $link . "</td>";
                echo "</tr>";
            }
            echo $header_begin . $header_bottom . $header_end;
            echo "</table>";
            if ($canedit) {
                $massiveactionparams['ontop'] = false;
                Html::showMassiveActions($massiveactionparams);
                Html::closeForm();
            }
        } else {
            echo __('No item to display');
        }
        echo "</div>";
    }