Ejemplo n.º 1
0
 /**
  * Display a connection of a networking port
  *
  * @param $netport      to be displayed
  * @param $edit         boolean permit to edit ? (false by default)
  **/
 static function showConnection($netport, $edit = false)
 {
     $ID = $netport->fields["id"];
     if (empty($ID)) {
         return false;
     }
     $device1 = $netport->getItem();
     if (!$device1->can($device1->getID(), READ)) {
         return false;
     }
     $canedit = $device1->canEdit($device1->fields["id"]);
     $relations_id = 0;
     $oppositePort = NetworkPort_NetworkPort::getOpposite($netport, $relations_id);
     if ($oppositePort !== false) {
         $device2 = $oppositePort->getItem();
         if ($device2->can($device2->fields["id"], READ)) {
             $networklink = $oppositePort->getLink();
             $tooltip = Html::showToolTip($oppositePort->fields['comment'], array('display' => false));
             $netlink = sprintf(__('%1$s %2$s'), "<span class='b'>" . $networklink . "</span>\n", $tooltip);
             //TRANS: %1$s and %2$s are links
             echo "&nbsp;" . sprintf(__('%1$s on %2$s'), $netlink, "<span class='b'>" . $device2->getLink() . "</span>");
             if ($device1->fields["entities_id"] != $device2->fields["entities_id"]) {
                 echo "<br>(" . Dropdown::getDropdownName("glpi_entities", $device2->getEntityID()) . ")";
             }
             // write rights on dev1 + READ on dev2 OR READ on dev1 + write rights on dev2
             if ($canedit || $device2->canEdit($device2->fields["id"])) {
                 echo "&nbsp;";
                 Html::showSimpleForm($oppositePort->getFormURL(), 'disconnect', _x('button', 'Disconnect'), array('id' => $relations_id));
             }
         } else {
             if (rtrim($oppositePort->fields["name"]) != "") {
                 $netname = $oppositePort->fields["name"];
             } else {
                 $netname = __('Without name');
             }
             printf(__('%1$s on %2$s'), "<span class='b'>" . $netname . "</span>", "<span class='b'>" . $device2->getName() . "</span>");
             echo "<br>(" . Dropdown::getDropdownName("glpi_entities", $device2->getEntityID()) . ")";
         }
     } else {
         echo "<div id='not_connected_display{$ID}'>" . __('Not connected.') . "</div>";
         if ($canedit) {
             if (!$device1->isTemplate()) {
                 if ($edit) {
                     self::dropdownConnect($ID, array('name' => 'NetworkPortConnect_networkports_id_2', 'entity' => $device1->fields["entities_id"], 'entity_sons' => $device1->isRecursive()));
                 } else {
                     echo "<a href=\"" . $netport->getFormURL() . "?id={$ID}\">" . _x('button', 'Connect') . "</a>";
                 }
             } else {
                 echo "&nbsp;";
             }
         }
     }
 }