{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}} {{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}} {{/* operator_entitlement_set_rules.html The composite's Rules section: the section header, the rules form and the drain's two lines. The form is the declaration operator.entitlement-set.rules (form-library, the rows family), whose body is the table in operator_entitlement_set_rules_table.html and whose tray carries the staged batch and its commit (design D1, D2 of staged-rule-changes). Every row action posts the whole form and swaps this whole section back, so two open editors beside a staged change survive every press. The section header's one Add rule opens the add form above the table, focused on its key select: the opener sits outside the form and includes it by id, so the form it opens arrives with the page's whole state. No Active column: no control changes a rule's flag, and the query already lists active rules only (entitlement-set-management "The Rules table is the rule form"). */}}
{{ if .Error }} {{ end }} {{ template "sectionHeader" .RulesHeader }} {{ if eq (len .Rules) 0 }} {{ template "emptyState" .NoRules }} {{ end }} {{ template "form" .Form }} {{/* The drain's two lines (design.md "The drain", monitoring). The transient count is a normal draining state and takes no tone; only the failed count takes the attention tone, beside the Retry control, which follows the product readiness card's retry precedent (btn-outline-primary: a retry is a positive non-commit). No explanatory sub-line: the count states the failure and the button names the act. */}} {{ with .DrainingLine }}

{{ . }}

{{ end }} {{ if .FailedLine }}

{{ .FailedLine }}

{{ end }}