mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-29 15:39:33 +00:00
119 lines
3.4 KiB
Vue
119 lines
3.4 KiB
Vue
<!-- (C) 2022 - ntop.org -->
|
|
<template>
|
|
<modal @showed="showed()" ref="modal_id">
|
|
<template v-slot:title>
|
|
<template v-if="edit_all == false">
|
|
{{ title }}
|
|
</template>
|
|
<template v-else>
|
|
{{ title_edit_all }}
|
|
</template>
|
|
|
|
</template>
|
|
<template v-slot:body>
|
|
<template v-if="edit_all == false">
|
|
|
|
<div class="form-group mb-3 row">
|
|
<label class="col-form-label col-sm-4">{{ _i18n('edit_check.device_alias') }}</label>
|
|
<div class="col-sm-7">
|
|
<input type="text" name="custom_name" class="form-control" :placeholder="custom_name_placeholder"
|
|
v-model="input_mac_address_name">
|
|
</div>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<div class="form-group mb-3 row">
|
|
<label class="col-form-label col-sm-4">{{ _i18n('edit_check.device_status') }}</label>
|
|
<div class="col-sm-7">
|
|
|
|
<SelectSearch v-model:selected_option="input_device_status" :options="device_status_list">
|
|
</SelectSearch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group mb-3 row">
|
|
<label class="col-form-label col-sm-4 pt-2">{{ _i18n('edit_check.trigger_device_disconnected_alert') }}</label>
|
|
<div class="form-switch col-sm-7 pt-2 ps-3">
|
|
<input type="checkbox" class="form-check-input ms-0" v-model="input_trigger_alerts">
|
|
</div>
|
|
<small class="col-form-label">{{ _i18n('edit_check.trigger_device_disconnected_alert_descr') }}</small>
|
|
</div>
|
|
</template>
|
|
<template v-slot:footer>
|
|
<button type="button" @click="edit_" class="btn btn-primary">{{ _i18n('edit') }}</button>
|
|
</template>
|
|
</modal>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref, onMounted, computed, watch } from "vue";
|
|
import { default as modal } from "./modal.vue";
|
|
import { default as SelectSearch } from "./select-search.vue";
|
|
|
|
|
|
const input_mac_address_name = ref("");
|
|
const input_device_status = ref("");
|
|
const input_trigger_alerts = ref("");
|
|
|
|
const custom_name_placeholder = ref(i18n('if_stats_config.custom_name'));
|
|
const modal_id = ref(null);
|
|
const emit = defineEmits(['edit']);
|
|
|
|
const showed = () => { };
|
|
|
|
const props = defineProps({
|
|
title: String,
|
|
title_edit_all: String,
|
|
});
|
|
|
|
|
|
const _i18n = (t) => i18n(t);
|
|
const device_status_list = ref([
|
|
{ id: "allowed", value: "allowed", label: _i18n('edit_check.authorized') },
|
|
{ id: "denied", value: "denied", label: _i18n('edit_check.unauthorized') },
|
|
])
|
|
|
|
const edit_all = ref(false);
|
|
|
|
const show = (row) => {
|
|
if (row != null) {
|
|
let tmp_device_status = null;
|
|
device_status_list.value.forEach((item) => {
|
|
if (item.id == row.status) {
|
|
tmp_device_status = item;
|
|
}
|
|
});
|
|
input_device_status.value = tmp_device_status;
|
|
input_mac_address_name.value = row.mac_address.mac;
|
|
input_trigger_alerts.value = row.trigger_alert || false;
|
|
edit_all.value = false;
|
|
} else {
|
|
input_device_status.value = device_status_list.value[0];
|
|
edit_all.value = true;
|
|
}
|
|
|
|
modal_id.value.show();
|
|
};
|
|
|
|
const edit_ = () => {
|
|
if (edit_all.value == false)
|
|
emit('edit', { mac_alias: input_mac_address_name.value, mac_status: input_device_status.value.value, trigger_alerts: input_trigger_alerts.value });
|
|
else
|
|
emit('edit', { mac_status: input_device_status.value.value, trigger_alerts: input_trigger_alerts.value, mac_alias: 'all', });
|
|
|
|
close();
|
|
};
|
|
|
|
const close = () => {
|
|
modal_id.value.close();
|
|
};
|
|
|
|
|
|
defineExpose({ show, close });
|
|
|
|
onMounted(() => {
|
|
});
|
|
|
|
</script>
|
|
|
|
<style scoped></style>
|