You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Not built. There is no orgedit-style feature directory anywhere in the repo, and no organization-edit.html mockup
either — this is genuinely new work, not a rename or relocation of anything existing.
What's already in place (reusable)
Backend + API contract are already done — nothing to build server-side.
OrganizationApi.updateOrganization (edifikana/api/src/commonMain/kotlin/com/cramsan/edifikana/api/OrganizationApi.kt:64)
is a PUT operation, fully wired: OrganizationController.updateOrganization() (requires ADMIN role or higher via RBACService.hasRoleOrHigher) → OrganizationService.updateOrganization().
Front-end is the entire gap.
OrganizationService (client interface, edifikana/front-end/app/src/commonMain/.../service/OrganizationService.kt)
and OrganizationServiceImpl only have getOrganization, getOrganizations, createOrganization — no updateOrganization.
OrganizationManager (managers/OrganizationManager.kt) is missing it too.
CreateNewOrgScreen / CreateNewOrgViewModel
(features/auth/onboarding/createneworg/) is the closest existing pattern — same two fields (name, description),
same validation shape (isButtonEnabled = name.isNotBlank()). Useful as a structural reference for the edit form,
but it's a create flow (navigates deeper into the app on success); edit should navigate back to Organization Detail
with the change reflected.
Scope
Front-end service layer — add updateOrganization(id, name, description) to OrganizationService (interface +
impl, calling OrganizationApi.updateOrganization) and to OrganizationManager.
New screen — OrganizationEditScreen.kt + OrganizationEditViewModel.kt + OrganizationEditUIState.kt + OrganizationEditEvent.kt + preview + jvmTest, at features/settings/organizations/orgedit/, following the
standard 5-file feature pattern (see CLAUDE.md).
Navigation — new SettingsDestination.OrganizationEditDestination(orgId), registered in SettingsActivity.kt.
Mockup — none exists yet. Create organization-edit.html via /refine-mock before/alongside implementation,
and add it to the Organization Management table in edifikana/index.md.
Entry point — coordinate with [FEATURE] Organization Detail #542: Organization Detail needs a new "Edit" affordance (not present in its
current mockup) that navigates here. Scope visibility to ADMIN/OWNER, matching the backend's RBAC check.
Edit screen pre-fills name/description from the current org, validates a non-blank name, calls update, and
navigates back to Organization Detail on success with the change visible
Non-ADMIN/OWNER users cannot reach the screen (or the action is hidden/disabled), matching backend RBAC
Failure path shows an error and keeps the user on the screen
Status
Not built. There is no
orgedit-style feature directory anywhere in the repo, and noorganization-edit.htmlmockupeither — this is genuinely new work, not a rename or relocation of anything existing.
What's already in place (reusable)
Backend + API contract are already done — nothing to build server-side.
OrganizationApi.updateOrganization(edifikana/api/src/commonMain/kotlin/com/cramsan/edifikana/api/OrganizationApi.kt:64)is a
PUToperation, fully wired:OrganizationController.updateOrganization()(requires ADMIN role or higher viaRBACService.hasRoleOrHigher) →OrganizationService.updateOrganization().Front-end is the entire gap.
OrganizationService(client interface,edifikana/front-end/app/src/commonMain/.../service/OrganizationService.kt)and
OrganizationServiceImplonly havegetOrganization,getOrganizations,createOrganization— noupdateOrganization.OrganizationManager(managers/OrganizationManager.kt) is missing it too.CreateNewOrgScreen/CreateNewOrgViewModel(
features/auth/onboarding/createneworg/) is the closest existing pattern — same two fields (name, description),same validation shape (
isButtonEnabled = name.isNotBlank()). Useful as a structural reference for the edit form,but it's a create flow (navigates deeper into the app on success); edit should navigate back to Organization Detail
with the change reflected.
Scope
updateOrganization(id, name, description)toOrganizationService(interface +impl, calling
OrganizationApi.updateOrganization) and toOrganizationManager.OrganizationEditScreen.kt+OrganizationEditViewModel.kt+OrganizationEditUIState.kt+OrganizationEditEvent.kt+ preview +jvmTest, atfeatures/settings/organizations/orgedit/, following thestandard 5-file feature pattern (see CLAUDE.md).
SettingsDestination.OrganizationEditDestination(orgId), registered inSettingsActivity.kt.organization-edit.htmlvia/refine-mockbefore/alongside implementation,and add it to the Organization Management table in
edifikana/index.md.current mockup) that navigates here. Scope visibility to ADMIN/OWNER, matching the backend's RBAC check.
Acceptance criteria
edifikana/index.mdOrganizationService/OrganizationManagerexposeupdateOrganizationnavigates back to Organization Detail on success with the change visible
Files
edifikana/front-end/app/src/commonMain/.../features/settings/organizations/orgedit/*service/OrganizationService.kt,service/impl/OrganizationServiceImpl.kt,managers/OrganizationManager.kt,features/settings/SettingsDestination.kt,features/settings/SettingsActivity.ktfeatures/auth/onboarding/createneworg/*Related
Parent: #392. Coordinate with #542 (entry point + possible mockup change on that screen).