Skip to content

Closed ticket layout collapses in helpdesk interface when satisfaction survey is expired or external #23943

@cdbaq

Description

@cdbaq

Code of Conduct

  • I agree to follow this project's Code of Conduct

Disable plugins

  • I reproduce the issue with all plugins disabled

Is there an existing issue for this?

  • I have searched the existing issues

Version

11.0.6

Bug description

When a ticket is in Closed status and viewed from the helpdesk (self-service) interface, the two-column layout collapses completely. The .itil-right-side panel ends up nested inside .itil-left-side instead of being a sibling element, breaking the layout.

This does NOT happen with other statuses (New, Processing, Pending, Resolved).

Expected layout (all other statuses):

.row.itil-object
├── .itil-left-side ← timeline/conversation
└── .itil-right-side ← fields panel

Actual layout (Closed status, expired survey):

.row.itil-object
└── .itil-left-side
└── .itil-right-side ← BUG: nested inside left side

Root cause identified:
In templates/components/itilobject/timeline/timeline.html.twig (lines 231–242), the survey block opens a <form> and <div> wrapper. Their closing tags (</div></form>) are delegated to buttons.html.twig inside itilsatisfaction.html.twig — but buttons.html.twig is only rendered when the survey is not expired. In all expired cases and for external survey type, those tags are never closed, leaving .itil-timeline unclosed and causing .itil-right-side to be nested inside .itil-left-side.

Affected code paths in itilsatisfaction.html.twig:

Condition buttons.html.twig rendered? Layout broken?
External survey (url is defined) No Yes
expired=true AND no answer No Yes
expired=true AND has answer No Yes
expired=false Yes No

Relevant log output

Page URL

No response

Steps To reproduce

  1. Configure an entity with satisfaction surveys enabled and a short duration (e.g., 5 days)
  2. Close a ticket older than the configured duration
  3. Log in as a self-service (helpdesk) user
  4. Open the closed ticket
  5. Observe the collapsed layout — fields panel disappears or renders incorrectly

Your GLPI setup information

No response

Anything else?

A fix has been identified and tested on 11.0.6. The solution is to add explicit </div></form> closing tags in itilsatisfaction.html.twig for the three code paths where buttons.html.twig is not rendered. A pull request with the fix will follow this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions