CommonITILObject::showActorsPartForm PHP Метод

showActorsPartForm() публичный Метод

show actor part in ITIL object form
public showActorsPartForm ( $ID, array $options ) : nothing
$ID integer ITIL object ID
$options array array options for default values ($options of showForm)
Результат nothing display
    function showActorsPartForm($ID, array $options)
    {
        global $CFG_GLPI;
        $showuserlink = 0;
        if (User::canView()) {
            $showuserlink = 1;
        }
        $options['_default_use_notification'] = 1;
        if (isset($options['entities_id'])) {
            $options['_default_use_notification'] = Entity::getUsedConfig('is_notif_enable_default', $options['entities_id'], '', 1);
        }
        // check is_hidden fields
        foreach (array('_users_id_requester', '_groups_id_requester', '_users_id_observer', '_groups_id_observer', '_users_id_assign', '_groups_id_assign', '_suppliers_id_assign') as $f) {
            $is_hidden[$f] = false;
            if (isset($options['_tickettemplate']) && $options['_tickettemplate']->isHiddenField($f)) {
                $is_hidden[$f] = true;
            }
        }
        $can_admin = $this->canAdminActors();
        // on creation can select actor
        if (!$ID) {
            $can_admin = true;
        }
        $can_assign = $this->canAssign();
        $can_assigntome = $this->canAssignToMe();
        if (isset($options['_noupdate']) && !$options['_noupdate']) {
            $can_admin = false;
            $can_assign = false;
            $can_assigntome = false;
        }
        // Manage actors
        echo "<div class='tab_actors tab_cadre_fixe' id='mainformtable5'>";
        echo "<div class='responsive_hidden actor_title'>" . __('Actor') . "</div>";
        // ====== Requesters BLOC ======
        //
        //
        echo "<span class='actor-bloc'>";
        echo "<div class='actor-head'>";
        if (!$is_hidden['_users_id_requester'] || !$is_hidden['_groups_id_requester']) {
            _e('Requester');
        }
        $rand_requester = -1;
        $candeleterequester = false;
        if ($ID && $can_admin && (!$is_hidden['_users_id_requester'] || !$is_hidden['_groups_id_requester'])) {
            $rand_requester = mt_rand();
            echo "&nbsp;&nbsp;";
            echo "<img title=\"" . __s('Add') . "\" alt=\"" . __s('Add') . "\"\n                onClick=\"" . Html::jsShow("itilactor{$rand_requester}") . "\"\n                class='pointer' src='" . $CFG_GLPI["root_doc"] . "/pics/add_dropdown.png'>";
            $candeleterequester = true;
        }
        echo "</div>";
        // end .actor-head
        echo "<div class='actor-content'>";
        if ($rand_requester >= 0) {
            $this->showActorAddForm(CommonITILActor::REQUESTER, $rand_requester, $this->fields['entities_id'], $is_hidden);
        }
        // Requester
        if (!$ID) {
            $reqdisplay = false;
            if ($can_admin && !$is_hidden['_users_id_requester']) {
                $this->showActorAddFormOnCreate(CommonITILActor::REQUESTER, $options);
                $reqdisplay = true;
            } else {
                $delegating = User::getDelegateGroupsForUser($options['entities_id']);
                if (count($delegating) && !$is_hidden['_users_id_requester']) {
                    //$this->getDefaultActor(CommonITILActor::REQUESTER);
                    $options['_right'] = "delegate";
                    $this->showActorAddFormOnCreate(CommonITILActor::REQUESTER, $options);
                    $reqdisplay = true;
                } else {
                    // predefined value
                    if (isset($options["_users_id_requester"]) && $options["_users_id_requester"]) {
                        echo self::getActorIcon('user', CommonITILActor::REQUESTER) . "&nbsp;";
                        echo Dropdown::getDropdownName("glpi_users", $options["_users_id_requester"]);
                        echo "<input type='hidden' name='_users_id_requester' value=\"" . $options["_users_id_requester"] . "\">";
                        echo '<br>';
                        $reqdisplay = true;
                    }
                }
            }
            //If user have access to more than one entity, then display a combobox : Ticket case
            if ($this->userentity_oncreate && isset($this->countentitiesforuser) && $this->countentitiesforuser > 1) {
                echo "<br>";
                $rand = Entity::dropdown(array('value' => $this->fields["entities_id"], 'entity' => $this->userentities, 'on_change' => 'this.form.submit()'));
            } else {
                echo "<input type='hidden' name='entities_id' value='" . $this->fields["entities_id"] . "'>";
            }
            if ($reqdisplay) {
                echo '<hr>';
            }
        } else {
            if (!$is_hidden['_users_id_requester']) {
                $this->showUsersAssociated(CommonITILActor::REQUESTER, $candeleterequester, $options);
            }
        }
        // Requester Group
        if (!$ID) {
            if ($can_admin && !$is_hidden['_groups_id_requester']) {
                echo self::getActorIcon('group', CommonITILActor::REQUESTER);
                /// For ticket templates : mandatories
                if (isset($options['_tickettemplate'])) {
                    echo $options['_tickettemplate']->getMandatoryMark('_groups_id_requester');
                }
                echo "&nbsp;";
                Group::dropdown(array('name' => '_groups_id_requester', 'value' => $options["_groups_id_requester"], 'entity' => $this->fields["entities_id"], 'condition' => '`is_requester`'));
            } else {
                // predefined value
                if (isset($options["_groups_id_requester"]) && $options["_groups_id_requester"]) {
                    echo self::getActorIcon('group', CommonITILActor::REQUESTER) . "&nbsp;";
                    echo Dropdown::getDropdownName("glpi_groups", $options["_groups_id_requester"]);
                    echo "<input type='hidden' name='_groups_id_requester' value=\"" . $options["_groups_id_requester"] . "\">";
                    echo '<br>';
                }
            }
        } else {
            if (!$is_hidden['_groups_id_requester']) {
                $this->showGroupsAssociated(CommonITILActor::REQUESTER, $candeleterequester, $options);
            }
        }
        echo "</div>";
        // end .actor-content
        echo "</span>";
        // end .actor-bloc
        // ====== Observers BLOC ======
        echo "<span class='actor-bloc'>";
        echo "<div class='actor-head'>";
        if (!$is_hidden['_users_id_observer'] || !$is_hidden['_groups_id_observer']) {
            _e('Watcher');
        }
        $rand_observer = -1;
        $candeleteobserver = false;
        if ($ID && $can_admin && (!$is_hidden['_users_id_observer'] || !$is_hidden['_groups_id_observer'])) {
            $rand_observer = mt_rand();
            echo "&nbsp;&nbsp;";
            echo "<img title=\"" . __s('Add') . "\" alt=\"" . __s('Add') . "\"\n                onClick=\"" . Html::jsShow("itilactor{$rand_observer}") . "\"\n                class='pointer' src='" . $CFG_GLPI["root_doc"] . "/pics/add_dropdown.png'>";
            $candeleteobserver = true;
        } else {
            if ($ID > 0 && !in_array($this->fields['status'], $this->getClosedStatusArray()) && !$is_hidden['_users_id_observer'] && !$this->isUser(CommonITILActor::OBSERVER, Session::getLoginUserID()) && !$this->isUser(CommonITILActor::REQUESTER, Session::getLoginUserID())) {
                echo "&nbsp;&nbsp;&nbsp;&nbsp;";
                Html::showSimpleForm($this->getFormURL(), 'addme_observer', __('Associate myself'), array($this->getForeignKeyField() => $this->fields['id']), $CFG_GLPI["root_doc"] . "/pics/addme.png");
            }
        }
        echo "</div>";
        // end .actor-head
        echo "<div class='actor-content'>";
        if ($rand_observer >= 0) {
            $this->showActorAddForm(CommonITILActor::OBSERVER, $rand_observer, $this->fields['entities_id'], $is_hidden);
        }
        // Observer
        if (!$ID) {
            if ($can_admin && !$is_hidden['_users_id_observer']) {
                $this->showActorAddFormOnCreate(CommonITILActor::OBSERVER, $options);
                echo '<hr>';
            } else {
                // predefined value
                if (isset($options["_users_id_observer"]) && $options["_users_id_observer"]) {
                    echo self::getActorIcon('user', CommonITILActor::OBSERVER) . "&nbsp;";
                    echo Dropdown::getDropdownName("glpi_users", $options["_users_id_observer"]);
                    echo "<input type='hidden' name='_users_id_observer' value=\"" . $options["_users_id_observer"] . "\">";
                    echo '<hr>';
                }
            }
        } else {
            if (!$is_hidden['_users_id_observer']) {
                $this->showUsersAssociated(CommonITILActor::OBSERVER, $candeleteobserver, $options);
            }
        }
        // Observer Group
        if (!$ID) {
            if ($can_admin && !$is_hidden['_groups_id_observer']) {
                echo self::getActorIcon('group', CommonITILActor::OBSERVER);
                /// For ticket templates : mandatories
                if (isset($options['_tickettemplate'])) {
                    echo $options['_tickettemplate']->getMandatoryMark('_groups_id_observer');
                }
                echo "&nbsp;";
                Group::dropdown(array('name' => '_groups_id_observer', 'value' => $options["_groups_id_observer"], 'entity' => $this->fields["entities_id"], 'condition' => '`is_requester`'));
            } else {
                // predefined value
                if (isset($options["_groups_id_observer"]) && $options["_groups_id_observer"]) {
                    echo self::getActorIcon('group', CommonITILActor::OBSERVER) . "&nbsp;";
                    echo Dropdown::getDropdownName("glpi_groups", $options["_groups_id_observer"]);
                    echo "<input type='hidden' name='_groups_id_observer' value=\"" . $options["_groups_id_observer"] . "\">";
                    echo '<br>';
                }
            }
        } else {
            if (!$is_hidden['_groups_id_observer']) {
                $this->showGroupsAssociated(CommonITILActor::OBSERVER, $candeleteobserver, $options);
            }
        }
        echo "</div>";
        // end .actor-content
        echo "</span>";
        // end .actor-bloc
        // ====== Assign BLOC ======
        echo "<span class='actor-bloc'>";
        echo "<div class='actor-head'>";
        if (!$is_hidden['_users_id_assign'] || !$is_hidden['_groups_id_assign'] || !$is_hidden['_suppliers_id_assign']) {
            _e('Assigned to');
        }
        $rand_assign = -1;
        $candeleteassign = false;
        if ($ID && ($can_assign || $can_assigntome) && (!$is_hidden['_users_id_assign'] || !$is_hidden['_groups_id_assign'] || !$is_hidden['_suppliers_id_assign']) && $this->isAllowedStatus($this->fields['status'], CommonITILObject::ASSIGNED)) {
            $rand_assign = mt_rand();
            echo "&nbsp;&nbsp;";
            echo "<img title=\"" . __s('Add') . "\" alt=\"" . __s('Add') . "\"\n                onClick=\"" . Html::jsShow("itilactor{$rand_assign}") . "\"\n                class='pointer' src='" . $CFG_GLPI["root_doc"] . "/pics/add_dropdown.png'>";
        }
        if ($ID && $can_assigntome && !in_array($this->fields['status'], $this->getClosedStatusArray()) && !$is_hidden['_users_id_assign'] && !$this->isUser(CommonITILActor::ASSIGN, Session::getLoginUserID()) && $this->isAllowedStatus($this->fields['status'], CommonITILObject::ASSIGNED)) {
            Html::showSimpleForm($this->getFormURL(), 'addme_assign', __('Associate myself'), array($this->getForeignKeyField() => $this->fields['id']), $CFG_GLPI["root_doc"] . "/pics/addme.png");
        }
        if ($ID && $can_assign) {
            $candeleteassign = true;
        }
        echo "</div>";
        // end .actor-head
        echo "<div class='actor-content'>";
        if ($rand_assign >= 0) {
            $this->showActorAddForm(CommonITILActor::ASSIGN, $rand_assign, $this->fields['entities_id'], $is_hidden, $this->canAssign(), $this->canAssign());
        }
        // Assign User
        if (!$ID) {
            if ($can_assign && !$is_hidden['_users_id_assign'] && $this->isAllowedStatus(CommonITILObject::INCOMING, CommonITILObject::ASSIGNED)) {
                $this->showActorAddFormOnCreate(CommonITILActor::ASSIGN, $options);
                echo '<hr>';
            } else {
                if ($can_assigntome && !$is_hidden['_users_id_assign'] && $this->isAllowedStatus(CommonITILObject::INCOMING, CommonITILObject::ASSIGNED)) {
                    echo self::getActorIcon('user', CommonITILActor::ASSIGN) . "&nbsp;";
                    User::dropdown(array('name' => '_users_id_assign', 'value' => $options["_users_id_assign"], 'entity' => $this->fields["entities_id"], 'ldap_import' => true));
                    echo '<hr>';
                } else {
                    // predefined value
                    if (isset($options["_users_id_assign"]) && $options["_users_id_assign"] && $this->isAllowedStatus(CommonITILObject::INCOMING, CommonITILObject::ASSIGNED)) {
                        echo self::getActorIcon('user', CommonITILActor::ASSIGN) . "&nbsp;";
                        echo Dropdown::getDropdownName("glpi_users", $options["_users_id_assign"]);
                        echo "<input type='hidden' name='_users_id_assign' value=\"" . $options["_users_id_assign"] . "\">";
                        echo '<hr>';
                    }
                }
            }
        } else {
            if (!$is_hidden['_users_id_assign']) {
                $this->showUsersAssociated(CommonITILActor::ASSIGN, $candeleteassign, $options);
            }
        }
        // Assign Groups
        if (!$ID) {
            if ($can_assign && !$is_hidden['_groups_id_assign'] && $this->isAllowedStatus(CommonITILObject::INCOMING, CommonITILObject::ASSIGNED)) {
                echo self::getActorIcon('group', CommonITILActor::ASSIGN);
                /// For ticket templates : mandatories
                if (isset($options['_tickettemplate'])) {
                    echo $options['_tickettemplate']->getMandatoryMark('_groups_id_assign');
                }
                echo "&nbsp;";
                $rand = mt_rand();
                $params = array('name' => '_groups_id_assign', 'value' => $options["_groups_id_assign"], 'entity' => $this->fields["entities_id"], 'condition' => '`is_assign`', 'rand' => $rand);
                if ($this->getType() == 'Ticket') {
                    $params['toupdate'] = array('value_fieldname' => 'value', 'to_update' => "countgroupassign_{$rand}", 'url' => $CFG_GLPI["root_doc"] . "/ajax/ticketassigninformation.php", 'moreparams' => array('groups_id_assign' => '__VALUE__'));
                }
                Group::dropdown($params);
                echo "<span id='countgroupassign_{$rand}'>";
                echo "</span>";
                echo "<script type='text/javascript'>";
                Ajax::updateItemJsCode("countgroupassign_{$rand}", $CFG_GLPI["root_doc"] . "/ajax/ticketassigninformation.php", array('groups_id_assign' => '__VALUE__'), "dropdown__groups_id_assign{$rand}");
                echo "</script>";
                echo '<hr>';
            } else {
                // predefined value
                if (isset($options["_groups_id_assign"]) && $options["_groups_id_assign"] && $this->isAllowedStatus(CommonITILObject::INCOMING, CommonITILObject::ASSIGNED)) {
                    echo self::getActorIcon('group', CommonITILActor::ASSIGN) . "&nbsp;";
                    echo Dropdown::getDropdownName("glpi_groups", $options["_groups_id_assign"]);
                    echo "<input type='hidden' name='_groups_id_assign' value=\"" . $options["_groups_id_assign"] . "\">";
                    echo '<hr>';
                }
            }
        } else {
            if (!$is_hidden['_groups_id_assign']) {
                $this->showGroupsAssociated(CommonITILActor::ASSIGN, $candeleteassign, $options);
            }
        }
        // Assign Suppliers
        if (!$ID) {
            if ($can_assign && !$is_hidden['_suppliers_id_assign'] && $this->isAllowedStatus(CommonITILObject::INCOMING, CommonITILObject::ASSIGNED)) {
                $this->showSupplierAddFormOnCreate($options);
            } else {
                // predefined value
                if (isset($options["_suppliers_id_assign"]) && $options["_suppliers_id_assign"] && $this->isAllowedStatus(CommonITILObject::INCOMING, CommonITILObject::ASSIGNED)) {
                    echo self::getActorIcon('supplier', CommonITILActor::ASSIGN) . "&nbsp;";
                    echo Dropdown::getDropdownName("glpi_suppliers", $options["_suppliers_id_assign"]);
                    echo "<input type='hidden' name='_suppliers_id_assign' value=\"" . $options["_suppliers_id_assign"] . "\">";
                    echo '<hr>';
                }
            }
        } else {
            if (!$is_hidden['_suppliers_id_assign']) {
                $this->showSuppliersAssociated(CommonITILActor::ASSIGN, $candeleteassign, $options);
            }
        }
        echo "</div>";
        // end .actor-content
        echo "</span>";
        // end .actor-bloc
        echo "</div>";
        // tab_actors
    }
CommonITILObject