move
This commit is contained in:
@@ -18,6 +18,16 @@ export const useIPStore = defineStore('ip', () => {
|
||||
known: 0,
|
||||
unknown: 0
|
||||
})
|
||||
const lastScanDate = ref(null)
|
||||
const scanProgress = ref({
|
||||
current: 0,
|
||||
total: 0,
|
||||
currentIP: null
|
||||
})
|
||||
const isScanning = ref(false)
|
||||
const uiConfig = ref({
|
||||
cell_size: 30
|
||||
})
|
||||
|
||||
// Filtres
|
||||
const filters = ref({
|
||||
@@ -51,6 +61,36 @@ export const useIPStore = defineStore('ip', () => {
|
||||
})
|
||||
|
||||
// Actions
|
||||
async function fetchUIConfig() {
|
||||
try {
|
||||
const response = await axios.get('/api/config/ui')
|
||||
uiConfig.value = response.data
|
||||
// Appliquer la taille des cellules, de la police et de l'espacement via variables CSS
|
||||
document.documentElement.style.setProperty('--cell-size', `${response.data.cell_size}px`)
|
||||
document.documentElement.style.setProperty('--font-size', `${response.data.font_size}px`)
|
||||
document.documentElement.style.setProperty('--cell-gap', `${response.data.cell_gap}px`)
|
||||
} catch (err) {
|
||||
console.error('Erreur chargement config UI:', err)
|
||||
}
|
||||
}
|
||||
|
||||
async function reloadConfig() {
|
||||
try {
|
||||
const response = await axios.post('/api/config/reload')
|
||||
if (response.data.success) {
|
||||
// Appliquer la nouvelle config UI
|
||||
uiConfig.value = response.data.ui
|
||||
document.documentElement.style.setProperty('--cell-size', `${response.data.ui.cell_size}px`)
|
||||
document.documentElement.style.setProperty('--font-size', `${response.data.ui.font_size}px`)
|
||||
document.documentElement.style.setProperty('--cell-gap', `${response.data.ui.cell_gap}px`)
|
||||
return response.data.message
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Erreur rechargement config:', err)
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
async function fetchIPs() {
|
||||
loading.value = true
|
||||
error.value = null
|
||||
@@ -97,6 +137,27 @@ export const useIPStore = defineStore('ip', () => {
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteIP(ipAddress) {
|
||||
try {
|
||||
await axios.delete(`/api/ips/${ipAddress}`)
|
||||
|
||||
// Retirer du store
|
||||
const index = ips.value.findIndex(ip => ip.ip === ipAddress)
|
||||
if (index !== -1) {
|
||||
ips.value.splice(index, 1)
|
||||
}
|
||||
|
||||
if (selectedIP.value?.ip === ipAddress) {
|
||||
selectedIP.value = null
|
||||
}
|
||||
|
||||
await fetchStats()
|
||||
} catch (err) {
|
||||
error.value = err.message
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
async function getIPHistory(ipAddress, hours = 24) {
|
||||
try {
|
||||
const response = await axios.get(`/api/ips/${ipAddress}/history?hours=${hours}`)
|
||||
@@ -172,12 +233,28 @@ export const useIPStore = defineStore('ip', () => {
|
||||
switch (message.type) {
|
||||
case 'scan_start':
|
||||
// Notification début de scan
|
||||
isScanning.value = true
|
||||
scanProgress.value = {
|
||||
current: 0,
|
||||
total: message.total || 0,
|
||||
currentIP: null
|
||||
}
|
||||
break
|
||||
|
||||
case 'scan_progress':
|
||||
// Progression du scan
|
||||
if (message.current) scanProgress.value.current = message.current
|
||||
if (message.total) scanProgress.value.total = message.total
|
||||
if (message.ip) scanProgress.value.currentIP = message.ip
|
||||
break
|
||||
|
||||
case 'scan_complete':
|
||||
// Rafraîchir les données après scan
|
||||
isScanning.value = false
|
||||
lastScanDate.value = new Date()
|
||||
scanProgress.value = { current: 0, total: 0, currentIP: null }
|
||||
fetchIPs()
|
||||
stats.value = message.stats
|
||||
if (message.stats) stats.value = message.stats
|
||||
break
|
||||
|
||||
case 'ip_update':
|
||||
@@ -212,14 +289,21 @@ export const useIPStore = defineStore('ip', () => {
|
||||
stats,
|
||||
filters,
|
||||
wsConnected,
|
||||
lastScanDate,
|
||||
scanProgress,
|
||||
isScanning,
|
||||
uiConfig,
|
||||
|
||||
// Computed
|
||||
filteredIPs,
|
||||
|
||||
// Actions
|
||||
fetchUIConfig,
|
||||
reloadConfig,
|
||||
fetchIPs,
|
||||
fetchStats,
|
||||
updateIP,
|
||||
deleteIP,
|
||||
getIPHistory,
|
||||
startScan,
|
||||
selectIP,
|
||||
|
||||
Reference in New Issue
Block a user