mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-05-03 13:48:49 +00:00
2 / log domains front
This commit is contained in:
parent
e386ef6232
commit
a300e131f3
12 changed files with 100 additions and 0 deletions
|
@ -125,6 +125,7 @@
|
||||||
<a-card hoverable>
|
<a-card hoverable>
|
||||||
<b>{{ i18n "menu.link" }}:</b>
|
<b>{{ i18n "menu.link" }}:</b>
|
||||||
<a-tag color="purple" style="cursor: pointer;" @click="openLogs()">{{ i18n "pages.index.logs" }}</a-tag>
|
<a-tag color="purple" style="cursor: pointer;" @click="openLogs()">{{ i18n "pages.index.logs" }}</a-tag>
|
||||||
|
<a-tag color="purple" style="cursor: pointer;" @click="openLogDomains()">{{ i18n "pages.index.logDomains" }}</a-tag>
|
||||||
<a-tag color="purple" style="cursor: pointer;" @click="openConfig">{{ i18n "pages.index.config" }}</a-tag>
|
<a-tag color="purple" style="cursor: pointer;" @click="openConfig">{{ i18n "pages.index.config" }}</a-tag>
|
||||||
<a-tag color="purple" style="cursor: pointer;" @click="openBackup">{{ i18n "pages.index.backup" }}</a-tag>
|
<a-tag color="purple" style="cursor: pointer;" @click="openBackup">{{ i18n "pages.index.backup" }}</a-tag>
|
||||||
</a-card>
|
</a-card>
|
||||||
|
@ -314,6 +315,43 @@
|
||||||
</a-form>
|
</a-form>
|
||||||
<div class="ant-input" style="height: auto; max-height: 500px; overflow: auto; margin-top: 0.5rem;" v-html="logModal.formattedLogs"></div>
|
<div class="ant-input" style="height: auto; max-height: 500px; overflow: auto; margin-top: 0.5rem;" v-html="logModal.formattedLogs"></div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<a-modal id="log-domains-modal" v-model="logDomainsModal.visible"
|
||||||
|
:closable="true" @cancel="() => logDomainsModal.visible = false"
|
||||||
|
:class="themeSwitcher.currentTheme"
|
||||||
|
width="800px" footer="">
|
||||||
|
<template slot="title">
|
||||||
|
{{ i18n "pages.index.logDomains" }}
|
||||||
|
<a-icon :spin="logDomainsModal.loading"
|
||||||
|
type="sync"
|
||||||
|
style="vertical-align: middle; margin-left: 10px;"
|
||||||
|
:disabled="logDomainsModal.loading"
|
||||||
|
@click="openLogDomains()">
|
||||||
|
</a-icon>
|
||||||
|
</template>
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-form-item style="margin-right: 0.5rem;">
|
||||||
|
<a-input-group compact>
|
||||||
|
<a-select size="small" v-model="logDomainsModal.rows" style="width:70px;"
|
||||||
|
@change="openLogDomains()" :dropdown-class-name="themeSwitcher.currentTheme">
|
||||||
|
<a-select-option value="500">Few</a-select-option>
|
||||||
|
<a-select-option value="2500">Medium</a-select-option>
|
||||||
|
<a-select-option value="7000">Many</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
<a-select size="small" v-model="logDomainsModal.type" style="width:95px;"
|
||||||
|
@change="openLogDomains()" :dropdown-class-name="themeSwitcher.currentTheme">
|
||||||
|
<a-select-option value="sniffed">Sniffed</a-select-option>
|
||||||
|
<a-select-option value="blocked">Blocked</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-input-group>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item style="float: right;">
|
||||||
|
<a-button type="primary" icon="download"
|
||||||
|
:href="'data:application/text;charset=utf-8,' + encodeURIComponent(logDomainsModal.logs?.join('\n'))" download="x-ui-domains.log">
|
||||||
|
</a-button>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
<div class="ant-input" style="height: auto; max-height: 500px; overflow: auto; margin-top: 0.5rem;" v-html="logDomainsModal.formattedLogs"></div>
|
||||||
|
</a-modal>
|
||||||
<a-modal id="backup-modal" v-model="backupModal.visible" :title="backupModal.title"
|
<a-modal id="backup-modal" v-model="backupModal.visible" :title="backupModal.title"
|
||||||
:closable="true" footer=""
|
:closable="true" footer=""
|
||||||
:class="themeSwitcher.currentTheme">
|
:class="themeSwitcher.currentTheme">
|
||||||
|
@ -490,6 +528,47 @@
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const logDomainsModal = {
|
||||||
|
visible: false,
|
||||||
|
logs: [],
|
||||||
|
rows: 500,
|
||||||
|
type: 'sniffed',
|
||||||
|
loading: false,
|
||||||
|
show(logs) {
|
||||||
|
this.visible = true;
|
||||||
|
this.logs = logs;
|
||||||
|
this.formattedLogs = this.logs?.length > 0 ? this.formatLogs(this.logs, this.type) : "No Record...";
|
||||||
|
},
|
||||||
|
formatLogs(logs, type) {
|
||||||
|
let formattedLogs = '';
|
||||||
|
|
||||||
|
logs.forEach((log, index) => {
|
||||||
|
let [data, message] = log.split(" - ",2);
|
||||||
|
const parts = data.split(" ");
|
||||||
|
if(index>0) formattedLogs += '<br>';
|
||||||
|
|
||||||
|
if (parts.length === 2) {
|
||||||
|
const d = parts[0];
|
||||||
|
const t = parts[1];
|
||||||
|
formattedLogs += `<span style="color: gray;">${d} ${t}</span>`;
|
||||||
|
} else {
|
||||||
|
formattedLogs += `<span style="color: gray;">${data}</span>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (message) {
|
||||||
|
message = "<b>"+(type === 'sniffed' ? 'Sniffed' : 'Blocked')+": </b>" + message;
|
||||||
|
}
|
||||||
|
|
||||||
|
formattedLogs += message ? ' - ' + message : '';
|
||||||
|
});
|
||||||
|
|
||||||
|
return formattedLogs;
|
||||||
|
},
|
||||||
|
hide() {
|
||||||
|
this.visible = false;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
const backupModal = {
|
const backupModal = {
|
||||||
visible: false,
|
visible: false,
|
||||||
title: '',
|
title: '',
|
||||||
|
@ -595,6 +674,16 @@
|
||||||
await PromiseUtil.sleep(500);
|
await PromiseUtil.sleep(500);
|
||||||
logModal.loading = false;
|
logModal.loading = false;
|
||||||
},
|
},
|
||||||
|
async openLogDomains(){
|
||||||
|
logDomainsModal.loading = true;
|
||||||
|
const msg = await HttpUtil.get('server/logs-'.+(logDomainsModal.type==='blocked'?'blocked':'sniffed')+.'/'+logDomainsModal.rows);
|
||||||
|
if (!msg.success) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
logDomainsModal.show(msg.obj);
|
||||||
|
await PromiseUtil.sleep(500);
|
||||||
|
logDomainsModal.loading = false;
|
||||||
|
},
|
||||||
async openConfig() {
|
async openConfig() {
|
||||||
this.loading(true);
|
this.loading(true);
|
||||||
const msg = await HttpUtil.post('server/getConfigJson');
|
const msg = await HttpUtil.post('server/getConfigJson');
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "Are you sure you want to change the Xray version to"
|
"xraySwitchVersionDialogDesc" = "Are you sure you want to change the Xray version to"
|
||||||
"dontRefresh" = "Installation is in progress, please do not refresh this page"
|
"dontRefresh" = "Installation is in progress, please do not refresh this page"
|
||||||
"logs" = "Logs"
|
"logs" = "Logs"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "Config"
|
"config" = "Config"
|
||||||
"backup" = "Backup & Restore"
|
"backup" = "Backup & Restore"
|
||||||
"backupTitle" = "Database Backup & Restore"
|
"backupTitle" = "Database Backup & Restore"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "¿Estás seguro de que deseas cambiar la versión de Xray a"
|
"xraySwitchVersionDialogDesc" = "¿Estás seguro de que deseas cambiar la versión de Xray a"
|
||||||
"dontRefresh" = "La instalación está en progreso, por favor no actualices esta página."
|
"dontRefresh" = "La instalación está en progreso, por favor no actualices esta página."
|
||||||
"logs" = "Registros"
|
"logs" = "Registros"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "Configuración"
|
"config" = "Configuración"
|
||||||
"backup" = "Copia de Seguridad y Restauración"
|
"backup" = "Copia de Seguridad y Restauración"
|
||||||
"backupTitle" = "Copia de Seguridad y Restauración de la Base de Datos"
|
"backupTitle" = "Copia de Seguridad y Restauración de la Base de Datos"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "آیا از تغییر نسخه مطمئن هستید؟"
|
"xraySwitchVersionDialogDesc" = "آیا از تغییر نسخه مطمئن هستید؟"
|
||||||
"dontRefresh" = "در حال نصب، لطفا صفحه را رفرش نکنید"
|
"dontRefresh" = "در حال نصب، لطفا صفحه را رفرش نکنید"
|
||||||
"logs" = "گزارشها"
|
"logs" = "گزارشها"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "پیکربندی"
|
"config" = "پیکربندی"
|
||||||
"backup" = "پشتیبانگیری"
|
"backup" = "پشتیبانگیری"
|
||||||
"backupTitle" = "پشتیبانگیری دیتابیس"
|
"backupTitle" = "پشتیبانگیری دیتابیس"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "Apakah Anda yakin ingin mengubah versi Xray menjadi"
|
"xraySwitchVersionDialogDesc" = "Apakah Anda yakin ingin mengubah versi Xray menjadi"
|
||||||
"dontRefresh" = "Instalasi sedang berlangsung, harap jangan menyegarkan halaman ini"
|
"dontRefresh" = "Instalasi sedang berlangsung, harap jangan menyegarkan halaman ini"
|
||||||
"logs" = "Log"
|
"logs" = "Log"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "Konfigurasi"
|
"config" = "Konfigurasi"
|
||||||
"backup" = "Cadangan & Pulihkan"
|
"backup" = "Cadangan & Pulihkan"
|
||||||
"backupTitle" = "Cadangan & Pulihkan Database"
|
"backupTitle" = "Cadangan & Pulihkan Database"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "Tem certeza de que deseja alterar a versão do Xray para"
|
"xraySwitchVersionDialogDesc" = "Tem certeza de que deseja alterar a versão do Xray para"
|
||||||
"dontRefresh" = "Instalação em andamento, por favor não atualize a página"
|
"dontRefresh" = "Instalação em andamento, por favor não atualize a página"
|
||||||
"logs" = "Logs"
|
"logs" = "Logs"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "Configuração"
|
"config" = "Configuração"
|
||||||
"backup" = "Backup e Restauração"
|
"backup" = "Backup e Restauração"
|
||||||
"backupTitle" = "Backup e Restauração do Banco de Dados"
|
"backupTitle" = "Backup e Restauração do Banco de Dados"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "Вы точно хотите сменить версию Xray?"
|
"xraySwitchVersionDialogDesc" = "Вы точно хотите сменить версию Xray?"
|
||||||
"dontRefresh" = "Идёт установка. Пожалуйста, не обновляйте эту страницу"
|
"dontRefresh" = "Идёт установка. Пожалуйста, не обновляйте эту страницу"
|
||||||
"logs" = "Логи"
|
"logs" = "Логи"
|
||||||
|
"logDomains" = "Логи доменов"
|
||||||
"config" = "Конфигурация"
|
"config" = "Конфигурация"
|
||||||
"backup" = "Бэкап и восстановление"
|
"backup" = "Бэкап и восстановление"
|
||||||
"backupTitle" = "База данных бэкапа и восстановления"
|
"backupTitle" = "База данных бэкапа и восстановления"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "Xray sürümünü değiştirmek istediğinizden emin misiniz"
|
"xraySwitchVersionDialogDesc" = "Xray sürümünü değiştirmek istediğinizden emin misiniz"
|
||||||
"dontRefresh" = "Kurulum devam ediyor, lütfen bu sayfayı yenilemeyin"
|
"dontRefresh" = "Kurulum devam ediyor, lütfen bu sayfayı yenilemeyin"
|
||||||
"logs" = "Günlükler"
|
"logs" = "Günlükler"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "Yapılandırma"
|
"config" = "Yapılandırma"
|
||||||
"backup" = "Yedekle & Geri Yükle"
|
"backup" = "Yedekle & Geri Yükle"
|
||||||
"backupTitle" = "Veritabanı Yedekleme & Geri Yükleme"
|
"backupTitle" = "Veritabanı Yedekleme & Geri Yükleme"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "Ви впевнені, що бажаєте змінити версію Xray на"
|
"xraySwitchVersionDialogDesc" = "Ви впевнені, що бажаєте змінити версію Xray на"
|
||||||
"dontRefresh" = "Інсталяція триває, будь ласка, не оновлюйте цю сторінку"
|
"dontRefresh" = "Інсталяція триває, будь ласка, не оновлюйте цю сторінку"
|
||||||
"logs" = "Журнали"
|
"logs" = "Журнали"
|
||||||
|
"logDomains" = "Логи доменов"
|
||||||
"config" = "Конфігурація"
|
"config" = "Конфігурація"
|
||||||
"backup" = "Резервне копіювання та відновлення"
|
"backup" = "Резервне копіювання та відновлення"
|
||||||
"backupTitle" = "Резервне копіювання та відновлення бази даних"
|
"backupTitle" = "Резервне копіювання та відновлення бази даних"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "Bạn có chắc chắn muốn chuyển đổi phiên bản Xray sang"
|
"xraySwitchVersionDialogDesc" = "Bạn có chắc chắn muốn chuyển đổi phiên bản Xray sang"
|
||||||
"dontRefresh" = "Đang tiến hành cài đặt, vui lòng không làm mới trang này."
|
"dontRefresh" = "Đang tiến hành cài đặt, vui lòng không làm mới trang này."
|
||||||
"logs" = "Nhật ký"
|
"logs" = "Nhật ký"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "Cấu hình"
|
"config" = "Cấu hình"
|
||||||
"backup" = "Sao lưu & Khôi phục"
|
"backup" = "Sao lưu & Khôi phục"
|
||||||
"backupTitle" = "Sao lưu & Khôi phục Cơ sở dữ liệu"
|
"backupTitle" = "Sao lưu & Khôi phục Cơ sở dữ liệu"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "是否切换 Xray 版本至"
|
"xraySwitchVersionDialogDesc" = "是否切换 Xray 版本至"
|
||||||
"dontRefresh" = "安装中,请勿刷新此页面"
|
"dontRefresh" = "安装中,请勿刷新此页面"
|
||||||
"logs" = "日志"
|
"logs" = "日志"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "配置"
|
"config" = "配置"
|
||||||
"backup" = "备份和恢复"
|
"backup" = "备份和恢复"
|
||||||
"backupTitle" = "备份和恢复数据库"
|
"backupTitle" = "备份和恢复数据库"
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"xraySwitchVersionDialogDesc" = "是否切換 Xray 版本至"
|
"xraySwitchVersionDialogDesc" = "是否切換 Xray 版本至"
|
||||||
"dontRefresh" = "安裝中,請勿重新整理此頁面"
|
"dontRefresh" = "安裝中,請勿重新整理此頁面"
|
||||||
"logs" = "日誌"
|
"logs" = "日誌"
|
||||||
|
"logDomains" = "Log Domains"
|
||||||
"config" = "配置"
|
"config" = "配置"
|
||||||
"backup" = "備份和恢復"
|
"backup" = "備份和恢復"
|
||||||
"backupTitle" = "備份和恢復資料庫"
|
"backupTitle" = "備份和恢復資料庫"
|
||||||
|
|
Loading…
Reference in a new issue