chore: coderabbit suggestions
This commit is contained in:
parent
fe1ac20935
commit
e1f8c01fe5
|
|
@ -108,7 +108,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, computed, onMounted } from 'vue'
|
import { ref, computed, onMounted, onUnmounted } from 'vue'
|
||||||
import Section from 'picocrank/vue/components/Section.vue'
|
import Section from 'picocrank/vue/components/Section.vue'
|
||||||
import Table from 'picocrank/vue/components/Table.vue'
|
import Table from 'picocrank/vue/components/Table.vue'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
@ -130,7 +130,7 @@ const configIssueHeaders = computed(() => [
|
||||||
{ key: 'actionTitle', label: t('diagnostics.config-issue-action'), sortable: true, width: '10rem' },
|
{ key: 'actionTitle', label: t('diagnostics.config-issue-action'), sortable: true, width: '10rem' },
|
||||||
{ key: 'argumentName', label: t('diagnostics.config-issue-argument'), sortable: true, width: '8rem' },
|
{ key: 'argumentName', label: t('diagnostics.config-issue-argument'), sortable: true, width: '8rem' },
|
||||||
{ key: 'configFile', label: t('diagnostics.config-issue-config-file'), sortable: true, width: '14rem' },
|
{ key: 'configFile', label: t('diagnostics.config-issue-config-file'), sortable: true, width: '14rem' },
|
||||||
{ key: 'source', label: t('diagnostics.config-issue-detail'), sortable: false, width: '12rem' }
|
{ key: 'source', label: t('diagnostics.config-issue-source'), sortable: false, width: '12rem' }
|
||||||
])
|
])
|
||||||
|
|
||||||
const configIssueRows = computed(() => configIssues.value.map((issue) => ({
|
const configIssueRows = computed(() => configIssues.value.map((issue) => ({
|
||||||
|
|
@ -311,5 +311,12 @@ async function copyBrowserInfo () {
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
fetchDiagnostics()
|
fetchDiagnostics()
|
||||||
|
window.addEventListener('EventConfigChanged', fetchDiagnostics)
|
||||||
|
window.addEventListener('EventEntityChanged', fetchDiagnostics)
|
||||||
|
})
|
||||||
|
|
||||||
|
onUnmounted(() => {
|
||||||
|
window.removeEventListener('EventConfigChanged', fetchDiagnostics)
|
||||||
|
window.removeEventListener('EventEntityChanged', fetchDiagnostics)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -5,17 +5,17 @@
|
||||||
"connected": "Verbunden",
|
"connected": "Verbunden",
|
||||||
"diagnostics.browser-info": "Browser-Informationen",
|
"diagnostics.browser-info": "Browser-Informationen",
|
||||||
"diagnostics.browser-info-description": "Dieser Abschnitt ermöglicht es Ihnen, einen detaillierten Bericht über Ihre Browser-Informationen zu erstellen. Dies kann bei der Fehlerbehebung von browser-spezifischen Problemen hilfreich sein.",
|
"diagnostics.browser-info-description": "Dieser Abschnitt ermöglicht es Ihnen, einen detaillierten Bericht über Ihre Browser-Informationen zu erstellen. Dies kann bei der Fehlerbehebung von browser-spezifischen Problemen hilfreich sein.",
|
||||||
"diagnostics.config-issue-action": "Action",
|
"diagnostics.config-issue-action": "Aktion",
|
||||||
"diagnostics.config-issue-argument": "Argument",
|
"diagnostics.config-issue-argument": "Argument",
|
||||||
"diagnostics.config-issue-code": "Code",
|
"diagnostics.config-issue-code": "Code",
|
||||||
"diagnostics.config-issue-config-file": "Config file",
|
"diagnostics.config-issue-config-file": "Konfigurationsdatei",
|
||||||
"diagnostics.config-issue-detail": "Detail",
|
"diagnostics.config-issue-detail": "Detail",
|
||||||
"diagnostics.config-issue-message": "Message",
|
"diagnostics.config-issue-message": "Meldung",
|
||||||
"diagnostics.config-issue-severity": "Severity",
|
"diagnostics.config-issue-severity": "Schweregrad",
|
||||||
"diagnostics.config-issue-source": "Source",
|
"diagnostics.config-issue-source": "Quelle",
|
||||||
"diagnostics.config-issues": "Configuration issues",
|
"diagnostics.config-issues": "Konfigurationsprobleme",
|
||||||
"diagnostics.config-issues-description": "Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.",
|
"diagnostics.config-issues-description": "In der aktuellen OliveTin-Konfiguration erkannte Probleme. Beheben Sie diese in Ihren Konfigurationsdateien und laden Sie OliveTin neu.",
|
||||||
"diagnostics.config-issues-none": "No configuration issues detected.",
|
"diagnostics.config-issues-none": "Keine Konfigurationsprobleme erkannt.",
|
||||||
"diagnostics.copied": "Kopiert!",
|
"diagnostics.copied": "Kopiert!",
|
||||||
"diagnostics.copy-to-clipboard": "In Zwischenablage kopieren",
|
"diagnostics.copy-to-clipboard": "In Zwischenablage kopieren",
|
||||||
"diagnostics.found-config": "Konfiguration gefunden",
|
"diagnostics.found-config": "Konfiguration gefunden",
|
||||||
|
|
@ -185,17 +185,17 @@
|
||||||
"connected": "Conectado",
|
"connected": "Conectado",
|
||||||
"diagnostics.browser-info": "Información del navegador",
|
"diagnostics.browser-info": "Información del navegador",
|
||||||
"diagnostics.browser-info-description": "Esta sección le permite generar un informe detallado de su información del navegador. Esto puede ser útil al solucionar problemas específicos del navegador.",
|
"diagnostics.browser-info-description": "Esta sección le permite generar un informe detallado de su información del navegador. Esto puede ser útil al solucionar problemas específicos del navegador.",
|
||||||
"diagnostics.config-issue-action": "Action",
|
"diagnostics.config-issue-action": "Acción",
|
||||||
"diagnostics.config-issue-argument": "Argument",
|
"diagnostics.config-issue-argument": "Argumento",
|
||||||
"diagnostics.config-issue-code": "Code",
|
"diagnostics.config-issue-code": "Código",
|
||||||
"diagnostics.config-issue-config-file": "Config file",
|
"diagnostics.config-issue-config-file": "Archivo de configuración",
|
||||||
"diagnostics.config-issue-detail": "Detail",
|
"diagnostics.config-issue-detail": "Detalle",
|
||||||
"diagnostics.config-issue-message": "Message",
|
"diagnostics.config-issue-message": "Mensaje",
|
||||||
"diagnostics.config-issue-severity": "Severity",
|
"diagnostics.config-issue-severity": "Severidad",
|
||||||
"diagnostics.config-issue-source": "Source",
|
"diagnostics.config-issue-source": "Origen",
|
||||||
"diagnostics.config-issues": "Configuration issues",
|
"diagnostics.config-issues": "Problemas de configuración",
|
||||||
"diagnostics.config-issues-description": "Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.",
|
"diagnostics.config-issues-description": "Problemas detectados en la configuración actual de OliveTin. Corríjalos en sus archivos de configuración y vuelva a cargar OliveTin.",
|
||||||
"diagnostics.config-issues-none": "No configuration issues detected.",
|
"diagnostics.config-issues-none": "No se detectaron problemas de configuración.",
|
||||||
"diagnostics.copied": "¡Copiado!",
|
"diagnostics.copied": "¡Copiado!",
|
||||||
"diagnostics.copy-to-clipboard": "Copiar al portapapeles",
|
"diagnostics.copy-to-clipboard": "Copiar al portapapeles",
|
||||||
"diagnostics.found-config": "Configuración encontrada",
|
"diagnostics.found-config": "Configuración encontrada",
|
||||||
|
|
@ -275,17 +275,17 @@
|
||||||
"connected": "Connesso",
|
"connected": "Connesso",
|
||||||
"diagnostics.browser-info": "Informazioni del browser",
|
"diagnostics.browser-info": "Informazioni del browser",
|
||||||
"diagnostics.browser-info-description": "Questa sezione ti consente di generare un rapporto dettagliato delle informazioni del tuo browser. Questo può essere utile durante la risoluzione dei problemi specifici del browser.",
|
"diagnostics.browser-info-description": "Questa sezione ti consente di generare un rapporto dettagliato delle informazioni del tuo browser. Questo può essere utile durante la risoluzione dei problemi specifici del browser.",
|
||||||
"diagnostics.config-issue-action": "Action",
|
"diagnostics.config-issue-action": "Azione",
|
||||||
"diagnostics.config-issue-argument": "Argument",
|
"diagnostics.config-issue-argument": "Argomento",
|
||||||
"diagnostics.config-issue-code": "Code",
|
"diagnostics.config-issue-code": "Codice",
|
||||||
"diagnostics.config-issue-config-file": "Config file",
|
"diagnostics.config-issue-config-file": "File di configurazione",
|
||||||
"diagnostics.config-issue-detail": "Detail",
|
"diagnostics.config-issue-detail": "Dettaglio",
|
||||||
"diagnostics.config-issue-message": "Message",
|
"diagnostics.config-issue-message": "Messaggio",
|
||||||
"diagnostics.config-issue-severity": "Severity",
|
"diagnostics.config-issue-severity": "Gravità",
|
||||||
"diagnostics.config-issue-source": "Source",
|
"diagnostics.config-issue-source": "Origine",
|
||||||
"diagnostics.config-issues": "Configuration issues",
|
"diagnostics.config-issues": "Problemi di configurazione",
|
||||||
"diagnostics.config-issues-description": "Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.",
|
"diagnostics.config-issues-description": "Problemi rilevati nella configurazione corrente di OliveTin. Correggili nei file di configurazione e ricarica OliveTin.",
|
||||||
"diagnostics.config-issues-none": "No configuration issues detected.",
|
"diagnostics.config-issues-none": "Nessun problema di configurazione rilevato.",
|
||||||
"diagnostics.copied": "Copiato!",
|
"diagnostics.copied": "Copiato!",
|
||||||
"diagnostics.copy-to-clipboard": "Copia negli appunti",
|
"diagnostics.copy-to-clipboard": "Copia negli appunti",
|
||||||
"diagnostics.found-config": "Configurazione trovata",
|
"diagnostics.found-config": "Configurazione trovata",
|
||||||
|
|
@ -365,17 +365,17 @@
|
||||||
"connected": "已连接",
|
"connected": "已连接",
|
||||||
"diagnostics.browser-info": "浏览器信息",
|
"diagnostics.browser-info": "浏览器信息",
|
||||||
"diagnostics.browser-info-description": "此部分允许您生成浏览器信息的详细报告。这在排查浏览器特定问题时很有帮助。",
|
"diagnostics.browser-info-description": "此部分允许您生成浏览器信息的详细报告。这在排查浏览器特定问题时很有帮助。",
|
||||||
"diagnostics.config-issue-action": "Action",
|
"diagnostics.config-issue-action": "操作",
|
||||||
"diagnostics.config-issue-argument": "Argument",
|
"diagnostics.config-issue-argument": "参数",
|
||||||
"diagnostics.config-issue-code": "Code",
|
"diagnostics.config-issue-code": "代码",
|
||||||
"diagnostics.config-issue-config-file": "Config file",
|
"diagnostics.config-issue-config-file": "配置文件",
|
||||||
"diagnostics.config-issue-detail": "Detail",
|
"diagnostics.config-issue-detail": "详情",
|
||||||
"diagnostics.config-issue-message": "Message",
|
"diagnostics.config-issue-message": "消息",
|
||||||
"diagnostics.config-issue-severity": "Severity",
|
"diagnostics.config-issue-severity": "严重程度",
|
||||||
"diagnostics.config-issue-source": "Source",
|
"diagnostics.config-issue-source": "来源",
|
||||||
"diagnostics.config-issues": "Configuration issues",
|
"diagnostics.config-issues": "配置问题",
|
||||||
"diagnostics.config-issues-description": "Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.",
|
"diagnostics.config-issues-description": "当前 OliveTin 配置中检测到的问题。请在配置文件中修复这些问题并重新加载 OliveTin。",
|
||||||
"diagnostics.config-issues-none": "No configuration issues detected.",
|
"diagnostics.config-issues-none": "未检测到配置问题。",
|
||||||
"diagnostics.copied": "已复制!",
|
"diagnostics.copied": "已复制!",
|
||||||
"diagnostics.copy-to-clipboard": "复制到剪贴板",
|
"diagnostics.copy-to-clipboard": "复制到剪贴板",
|
||||||
"diagnostics.found-config": "找到配置",
|
"diagnostics.found-config": "找到配置",
|
||||||
|
|
@ -455,17 +455,17 @@
|
||||||
"connected": "已連線",
|
"connected": "已連線",
|
||||||
"diagnostics.browser-info": "瀏覽器資訊",
|
"diagnostics.browser-info": "瀏覽器資訊",
|
||||||
"diagnostics.browser-info-description": "此區塊可讓您產生瀏覽器資訊的詳細報告。這在排解特定瀏覽器問題時相當有幫助。",
|
"diagnostics.browser-info-description": "此區塊可讓您產生瀏覽器資訊的詳細報告。這在排解特定瀏覽器問題時相當有幫助。",
|
||||||
"diagnostics.config-issue-action": "Action",
|
"diagnostics.config-issue-action": "動作",
|
||||||
"diagnostics.config-issue-argument": "Argument",
|
"diagnostics.config-issue-argument": "參數",
|
||||||
"diagnostics.config-issue-code": "Code",
|
"diagnostics.config-issue-code": "代碼",
|
||||||
"diagnostics.config-issue-config-file": "Config file",
|
"diagnostics.config-issue-config-file": "設定檔",
|
||||||
"diagnostics.config-issue-detail": "Detail",
|
"diagnostics.config-issue-detail": "詳細資料",
|
||||||
"diagnostics.config-issue-message": "Message",
|
"diagnostics.config-issue-message": "訊息",
|
||||||
"diagnostics.config-issue-severity": "Severity",
|
"diagnostics.config-issue-severity": "嚴重程度",
|
||||||
"diagnostics.config-issue-source": "Source",
|
"diagnostics.config-issue-source": "來源",
|
||||||
"diagnostics.config-issues": "Configuration issues",
|
"diagnostics.config-issues": "設定問題",
|
||||||
"diagnostics.config-issues-description": "Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.",
|
"diagnostics.config-issues-description": "目前 OliveTin 設定中偵測到的問題。請在設定檔中修正這些問題並重新載入 OliveTin。",
|
||||||
"diagnostics.config-issues-none": "No configuration issues detected.",
|
"diagnostics.config-issues-none": "未偵測到設定問題。",
|
||||||
"diagnostics.copied": "已複製!",
|
"diagnostics.copied": "已複製!",
|
||||||
"diagnostics.copy-to-clipboard": "複製到剪貼簿",
|
"diagnostics.copy-to-clipboard": "複製到剪貼簿",
|
||||||
"diagnostics.found-config": "找到設定檔 (Config)",
|
"diagnostics.found-config": "找到設定檔 (Config)",
|
||||||
|
|
|
||||||
|
|
@ -54,17 +54,17 @@ translations:
|
||||||
diagnostics.get-support: Unterstützung erhalten Unterstützung erhalten
|
diagnostics.get-support: Unterstützung erhalten Unterstützung erhalten
|
||||||
diagnostics.get-support-description: Wenn Sie Probleme mit OliveTin haben und eine Support-Anfrage stellen möchten, wäre es sehr hilfreich, Server-Diagnostik von dieser Seite einzufügen.
|
diagnostics.get-support-description: Wenn Sie Probleme mit OliveTin haben und eine Support-Anfrage stellen möchten, wäre es sehr hilfreich, Server-Diagnostik von dieser Seite einzufügen.
|
||||||
diagnostics.where-to-find-help: Wo Sie Hilfe finden
|
diagnostics.where-to-find-help: Wo Sie Hilfe finden
|
||||||
diagnostics.config-issues: Configuration issues
|
diagnostics.config-issues: Konfigurationsprobleme
|
||||||
diagnostics.config-issues-description: Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.
|
diagnostics.config-issues-description: In der aktuellen OliveTin-Konfiguration erkannte Probleme. Beheben Sie diese in Ihren Konfigurationsdateien und laden Sie OliveTin neu.
|
||||||
diagnostics.config-issues-none: No configuration issues detected.
|
diagnostics.config-issues-none: Keine Konfigurationsprobleme erkannt.
|
||||||
diagnostics.config-issue-severity: Severity
|
diagnostics.config-issue-severity: Schweregrad
|
||||||
diagnostics.config-issue-code: Code
|
diagnostics.config-issue-code: Code
|
||||||
diagnostics.config-issue-message: Message
|
diagnostics.config-issue-message: Meldung
|
||||||
diagnostics.config-issue-action: Action
|
diagnostics.config-issue-action: Aktion
|
||||||
diagnostics.config-issue-argument: Argument
|
diagnostics.config-issue-argument: Argument
|
||||||
diagnostics.config-issue-config-file: Config file
|
diagnostics.config-issue-config-file: Konfigurationsdatei
|
||||||
diagnostics.config-issue-detail: Detail
|
diagnostics.config-issue-detail: Detail
|
||||||
diagnostics.config-issue-source: Source
|
diagnostics.config-issue-source: Quelle
|
||||||
diagnostics.ssh: SSH
|
diagnostics.ssh: SSH
|
||||||
diagnostics.found-key: Schlüssel gefunden
|
diagnostics.found-key: Schlüssel gefunden
|
||||||
diagnostics.found-config: Konfiguration gefunden
|
diagnostics.found-config: Konfiguration gefunden
|
||||||
|
|
|
||||||
|
|
@ -54,17 +54,17 @@ translations:
|
||||||
diagnostics.get-support: Obtener soporte Obtener soporte
|
diagnostics.get-support: Obtener soporte Obtener soporte
|
||||||
diagnostics.get-support-description: Si tiene problemas con OliveTin y desea presentar una solicitud de soporte, sería muy útil incluir diagnósticos del servidor desde esta página.
|
diagnostics.get-support-description: Si tiene problemas con OliveTin y desea presentar una solicitud de soporte, sería muy útil incluir diagnósticos del servidor desde esta página.
|
||||||
diagnostics.where-to-find-help: Dónde encontrar ayuda
|
diagnostics.where-to-find-help: Dónde encontrar ayuda
|
||||||
diagnostics.config-issues: Configuration issues
|
diagnostics.config-issues: Problemas de configuración
|
||||||
diagnostics.config-issues-description: Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.
|
diagnostics.config-issues-description: Problemas detectados en la configuración actual de OliveTin. Corríjalos en sus archivos de configuración y vuelva a cargar OliveTin.
|
||||||
diagnostics.config-issues-none: No configuration issues detected.
|
diagnostics.config-issues-none: No se detectaron problemas de configuración.
|
||||||
diagnostics.config-issue-severity: Severity
|
diagnostics.config-issue-severity: Severidad
|
||||||
diagnostics.config-issue-code: Code
|
diagnostics.config-issue-code: Código
|
||||||
diagnostics.config-issue-message: Message
|
diagnostics.config-issue-message: Mensaje
|
||||||
diagnostics.config-issue-action: Action
|
diagnostics.config-issue-action: Acción
|
||||||
diagnostics.config-issue-argument: Argument
|
diagnostics.config-issue-argument: Argumento
|
||||||
diagnostics.config-issue-config-file: Config file
|
diagnostics.config-issue-config-file: Archivo de configuración
|
||||||
diagnostics.config-issue-detail: Detail
|
diagnostics.config-issue-detail: Detalle
|
||||||
diagnostics.config-issue-source: Source
|
diagnostics.config-issue-source: Origen
|
||||||
diagnostics.ssh: SSH
|
diagnostics.ssh: SSH
|
||||||
diagnostics.found-key: Clave encontrada
|
diagnostics.found-key: Clave encontrada
|
||||||
diagnostics.found-config: Configuración encontrada
|
diagnostics.found-config: Configuración encontrada
|
||||||
|
|
|
||||||
|
|
@ -54,17 +54,17 @@ translations:
|
||||||
diagnostics.get-support: Ottenere supporto Ottenere supporto
|
diagnostics.get-support: Ottenere supporto Ottenere supporto
|
||||||
diagnostics.get-support-description: Se hai problemi con OliveTin e vuoi presentare una richiesta di supporto, sarebbe molto utile includere la diagnostica del server da questa pagina.
|
diagnostics.get-support-description: Se hai problemi con OliveTin e vuoi presentare una richiesta di supporto, sarebbe molto utile includere la diagnostica del server da questa pagina.
|
||||||
diagnostics.where-to-find-help: Dove trovare aiuto
|
diagnostics.where-to-find-help: Dove trovare aiuto
|
||||||
diagnostics.config-issues: Configuration issues
|
diagnostics.config-issues: Problemi di configurazione
|
||||||
diagnostics.config-issues-description: Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.
|
diagnostics.config-issues-description: Problemi rilevati nella configurazione corrente di OliveTin. Correggili nei file di configurazione e ricarica OliveTin.
|
||||||
diagnostics.config-issues-none: No configuration issues detected.
|
diagnostics.config-issues-none: Nessun problema di configurazione rilevato.
|
||||||
diagnostics.config-issue-severity: Severity
|
diagnostics.config-issue-severity: Gravità
|
||||||
diagnostics.config-issue-code: Code
|
diagnostics.config-issue-code: Codice
|
||||||
diagnostics.config-issue-message: Message
|
diagnostics.config-issue-message: Messaggio
|
||||||
diagnostics.config-issue-action: Action
|
diagnostics.config-issue-action: Azione
|
||||||
diagnostics.config-issue-argument: Argument
|
diagnostics.config-issue-argument: Argomento
|
||||||
diagnostics.config-issue-config-file: Config file
|
diagnostics.config-issue-config-file: File di configurazione
|
||||||
diagnostics.config-issue-detail: Detail
|
diagnostics.config-issue-detail: Dettaglio
|
||||||
diagnostics.config-issue-source: Source
|
diagnostics.config-issue-source: Origine
|
||||||
diagnostics.ssh: SSH
|
diagnostics.ssh: SSH
|
||||||
diagnostics.found-key: Chiave trovata
|
diagnostics.found-key: Chiave trovata
|
||||||
diagnostics.found-config: Configurazione trovata
|
diagnostics.found-config: Configurazione trovata
|
||||||
|
|
|
||||||
|
|
@ -63,17 +63,17 @@ translations:
|
||||||
diagnostics.get-support: 获取支持 获取支持
|
diagnostics.get-support: 获取支持 获取支持
|
||||||
diagnostics.get-support-description: 如果您在使用 OliveTin 时遇到问题并希望提交支持请求,从本页面包含服务器诊断将非常有帮助。
|
diagnostics.get-support-description: 如果您在使用 OliveTin 时遇到问题并希望提交支持请求,从本页面包含服务器诊断将非常有帮助。
|
||||||
diagnostics.where-to-find-help: 在哪里找到帮助
|
diagnostics.where-to-find-help: 在哪里找到帮助
|
||||||
diagnostics.config-issues: Configuration issues
|
diagnostics.config-issues: 配置问题
|
||||||
diagnostics.config-issues-description: Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.
|
diagnostics.config-issues-description: 当前 OliveTin 配置中检测到的问题。请在配置文件中修复这些问题并重新加载 OliveTin。
|
||||||
diagnostics.config-issues-none: No configuration issues detected.
|
diagnostics.config-issues-none: 未检测到配置问题。
|
||||||
diagnostics.config-issue-severity: Severity
|
diagnostics.config-issue-severity: 严重程度
|
||||||
diagnostics.config-issue-code: Code
|
diagnostics.config-issue-code: 代码
|
||||||
diagnostics.config-issue-message: Message
|
diagnostics.config-issue-message: 消息
|
||||||
diagnostics.config-issue-action: Action
|
diagnostics.config-issue-action: 操作
|
||||||
diagnostics.config-issue-argument: Argument
|
diagnostics.config-issue-argument: 参数
|
||||||
diagnostics.config-issue-config-file: Config file
|
diagnostics.config-issue-config-file: 配置文件
|
||||||
diagnostics.config-issue-detail: Detail
|
diagnostics.config-issue-detail: 详情
|
||||||
diagnostics.config-issue-source: Source
|
diagnostics.config-issue-source: 来源
|
||||||
diagnostics.ssh: SSH
|
diagnostics.ssh: SSH
|
||||||
diagnostics.found-key: 找到密钥
|
diagnostics.found-key: 找到密钥
|
||||||
diagnostics.found-config: 找到配置
|
diagnostics.found-config: 找到配置
|
||||||
|
|
|
||||||
|
|
@ -54,17 +54,17 @@ translations:
|
||||||
diagnostics.get-support: 尋求技術支援
|
diagnostics.get-support: 尋求技術支援
|
||||||
diagnostics.get-support-description: 如果您在使用 OliveTin 時遇到問題並希望提出支援請求,提供此頁面的「伺服器診斷資訊」將會有很大的幫助。
|
diagnostics.get-support-description: 如果您在使用 OliveTin 時遇到問題並希望提出支援請求,提供此頁面的「伺服器診斷資訊」將會有很大的幫助。
|
||||||
diagnostics.where-to-find-help: 哪裡可以尋求協助
|
diagnostics.where-to-find-help: 哪裡可以尋求協助
|
||||||
diagnostics.config-issues: Configuration issues
|
diagnostics.config-issues: 設定問題
|
||||||
diagnostics.config-issues-description: Problems detected in the current OliveTin configuration. Fix these in your config files and reload OliveTin.
|
diagnostics.config-issues-description: 目前 OliveTin 設定中偵測到的問題。請在設定檔中修正這些問題並重新載入 OliveTin。
|
||||||
diagnostics.config-issues-none: No configuration issues detected.
|
diagnostics.config-issues-none: 未偵測到設定問題。
|
||||||
diagnostics.config-issue-severity: Severity
|
diagnostics.config-issue-severity: 嚴重程度
|
||||||
diagnostics.config-issue-code: Code
|
diagnostics.config-issue-code: 代碼
|
||||||
diagnostics.config-issue-message: Message
|
diagnostics.config-issue-message: 訊息
|
||||||
diagnostics.config-issue-action: Action
|
diagnostics.config-issue-action: 動作
|
||||||
diagnostics.config-issue-argument: Argument
|
diagnostics.config-issue-argument: 參數
|
||||||
diagnostics.config-issue-config-file: Config file
|
diagnostics.config-issue-config-file: 設定檔
|
||||||
diagnostics.config-issue-detail: Detail
|
diagnostics.config-issue-detail: 詳細資料
|
||||||
diagnostics.config-issue-source: Source
|
diagnostics.config-issue-source: 來源
|
||||||
diagnostics.ssh: SSH
|
diagnostics.ssh: SSH
|
||||||
diagnostics.found-key: 找到金鑰 (Key)
|
diagnostics.found-key: 找到金鑰 (Key)
|
||||||
diagnostics.found-config: 找到設定檔 (Config)
|
diagnostics.found-config: 找到設定檔 (Config)
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,8 @@ func TestGetDiagnosticsReturnsConfigIssues(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
ts, client := getNewTestServerAndClient(cfg)
|
testServer, client := getNewTestServerAndClient(cfg)
|
||||||
defer ts.Close()
|
defer testServer.Close()
|
||||||
|
|
||||||
res, err := client.GetDiagnostics(context.Background(), connect.NewRequest(&apiv1.GetDiagnosticsRequest{}))
|
res, err := client.GetDiagnostics(context.Background(), connect.NewRequest(&apiv1.GetDiagnosticsRequest{}))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
@ -69,8 +69,8 @@ func TestInitHidesConfigIssueCountWithoutDiagnostics(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
ts, client := getNewTestServerAndClient(cfg)
|
testServer, client := getNewTestServerAndClient(cfg)
|
||||||
defer ts.Close()
|
defer testServer.Close()
|
||||||
|
|
||||||
initRes, err := client.Init(context.Background(), connect.NewRequest(&apiv1.InitRequest{}))
|
initRes, err := client.Init(context.Background(), connect.NewRequest(&apiv1.InitRequest{}))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
@ -119,8 +119,8 @@ func TestConfigIssuesHideActionsWithoutViewPermission(t *testing.T) {
|
||||||
cfg.AuthHttpHeaderUsername = "X-Ot-User"
|
cfg.AuthHttpHeaderUsername = "X-Ot-User"
|
||||||
attachBrokenTemplateArgToSecretAction(cfg)
|
attachBrokenTemplateArgToSecretAction(cfg)
|
||||||
|
|
||||||
ts, client := getNewTestServerAndClient(cfg)
|
testServer, client := getNewTestServerAndClient(cfg)
|
||||||
defer ts.Close()
|
defer testServer.Close()
|
||||||
|
|
||||||
configissues.Report(configissues.Issue{
|
configissues.Report(configissues.Issue{
|
||||||
Severity: configissues.SeverityWarning,
|
Severity: configissues.SeverityWarning,
|
||||||
|
|
@ -157,8 +157,8 @@ func TestConfigIssuesHideRuntimeWatcherFailuresWithoutViewPermission(t *testing.
|
||||||
cfg, _, _ := buildViewPermissionTestConfig(t)
|
cfg, _, _ := buildViewPermissionTestConfig(t)
|
||||||
cfg.AuthHttpHeaderUsername = "X-Ot-User"
|
cfg.AuthHttpHeaderUsername = "X-Ot-User"
|
||||||
|
|
||||||
ts, client := getNewTestServerAndClient(cfg)
|
testServer, client := getNewTestServerAndClient(cfg)
|
||||||
defer ts.Close()
|
defer testServer.Close()
|
||||||
|
|
||||||
configissues.Report(configissues.Issue{
|
configissues.Report(configissues.Issue{
|
||||||
Severity: configissues.SeverityError,
|
Severity: configissues.SeverityError,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
package config
|
package config
|
||||||
|
|
||||||
import "github.com/knadh/koanf/v2"
|
import (
|
||||||
|
"github.com/knadh/koanf/v2"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
const sourceFileKey = "x-olivetin-source-file"
|
const sourceFileKey = "x-olivetin-source-file"
|
||||||
|
|
||||||
|
|
@ -34,6 +37,15 @@ func stampSourceOnMap(item any, sourceFile string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func stampLoadedConfigSources(k *koanf.Koanf, configPath string) {
|
func stampLoadedConfigSources(k *koanf.Koanf, configPath string) {
|
||||||
_ = k.Set("actions", stampSourceOnMaps(k.Get("actions"), configPath))
|
stampConfigKey(k, "actions", configPath)
|
||||||
_ = k.Set("entities", stampSourceOnMaps(k.Get("entities"), configPath))
|
stampConfigKey(k, "entities", configPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
func stampConfigKey(k *koanf.Koanf, key, configPath string) {
|
||||||
|
if err := k.Set(key, stampSourceOnMaps(k.Get(key), configPath)); err != nil {
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"key": key,
|
||||||
|
"configPath": configPath,
|
||||||
|
}).Errorf("Failed to persist source stamps: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ func checklistNoChoicesIssue(action *config.Action, arg *config.ActionArgument)
|
||||||
}
|
}
|
||||||
|
|
||||||
func checklistEntityChoicesIssue(action *config.Action, arg *config.ActionArgument) []configissues.Issue {
|
func checklistEntityChoicesIssue(action *config.Action, arg *config.ActionArgument) []configissues.Issue {
|
||||||
if arg.Entity == "" || len(arg.Choices) == 1 {
|
if arg.Entity == "" || len(arg.Choices) <= 1 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -127,7 +127,10 @@ func collectIncludeIssues(cfg *config.Config) []configissues.Issue {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
includePath := filepath.Join(cfg.GetDir(), cfg.Include)
|
includePath := cfg.Include
|
||||||
|
if !filepath.IsAbs(includePath) {
|
||||||
|
includePath = filepath.Join(cfg.GetDir(), cfg.Include)
|
||||||
|
}
|
||||||
info, err := os.Stat(includePath)
|
info, err := os.Stat(includePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []configissues.Issue{{
|
return []configissues.Issue{{
|
||||||
|
|
@ -410,19 +413,33 @@ func watcherPathIssuesForAction(action *config.Action) []configissues.Issue {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
out := make([]configissues.Issue, 0)
|
||||||
|
out = append(out, watcherCreatedDirIssues(action)...)
|
||||||
|
out = append(out, watcherChangedDirIssues(action)...)
|
||||||
|
out = append(out, watcherCalendarFileIssues(action)...)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
func watcherCreatedDirIssues(action *config.Action) []configissues.Issue {
|
||||||
out := make([]configissues.Issue, 0)
|
out := make([]configissues.Issue, 0)
|
||||||
for _, dir := range action.ExecOnFileCreatedInDir {
|
for _, dir := range action.ExecOnFileCreatedInDir {
|
||||||
out = append(out, watcherDirIssue(action, dir)...)
|
out = append(out, watcherDirIssue(action, dir)...)
|
||||||
}
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
func watcherChangedDirIssues(action *config.Action) []configissues.Issue {
|
||||||
|
out := make([]configissues.Issue, 0)
|
||||||
for _, dir := range action.ExecOnFileChangedInDir {
|
for _, dir := range action.ExecOnFileChangedInDir {
|
||||||
out = append(out, watcherDirIssue(action, dir)...)
|
out = append(out, watcherDirIssue(action, dir)...)
|
||||||
}
|
}
|
||||||
if action.ExecOnCalendarFile != "" {
|
|
||||||
out = append(out, watcherFileIssue(action, action.ExecOnCalendarFile)...)
|
|
||||||
}
|
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func watcherCalendarFileIssues(action *config.Action) []configissues.Issue {
|
||||||
|
return watcherFileIssue(action, action.ExecOnCalendarFile)
|
||||||
|
}
|
||||||
|
|
||||||
func watcherPathIssuesForEntities(cfg *config.Config) []configissues.Issue {
|
func watcherPathIssuesForEntities(cfg *config.Config) []configissues.Issue {
|
||||||
out := make([]configissues.Issue, 0)
|
out := make([]configissues.Issue, 0)
|
||||||
baseDir := entities.ResolveEntitiesBaseDir(cfg.GetDir())
|
baseDir := entities.ResolveEntitiesBaseDir(cfg.GetDir())
|
||||||
|
|
|
||||||
|
|
@ -97,9 +97,9 @@ func Report(issue Issue) {
|
||||||
storeMu.Lock()
|
storeMu.Lock()
|
||||||
defer storeMu.Unlock()
|
defer storeMu.Unlock()
|
||||||
|
|
||||||
fp := issueFingerprint(issue)
|
issueFingerprintValue := issueFingerprint(issue)
|
||||||
for _, existing := range issues {
|
for _, existing := range issues {
|
||||||
if issueFingerprint(existing) == fp {
|
if issueFingerprint(existing) == issueFingerprintValue {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,9 @@ func watchAndLoadEntity(baseDir string, ef *config.EntityFile) {
|
||||||
p = filepath.Join(baseDir, p)
|
p = filepath.Join(baseDir, p)
|
||||||
log.WithFields(log.Fields{"entityFile": p}).Debugf("Adding config dir to entity file path")
|
log.WithFields(log.Fields{"entityFile": p}).Debugf("Adding config dir to entity file path")
|
||||||
}
|
}
|
||||||
go filehelper.WatchFileWrite(p, func(filename string) { loadEntityFile(p, ef.Name) }, filehelper.WatchMeta{})
|
go filehelper.WatchFileWrite(p, func(filename string) { loadEntityFile(p, ef.Name) }, filehelper.WatchMeta{
|
||||||
|
ConfigFile: ef.SourceFile,
|
||||||
|
})
|
||||||
loadEntityFile(p, ef.Name)
|
loadEntityFile(p, ef.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -155,10 +157,23 @@ func loadEntityFileYaml(filename string, entityname string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func replaceEntitiesFromFile(entityname string, data []map[string]any) {
|
func replaceEntitiesFromFile(entityname string, data []map[string]any) {
|
||||||
ClearEntitiesOfType(entityname)
|
rwmutex.Lock()
|
||||||
|
defer rwmutex.Unlock()
|
||||||
|
|
||||||
|
delete(entities, entityname)
|
||||||
|
|
||||||
|
if len(data) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
entities[entityname] = make(entityInstancesByKey, 0)
|
||||||
for i, mapp := range data {
|
for i, mapp := range data {
|
||||||
AddEntity(entityname, fmt.Sprintf("%d", i), mapp)
|
entityKey := fmt.Sprintf("%d", i)
|
||||||
|
entities[entityname][entityKey] = &Entity{
|
||||||
|
Data: mapp,
|
||||||
|
UniqueKey: entityKey,
|
||||||
|
Title: findEntityTitle(mapp),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue