Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved handling of HTTP response errors #152

Merged
merged 12 commits into from
Nov 9, 2023
Prev Previous commit
Next Next commit
Refactor, rename
  • Loading branch information
dotasek committed Nov 8, 2023
commit c963cf31ef734d1f04804228fc8aef6283502f84
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ import styled.*
import ui.components.options.presetSelect
import ui.components.tabs.heading

import ui.components.validation.issuelist.filteredIssueEntryList
import ui.components.validation.validationSummary
import ui.components.validation.validationOutcomeContainer
import utils.assembleRequest
import utils.isJson
import utils.isXml
Expand Down Expand Up @@ -139,7 +138,7 @@ class ManualEntryTab : RComponent<ManualEntryTabProps, ManualEntryTabState>() {
css {
+ManualEntryTabStyle.resultsContainer
}
validationSummary {
validationOutcomeContainer {
polyglot = props.polyglot
validationOutcome = props.validationOutcome!!
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import styled.styledDiv
import ui.components.options.presetSelect
import ui.components.tabs.heading
import ui.components.tabs.uploadtab.filelist.fileEntryList
import ui.components.validation.validationSummaryPopup
import ui.components.validation.validationOutcomePopup
import utils.assembleRequest

external interface FileUploadTabProps : Props {
Expand Down Expand Up @@ -120,7 +120,7 @@ class FileUploadTab : RComponent<FileUploadTabProps, FileUploadTabState>() {
}
}
state.currentlyDisplayedValidationOutcome?.let {
validationSummaryPopup {
validationOutcomePopup {
polyglot = props.polyglot
validationOutcome = state.currentlyDisplayedValidationOutcome!!
onClose = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,35 +13,35 @@ import styled.styledDiv
import ui.components.validation.codeissuedisplay.codeIssueDisplay
import ui.components.validation.issuelist.issueEntryList

external interface FileValidationResultsProps : Props {
external interface FileValidationOutcomeProps : Props {
var validationOutcome: ValidationOutcome
var messageFilter: MessageFilter
}

class FileValidationResultsState : State {
class FileValidationOutcomeState : State {
var highlightedMessages: List<ValidationMessage> = emptyList()
}

/**
* A React component displaying the code with highlighted issues, alongside the list of issues with associated details
* and line numbers. Layout will change depending on current horizontal space for display.
*/
class FileValidationResults : RComponent<FileValidationResultsProps, FileValidationResultsState>() {
class FileValidationOutcome : RComponent<FileValidationOutcomeProps, FileValidationOutcomeState>() {

init {
state = FileValidationResultsState()
state = FileValidationOutcomeState()
}

var editorRefFV : RefObject<Nothing> = createRef<Nothing>()

override fun RBuilder.render() {
styledDiv {
css {
+FileValidationResultsStyle.parentContainer
+FileValidationOutcomeStyle.parentContainer
}
styledDiv {
css {
+FileValidationResultsStyle.containerLeft
+FileValidationOutcomeStyle.containerLeft
}
codeIssueDisplay {
validationOutcome = props.validationOutcome
Expand All @@ -57,7 +57,7 @@ class FileValidationResults : RComponent<FileValidationResultsProps, FileValidat
}
styledDiv {
css {
+FileValidationResultsStyle.containerRight
+FileValidationOutcomeStyle.containerRight
}
issueEntryList {
validationOutcome = props.validationOutcome
Expand All @@ -78,16 +78,16 @@ class FileValidationResults : RComponent<FileValidationResultsProps, FileValidat
/**
* React Component Builder
*/
fun RBuilder.fileValidationResults(handler: FileValidationResultsProps.() -> Unit) {
return child(FileValidationResults::class) {
fun RBuilder.fileValidationOutcome(handler: FileValidationOutcomeProps.() -> Unit) {
return child(FileValidationOutcome::class) {
this.attrs(handler)
}
}

/**
* CSS
*/
object FileValidationResultsStyle : StyleSheet("FileValidationSummaryStyle", isStatic = true) {
object FileValidationOutcomeStyle : StyleSheet("FileValidationOutcomeStyle", isStatic = true) {
val parentContainer by css {
display = Display.flex
flexDirection = FlexDirection.column
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,33 @@ import kotlinx.css.properties.border
import model.MessageFilter
import model.ValidationOutcome
import react.*
import react.dom.div
import styled.StyleSheet
import styled.css
import styled.styledDiv
import ui.components.tabs.heading
import ui.components.validation.issuelist.issueFilterButtonBar

external interface ValidationSummaryProps : Props {
external interface ValidationOutcomeContainerProps : Props {
var validationOutcome: ValidationOutcome
var polyglot: Polyglot
var onClose: () -> Unit
}

class ValidationSummaryState : State {
class ValidationOutcomeContainerState : State {
var messageFilter: MessageFilter = MessageFilter()
}

class ValidationSummary : RComponent<ValidationSummaryProps, ValidationSummaryState>() {
class ValidationOutcomeContainer : RComponent<ValidationOutcomeContainerProps, ValidationOutcomeContainerState>() {

init {
state = ValidationSummaryState()
state = ValidationOutcomeContainerState()
}

override fun RBuilder.render() {

styledDiv {
css {
+ValidationSummaryStyle.filterMenuContainer
+ValidationOutcomeContainerStyle.filterMenuContainer
}
heading {
text = props.polyglot.t("validation_results") + " (${state.messageFilter.determineNumberDisplayedIssues(props.validationOutcome.getMessages())}):"
Expand All @@ -57,9 +56,9 @@ class ValidationSummary : RComponent<ValidationSummaryProps, ValidationSummarySt
}
styledDiv {
css {
+ValidationSummaryStyle.resultsDiv
+ValidationOutcomeContainerStyle.resultsDiv
}
fileValidationResults {
fileValidationOutcome {
validationOutcome = props.validationOutcome
messageFilter = state.messageFilter
}
Expand All @@ -71,16 +70,16 @@ class ValidationSummary : RComponent<ValidationSummaryProps, ValidationSummarySt
/**
* React Component Builder
*/
fun RBuilder.validationSummary(handler: ValidationSummaryProps.() -> Unit) {
return child(ValidationSummary::class) {
fun RBuilder.validationOutcomeContainer(handler: ValidationOutcomeContainerProps.() -> Unit) {
return child(ValidationOutcomeContainer::class) {
this.attrs(handler)
}
}

/**
* CSS
*/
object ValidationSummaryStyle : StyleSheet("ValidationSummaryStyle", isStatic = true) {
object ValidationOutcomeContainerStyle : StyleSheet("ValidationOutcomeContainerStyle", isStatic = true) {
val mainContainer by css {
display = Display.flex
flexDirection = FlexDirection.column
Expand All @@ -98,7 +97,6 @@ object ValidationSummaryStyle : StyleSheet("ValidationSummaryStyle", isStatic =
display = Display.flex
flexDirection = FlexDirection.row
justifyContent = JustifyContent.left
//padding(horizontal = 16.px)
}
val resultsDiv by css {
display = Display.flex
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,33 +11,33 @@ import styled.StyleSheet
import styled.css
import styled.styledDiv

external interface ValidationSummaryPopupProps : Props {
external interface ValidationOutcomePopupProps : Props {
var validationOutcome: ValidationOutcome
var polyglot: Polyglot
var onClose: () -> Unit
}

class ValidationSummaryPopup : RComponent<ValidationSummaryPopupProps, State>() {
class ValidationOutcomePopup : RComponent<ValidationOutcomePopupProps, State>() {

override fun RBuilder.render() {
styledDiv {
css {
+ValidationSummaryPopupStyle.overlay
+ValidationOutcomePopupStyle.overlay
}
styledDiv {
css {
+ValidationSummaryPopupStyle.content
+ValidationOutcomePopupStyle.content
}
styledDiv {
css {
+ValidationSummaryStyle.mainContainer
+ValidationOutcomeContainerStyle.mainContainer
}

styledDiv {
css {
+ValidationSummaryStyle.headerContainer
+ValidationOutcomeContainerStyle.headerContainer
}
validationResultDialogHeader {
validationOutcomePopupHeader {
filename = props.validationOutcome.getFileInfo().fileName
onClose = {
props.onClose()
Expand All @@ -46,9 +46,9 @@ class ValidationSummaryPopup : RComponent<ValidationSummaryPopupProps, State>()
}
styledDiv {
css {
+ ValidationSummaryPopupStyle.resultsContainer
+ ValidationOutcomePopupStyle.resultsContainer
}
validationSummary {
validationOutcomeContainer {
polyglot = props.polyglot
validationOutcome = props.validationOutcome
onClose = {
Expand All @@ -65,16 +65,16 @@ class ValidationSummaryPopup : RComponent<ValidationSummaryPopupProps, State>()
/**
* React Component Builder
*/
fun RBuilder.validationSummaryPopup(handler: ValidationSummaryPopupProps.() -> Unit) {
return child(ValidationSummaryPopup::class) {
fun RBuilder.validationOutcomePopup(handler: ValidationOutcomePopupProps.() -> Unit) {
return child(ValidationOutcomePopup::class) {
this.attrs(handler)
}
}

/**
* CSS
*/
object ValidationSummaryPopupStyle : StyleSheet("ValidationSummaryPopupStyle", isStatic = true) {
object ValidationOutcomePopupStyle : StyleSheet("ValidationOutcomePopupStyle", isStatic = true) {
val overlay by css {
display = Display.flex
position = Position.fixed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,28 @@ import react.*
import react.dom.attrs
import styled.*

external interface ValidationResultDialogHeaderProps : Props {
external interface ValidationOutcomePopupHeaderProps : Props {
var filename: String
var onClose: () -> Unit
}

class ValidationResultDialogHeader : RComponent<ValidationResultDialogHeaderProps, State>() {
class ValidationOutcomePopupHeader : RComponent<ValidationOutcomePopupHeaderProps, State>() {

override fun RBuilder.render() {
styledDiv {
css {
+ValidationSummaryHeaderStyle.container
+ValidationOutcomePopupHeaderStyle.container
}
styledSpan {
css {
+TextStyle.tabSectionHeading
+ValidationSummaryHeaderStyle.titleField
+ValidationOutcomePopupHeaderStyle.titleField
}
+props.filename
}
styledImg {
css {
+ValidationSummaryHeaderStyle.closeIcon
+ValidationOutcomePopupHeaderStyle.closeIcon
hover {
backgroundColor = INACTIVE_GRAY
}
Expand All @@ -54,16 +54,16 @@ class ValidationResultDialogHeader : RComponent<ValidationResultDialogHeaderProp
/**
* React Component Builder
*/
fun RBuilder.validationResultDialogHeader(handler: ValidationResultDialogHeaderProps.() -> Unit) {
return child(ValidationResultDialogHeader::class) {
fun RBuilder.validationOutcomePopupHeader(handler: ValidationOutcomePopupHeaderProps.() -> Unit) {
return child(ValidationOutcomePopupHeader::class) {
this.attrs(handler)
}
}

/**
* CSS
*/
object ValidationSummaryHeaderStyle : StyleSheet("ValidationSummaryHeaderStyle", isStatic = true) {
object ValidationOutcomePopupHeaderStyle : StyleSheet("ValidationOutcomePopupHeaderStyle", isStatic = true) {
val container by css {
display = Display.flex
flexDirection = FlexDirection.row
Expand Down