Feature: Office hours and the function type on the profile page
Description
The contact block of the profile detail view shows the office hours of each contract, in a row of its own after the location and room, with a clock icon and the label "Office hours". A contract without office hours gets no row. Paragraphs, lists, emphasis and links written in the frontend editor are kept, and a plain text value from the backend form or an import keeps its line breaks. The core HTML sanitizer removes event handler attributes and prints a script element as escaped text, so it never runs. See Office hours in the contact block.
The position line takes a new list in Settings.,
profile.. It names what the line shows of each
contract, in order:
position
,
function and
organisational. The function type is shown with the name for the
profile's gender where one is maintained, and with its general name
otherwise. A site package states only the list:
profile:
details:
position:
fields:
- position
- functionType
See What the position line shows.
The list, list and detail, card, selected profiles and selected contracts
elements offer the function type among their fields to show. The new partial
Profile/ renders its name for both the
detail view and the items, see The name of a function type.
Impact
A profile page whose contracts carry office hours shows them after the
update, without any configuration. A site that does not want them there hides
ace- in its stylesheet or overrides
Profile/.
Plain text office hours are read as HTML too. A < in them starts a tag for
the sanitizer and is lost, so such values are better written without angle
brackets.
The shipped position line still shows the position alone, but every value of
the line sits in a <span class="ace- of its own, with the class of
its field, ace-, ace- or
ace-, inside the line ace-.
A stylesheet that expects text directly inside the line targets the
ace- elements instead.