Files

76 lines
2.6 KiB
TypeScript

import m from "mithril"
import { gridMountpoints } from "../mainlayout"
import {ModalType, ModalView, iModalView} from "../widgets/Modal"
export interface iWrongEditSelectionMessage{
elementname: string
}
export const WrongEditSelectionMessage: m.Component<iWrongEditSelectionMessage> = {
view: (vnode) => {
return (
m(ModalView,
{
title: "Falsche Auswahl",
type: ModalType.ERROR,
width: '33%'
} as iModalView,
m("p", `Zum Editieren muss genau 1 ${vnode.attrs.elementname} ausgewählt sein!`),
m("div.w3-bar.w3-padding-16",
[
m("button.w3-button.w3-theme.w3-right", {onclick: () => {m.mount(gridMountpoints.modalhook, null)}}, "OK"),
]
)
)
)
}
}
export interface iServerErrorMessage {
error: {
messages: string[],
status: number
}
}
export const ServerErrorMessage: m.Component<iServerErrorMessage> = {
view: (vnode) => {
return (
m(ModalView,
{
title: "Fehler",
type: ModalType.ERROR,
width: "33%"
} as iModalView,
m("div.w3-panel",
vnode.attrs.error.messages.map((message) => {
return m("div", message)
}),
m("div.w3-small", `(HTML-Status: ${vnode.attrs.error.status})`)
),
m("div.w3-bar.w3-padding-16",
m("button.w3-button.w3-theme.w3-right", {onclick: () => {m.mount(gridMountpoints.modalhook, null)}}, "OK"),
)
)
)
}
}
export function showServerError (e) {
let servererror:iServerErrorMessage = {error: {messages:[], status: e.code}}
console.log(JSON.stringify(e), e.message)
if (e.response != undefined && e.response["messages"] != undefined) {
if (!Array.isArray(e.response["messages"])) {
e.response["messages"] = [e.response["messages"]]
}
servererror.error.messages = e.response.messages
}
else if (e.response != undefined) {
servererror.error.messages = [JSON.stringify(e.response)]
}
else {
servererror.error.messages = [JSON.stringify(e)]
}
m.mount(gridMountpoints.modalhook, {
view: () => {return m(ServerErrorMessage, {error: servererror.error } as iServerErrorMessage)}
})
}