221 lines
8.2 KiB
JSON
221 lines
8.2 KiB
JSON
{
|
|
"version": "1.0.0",
|
|
"layout_name": "errors/503",
|
|
"extends": "_user_base",
|
|
"meta": {
|
|
"title": "$t:error.503.title",
|
|
"description": "$t:error.503.description",
|
|
"is_error_layout": true,
|
|
"error_code": 503
|
|
},
|
|
"slots": {
|
|
"content": [
|
|
{
|
|
"type": "basic",
|
|
"name": "Div",
|
|
"props": {
|
|
"className": "min-h-[60vh] flex items-center justify-center"
|
|
},
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "Div",
|
|
"props": {
|
|
"className": "text-center px-4 max-w-lg"
|
|
},
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "Icon",
|
|
"props": {
|
|
"name": "triangle-exclamation",
|
|
"className": "w-24 h-24 mx-auto text-orange-400 dark:text-orange-500 mb-6"
|
|
}
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "Div",
|
|
"props": {
|
|
"className": "text-8xl font-bold text-gray-200 dark:text-gray-700 mb-4"
|
|
},
|
|
"text": "503"
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "H1",
|
|
"props": {
|
|
"className": "text-2xl font-bold text-gray-900 dark:text-white mb-2"
|
|
},
|
|
"text": "$t:error.503.title"
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "P",
|
|
"props": {
|
|
"className": "text-gray-600 dark:text-gray-400 mb-4"
|
|
},
|
|
"text": "$t:error.503.description"
|
|
},
|
|
{
|
|
"id": "dependency_info",
|
|
"type": "basic",
|
|
"name": "Div",
|
|
"if": "{{_global.errorData && ((_global.errorData.modules && _global.errorData.modules.length > 0) || (_global.errorData.plugins && _global.errorData.plugins.length > 0))}}",
|
|
"props": {
|
|
"className": "bg-orange-50 dark:bg-orange-900/20 border border-orange-200 dark:border-orange-800 rounded-lg p-4 mb-6 text-left"
|
|
},
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "P",
|
|
"props": {
|
|
"className": "text-sm font-medium text-orange-800 dark:text-orange-200 mb-3"
|
|
},
|
|
"text": "$t:error.503.unmet_dependencies"
|
|
},
|
|
{
|
|
"id": "modules_list",
|
|
"type": "basic",
|
|
"name": "Div",
|
|
"if": "{{_global.errorData.modules && _global.errorData.modules.length > 0}}",
|
|
"props": {
|
|
"className": "mb-3"
|
|
},
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "P",
|
|
"props": {
|
|
"className": "text-xs font-semibold text-gray-600 dark:text-gray-400 mb-1"
|
|
},
|
|
"text": "$t:error.503.required_modules"
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "Div",
|
|
"props": {
|
|
"className": "flex flex-wrap gap-2"
|
|
},
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "Span",
|
|
"iteration": {
|
|
"source": "_global.errorData.modules",
|
|
"item_var": "mod"
|
|
},
|
|
"props": {
|
|
"className": "inline-flex items-center gap-1 px-2 py-1 text-xs bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-300 rounded"
|
|
},
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "Icon",
|
|
"props": {
|
|
"name": "x-circle",
|
|
"className": "w-3 h-3"
|
|
}
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "Span",
|
|
"text": "{{mod.name}}({{mod.identifier}}) ({{mod.required_version}})"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "plugins_list",
|
|
"type": "basic",
|
|
"name": "Div",
|
|
"if": "{{_global.errorData.plugins && _global.errorData.plugins.length > 0}}",
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "P",
|
|
"props": {
|
|
"className": "text-xs font-semibold text-gray-600 dark:text-gray-400 mb-1"
|
|
},
|
|
"text": "$t:error.503.required_plugins"
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "Div",
|
|
"props": {
|
|
"className": "flex flex-wrap gap-2"
|
|
},
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "Span",
|
|
"iteration": {
|
|
"source": "_global.errorData.plugins",
|
|
"item_var": "plug"
|
|
},
|
|
"props": {
|
|
"className": "inline-flex items-center gap-1 px-2 py-1 text-xs bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-300 rounded"
|
|
},
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "Icon",
|
|
"props": {
|
|
"name": "x-circle",
|
|
"className": "w-3 h-3"
|
|
}
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "Span",
|
|
"text": "{{plug.name}}({{plug.identifier}}) ({{plug.required_version}})"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "P",
|
|
"props": {
|
|
"className": "text-sm text-gray-500 dark:text-gray-500 mb-8"
|
|
},
|
|
"text": "$t:error.503.contact_admin"
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "Button",
|
|
"props": {
|
|
"className": "inline-flex items-center gap-2 px-6 py-3 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors cursor-pointer"
|
|
},
|
|
"actions": [{ "type": "click", "handler": "navigate", "params": { "path": "/" } }],
|
|
"children": [
|
|
{
|
|
"type": "basic",
|
|
"name": "Icon",
|
|
"props": {
|
|
"name": "home",
|
|
"className": "w-5 h-5"
|
|
}
|
|
},
|
|
{
|
|
"type": "basic",
|
|
"name": "Span",
|
|
"text": "$t:error.503.back_to_home"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|