76 lines
2.6 KiB
TypeScript
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)}
|
|
})
|
|
} |