Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Reservation form: "Add" button does nothing on GLPI 12 (form tag not rendered)

Offen Anfängerfreundlich
#126 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
72/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
php
Bereich
backend

Rechercherichtung

Die Korrektur gehört in ReserveIp::showReservationForm(), wo das Optionsarray aufgebaut wird; das Issue schlägt vor, dort $options['canedit'] = true zu setzen. Lies die Ursache im Issue und prüfe dann die Core-Templates von GLPI components/form/header.html.twig und components/form/buttons.html.twig, um zu sehen, wie canedit das <form>-Tag steuert. Fertig ist es, wenn der Hinzufügen-Button in GLPI 12 innerhalb des Formulars sitzt und das Absenden front/reserveip.form.php erreicht, wobei die Rechteprüfung dort weiterhin greift.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Version: addressing 3.3.0 + fix for #123 (master ba0d1c3), GLPI 12.0.0

Steps to reproduce

  1. Open an IP range report, click the reservation icon of a free address.
  2. The modal opens (with the #123 fix applied), enter a name, click "Add".

Expected: the reservation is submitted to front/reserveip.form.php.
Actual: nothing happens, no request is sent, no message.

Cause
ReserveIp::canCreate()/canUpdate()/canPurge() now return false on purpose (ea5b0a5).
reserveip.html.twig extends generic_show_form.html.twig, whose two core sub-templates decide differently:

  • components/form/header.html.twig only outputs the <form> tag when canedit is true, falling back to item.canEdit():
    {% set canedit = params['canedit']|default(item.canEdit(item.fields['id'])) %} → {% if open_form and canedit %}<form …>
  • components/form/buttons.html.twig defaults to true: {% set canedit = params['canedit'] ?? true %}

canEdit() is false for ReserveIp, so the "Add" button is rendered outside of any form.

Fix
Pass canedit explicitly in ReserveIp::showReservationForm():

$options['colspan'] = 2;
$options['no_header'] = true;
$options['canedit'] = true;   // added
$options['id_addressing'] = $id_addressing;

This only affects rendering; rights are still enforced on submission
(front/reserveip.form.php checks plugin_addressing CREATE, reserveip() checks CREATE/UPDATE on the target item).

Vorherrschende Sprache
PHP
Sterne
43
Forks
24
Ø Merge
1 Std. 4 Min.
Gemergte PRs (30 T.)
5

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus pluginsGLPI/addressing

Alle Issues in pluginsGLPI/addressing

Ähnliche Issues

Weitere Issues zu PHP

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.