Skip to content

Commit 1bfe600

Browse files
authored
demo manager controller check permission in frontend (#1689)
## Whats added: - Add display modal with error message in frontend ## Issue(#1676) Co-authored-by: Arrgentum <ak.votintsev@gmail.com>
1 parent 4f51ee2 commit 1bfe600

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

save-frontend/src/main/kotlin/com/saveourtool/save/frontend/components/basic/projects/ProjectDemoMenu.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,13 @@ val projectDemoMenu: FC<ProjectDemoMenuProps> = FC { props ->
4545
jsonHeaders,
4646
Json.encodeToString(demoRequest),
4747
::loadingHandler,
48+
::noopResponseHandler,
4849
)
4950
.let {
5051
if (it.ok) {
5152
setDemoStatus(DemoStatus.STARTING)
53+
} else {
54+
props.updateErrorMessage(it.statusText, it.unpackMessage())
5255
}
5356
}
5457
}
@@ -64,6 +67,7 @@ val projectDemoMenu: FC<ProjectDemoMenuProps> = FC { props ->
6467
if (statusResponse.ok) {
6568
setDemoStatus(statusResponse.decodeFromJsonString<DemoStatus>())
6669
} else {
70+
props.updateErrorMessage(statusResponse.statusText, statusResponse.unpackMessage())
6771
setDemoStatus(DemoStatus.NOT_CREATED)
6872
}
6973
}
@@ -81,6 +85,7 @@ val projectDemoMenu: FC<ProjectDemoMenuProps> = FC { props ->
8185
setDemoToolRequest(demoInfo.demoDto)
8286
setGithubProjectCoordinates(demoInfo.demoDto.githubProjectCoordinates.orEmpty())
8387
} else {
88+
props.updateErrorMessage(infoResponse.statusText, infoResponse.unpackMessage())
8489
setDemoStatus(DemoStatus.NOT_CREATED)
8590
}
8691
}
@@ -211,4 +216,10 @@ external interface ProjectDemoMenuProps : Props {
211216
* Organization name
212217
*/
213218
var organizationName: String
219+
220+
/**
221+
* Callback to show error message
222+
*/
223+
@Suppress("TYPE_ALIAS")
224+
var updateErrorMessage: (String, String) -> Unit
214225
}

save-frontend/src/main/kotlin/com/saveourtool/save/frontend/components/views/ProjectView.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,13 @@ class ProjectView : AbstractView<ProjectViewProps, ProjectViewState>(false) {
214214
projectDemoMenu {
215215
projectName = props.name
216216
organizationName = props.owner
217+
updateErrorMessage = { label, message ->
218+
setState {
219+
errorLabel = label
220+
errorMessage = message
221+
isErrorOpen = true
222+
}
223+
}
217224
}
218225
}
219226

0 commit comments

Comments
 (0)