Skip to content

Commit 8f04ea1

Browse files
PDJB-792: Add feature flag for compliance actions page (#1358)
1 parent a55fa91 commit 8f04ea1

14 files changed

Lines changed: 148 additions & 9 deletions

File tree

src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/FeatureFlagNames.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@ const val JOINT_LANDLORDS = "joint-landlords"
1414

1515
const val SUBJECT_IDENTIFIER_PAGE = "subject-identifier-page"
1616

17+
const val COMPLIANCE_ACTIONS_PAGE_MAY26_REDESIGN = "compliance-actions-page-may26-redesign"
18+
1719
val featureFlagNames =
1820
listOf(
1921
FAILOVER_TEST_ENDPOINTS,
2022
JOINT_LANDLORDS,
2123
SUBJECT_IDENTIFIER_PAGE,
24+
COMPLIANCE_ACTIONS_PAGE_MAY26_REDESIGN,
2225
)

src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/FeatureFlagReleaseNames.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,9 @@ package uk.gov.communities.prsdb.webapp.constants
88
// When loading the feature configuration, the application will check that all feature releases names
99
// defined in application.yml are included in this list.
1010

11+
const val PRIVATE_BETA_RELEASE_2 = "private-beta-release-2"
12+
1113
val featureFlagReleaseNames =
12-
listOf<String>()
14+
listOf(
15+
PRIVATE_BETA_RELEASE_2,
16+
)

src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/LandlordController.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import org.springframework.ui.Model
55
import org.springframework.web.bind.annotation.GetMapping
66
import org.springframework.web.bind.annotation.RequestMapping
77
import uk.gov.communities.prsdb.webapp.annotations.webAnnotations.PrsdbController
8+
import uk.gov.communities.prsdb.webapp.config.managers.FeatureFlagManager
9+
import uk.gov.communities.prsdb.webapp.constants.COMPLIANCE_ACTIONS_PAGE_MAY26_REDESIGN
810
import uk.gov.communities.prsdb.webapp.constants.COMPLIANCE_ACTIONS_PATH_SEGMENT
911
import uk.gov.communities.prsdb.webapp.constants.DASHBOARD_PATH_SEGMENT
1012
import uk.gov.communities.prsdb.webapp.constants.INCOMPLETE_PROPERTIES_PATH_SEGMENT
@@ -32,6 +34,7 @@ class LandlordController(
3234
private val propertyOwnershipService: PropertyOwnershipService,
3335
private val propertyComplianceService: PropertyComplianceService,
3436
private val jointLandlordsStrategy: JointLandlordsPropertyRegistrationStrategy,
37+
private val featureFlagManager: FeatureFlagManager,
3538
) {
3639
@GetMapping
3740
fun index(): CharSequence = "redirect:$LANDLORD_DASHBOARD_URL"
@@ -98,7 +101,11 @@ class LandlordController(
98101
)
99102
model.addAttribute("backUrl", LANDLORD_DASHBOARD_URL)
100103

101-
return "complianceActions"
104+
return if (featureFlagManager.checkFeature(COMPLIANCE_ACTIONS_PAGE_MAY26_REDESIGN)) {
105+
"complianceActionsMay26Redesign"
106+
} else {
107+
"complianceActionsOld"
108+
}
102109
}
103110

104111
companion object {

src/main/resources/application-integration.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,12 @@ features:
99
- name: "subject-identifier-page"
1010
enabled: true
1111
expiry-date: "2027-03-30"
12-
releases: []
12+
- name: "compliance-actions-page-may26-redesign"
13+
enabled: false
14+
expiry-date: "2026-12-31"
15+
release: "private-beta-release-2"
16+
releases:
17+
- name: "private-beta-release-2"
18+
enabled: true
19+
strategy-config:
20+
release-date: "2026-12-31"

src/main/resources/application-local.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,15 @@ features:
103103
- name: "subject-identifier-page"
104104
enabled: true
105105
expiry-date: "2027-03-30"
106-
releases: []
106+
- name: "compliance-actions-page-may26-redesign"
107+
enabled: false
108+
expiry-date: "2026-12-31"
109+
release: "private-beta-release-2"
110+
releases:
111+
- name: "private-beta-release-2"
112+
enabled: true
113+
strategy-config:
114+
release-date: "2026-12-31"
107115

108116
---
109117

src/main/resources/application-nft.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,12 @@ features:
99
- name: "subject-identifier-page"
1010
enabled: true
1111
expiry-date: "2027-03-30"
12-
releases: []
12+
- name: "compliance-actions-page-may26-redesign"
13+
enabled: false
14+
expiry-date: "2026-12-31"
15+
release: "private-beta-release-2"
16+
releases:
17+
- name: "private-beta-release-2"
18+
enabled: true
19+
strategy-config:
20+
release-date: "2026-12-31"

src/main/resources/application-test.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,12 @@ features:
99
- name: "subject-identifier-page"
1010
enabled: true
1111
expiry-date: "2027-03-30"
12-
releases: []
12+
- name: "compliance-actions-page-may26-redesign"
13+
enabled: false
14+
expiry-date: "2026-12-31"
15+
release: "private-beta-release-2"
16+
releases:
17+
- name: "private-beta-release-2"
18+
enabled: true
19+
strategy-config:
20+
release-date: "2026-12-31"

src/main/resources/application.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,16 @@ features:
100100
- name: "subject-identifier-page"
101101
enabled: true
102102
expiry-date: "2027-03-30"
103-
releases: []
103+
- name: "compliance-actions-page-may26-redesign"
104+
enabled: false
105+
expiry-date: "2026-12-31"
106+
release: "private-beta-release-2"
107+
releases:
108+
- name: "private-beta-release-2"
109+
enabled: true
110+
strategy-config:
111+
release-date: "2026-12-31"
112+
104113

105114
---
106115

src/main/resources/templates/complianceActions.html renamed to src/main/resources/templates/complianceActionsMay26Redesign.html

File renamed without changes.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!DOCTYPE html>
2+
<html id="page" th:replace="~{fragments/layout :: layout(#{complianceActions.title},~{::#page/content()}, false)}">
3+
<a th:replace="~{fragments/forms/backLink :: backLink(${backUrl})}">backUrl</a>
4+
<main class="govuk-main-wrapper" id="main-content">
5+
<header>
6+
<h1 class="govuk-heading-l" th:text="#{complianceActions.heading}">complianceActions.heading</h1>
7+
<p class="govuk-body-l govuk-hint" th:unless="${#lists.isEmpty(complianceActions)}" th:text="#{complianceActions.hintText}">complianceActions.hintText</p>
8+
</header>
9+
10+
<th:block th:unless="${#lists.isEmpty(complianceActions)}" th:each="complianceAction: ${complianceActions}">
11+
<div th:replace="~{fragments/summaryCard :: summaryCard(${complianceAction.title}, null, ${complianceAction.actions}, ${complianceAction.summaryList})}"></div>
12+
</th:block>
13+
14+
<th:block th:if="${#lists.isEmpty(complianceActions)}">
15+
<div class="govuk-inset-text" th:text="#{complianceActions.none.inset}">complianceActions.none.inset</div>
16+
</th:block>
17+
18+
</main>
19+
</html>

0 commit comments

Comments
 (0)