Files
adam-acs/inertia/components/TitleBar.vue
T
Kevin L'HereecandCopilot 847da1cdf5 feat: per-device TR-069 SOAP trace logging
- Tr069TraceService: in-memory Map O(1) lookup, Promise-queue per device
  for sequential file writes, 10MB rotation (5 files kept)
- config/tr069-trace.json: persisted list of traced devices (atomic write)
- CwmpLoggerMiddleware: buffers request+response, writes to device log file
  after next() once ctx.cwmpDeviceId is set by controller
- CwmpController: sets ctx.cwmpDeviceId on all code paths (Inform + others)
- StateMachineManager: getHashIdForRemote() for non-Inform messages
- REST API: GET/POST/DELETE /api/v1/tr069-trace
- UI: Tr069Trace Vue page with device search, add/remove tracing
- 8 new unit tests (192 total, all passing)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-01 12:07:07 +02:00

33 lines
822 B
Vue

<script setup lang="ts">
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
type SectionKey = 'devices' | 'configurations' | 'commands' | 'device' | 'firmware' | 'trace'
const { section, subtitle } = defineProps<{
section: SectionKey
subtitle?: string
}>()
const sectionColors: Record<SectionKey, string> = {
devices: 'blue',
configurations: 'yellow',
commands: 'orange',
device: 'green',
firmware: 'purple',
trace: 'orange',
}
</script>
<template>
<div :class="['bg-supporting-' + sectionColors[section]]" data-bs-theme="light">
<div class="container-xxl py-3">
<h1 class="display-1 mb-0" style="letter-spacing: normal">
{{ t(`titles.${section}`) }}
<span v-if="subtitle" class="fs-5 fw-bold ms-2">{{ subtitle }}</span>
</h1>
</div>
</div>
</template>