front_generator: нормальные отступы для всех включаемых файлов, добавление страницы с логами для TDMA-терминала
This commit is contained in:
@@ -52,7 +52,6 @@
|
||||
</div>
|
||||
</header>
|
||||
<div id="content">
|
||||
|
||||
<div class="tabs-body-item tabs-item-flex-container" v-if="activeTab === 'monitoring'">
|
||||
<div class="settings-set-container statistics-container">
|
||||
<h2>Статистика приема</h2>
|
||||
@@ -387,7 +386,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<button class="action-button" @click="settingsSubmitBuclnb()">Сохранить <span class="submit-spinner" v-show="submitStatus.buclnb"></span></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabs-body-item" v-if="activeTab === 'qos' && settingFetchComplete">
|
||||
<h2>Настройки QoS</h2>
|
||||
<div class="settings-set-container">
|
||||
@@ -454,7 +453,7 @@
|
||||
<label class="l3-proto-label"><span>DCCP:</span><input type="checkbox" value="dccp" v-model="filter.proto"></label>
|
||||
<label class="l3-proto-label"><span>ESP:</span><input type="checkbox" value="esp" v-model="filter.proto"></label>
|
||||
<label class="l3-proto-label"><span>ICMP:</span><input type="checkbox" value="icmp" v-model="filter.proto"></label>
|
||||
<!-- <label class="l3-proto-label"><span>ICMPV6:</span><input type="checkbox" value="icmpv6" v-model="filter.proto"></label>-->
|
||||
<!-- <label class="l3-proto-label"><span>ICMPV6:</span><input type="checkbox" value="icmpv6" v-model="filter.proto"></label>-->
|
||||
<label class="l3-proto-label"><span>SCTP:</span><input type="checkbox" value="sctp" v-model="filter.proto"></label>
|
||||
<label class="l3-proto-label"><span>TCP:</span><input type="checkbox" value="tcp" v-model="filter.proto"></label>
|
||||
<label class="l3-proto-label"><span>UDP:</span><input type="checkbox" value="udp" v-model="filter.proto"></label>
|
||||
@@ -549,6 +548,7 @@
|
||||
<button class="dangerous-button" v-show="uploadFw.sha256 !== null" @click="settingsPerformFirmwareUpgrade()">Обновить встроенное ПО<span class="submit-spinner" v-show="submitStatus.firmwareUpgrade"></span></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Последнее обновление статистики: {{ lastUpdateTime }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -710,7 +710,8 @@
|
||||
rt2: [],
|
||||
rt3: [],
|
||||
cd: [],
|
||||
}, // ========== include end from 'common/qos-data.js.j2'
|
||||
},
|
||||
// ========== include end from 'common/qos-data.js.j2'
|
||||
|
||||
// ========== include from 'common/admin-data.js.j2'
|
||||
// ========== include end from 'common/admin-data.js.j2'
|
||||
@@ -1492,7 +1493,8 @@
|
||||
downloadAsFile(JSON.stringify(jres["settings"], null, 4), "backup-" + this.about.firmwareVersion + "-" + this.about.modemSn + ".json")
|
||||
}
|
||||
}
|
||||
}, // ========== include end from 'common/admin-methods.js.j2'
|
||||
},
|
||||
// ========== include end from 'common/admin-methods.js.j2'
|
||||
|
||||
|
||||
performUpdateSettings() {
|
||||
|
@@ -51,7 +51,6 @@
|
||||
</div>
|
||||
</header>
|
||||
<div id="content">
|
||||
|
||||
<div class="tabs-body-item tabs-item-flex-container" v-if="activeTab === 'monitoring'">
|
||||
<div class="settings-set-container statistics-container">
|
||||
<h2>Статистика приема</h2>
|
||||
@@ -310,6 +309,7 @@
|
||||
<button class="dangerous-button" v-show="uploadFw.sha256 !== null" @click="settingsPerformFirmwareUpgrade()">Обновить встроенное ПО<span class="submit-spinner" v-show="submitStatus.firmwareUpgrade"></span></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Последнее обновление статистики: {{ lastUpdateTime }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -903,7 +903,8 @@
|
||||
downloadAsFile(JSON.stringify(jres["settings"], null, 4), "backup-" + this.about.firmwareVersion + "-" + this.about.modemSn + ".json")
|
||||
}
|
||||
}
|
||||
}, // ========== include end from 'common/admin-methods.js.j2'
|
||||
},
|
||||
// ========== include end from 'common/admin-methods.js.j2'
|
||||
|
||||
|
||||
performUpdateSettings() {
|
||||
|
@@ -47,11 +47,11 @@
|
||||
<a href="#monitoring" class="tabs-btn" @click="activeTab = 'monitoring'" :class="{ active: activeTab === 'monitoring' }">Мониторинг</a>
|
||||
<a href="#setup" class="tabs-btn" @click="activeTab = 'setup'" :class="{ active: activeTab === 'setup' }">Настройки</a>
|
||||
<a href="#admin" class="tabs-btn" @click="activeTab = 'admin'" :class="{ active: activeTab === 'admin' }">Администрирование</a>
|
||||
<a href="#logs" class="tabs-btn" @click="activeTab = 'logs'" :class="{ active: activeTab === 'logs' }">Журнал</a>
|
||||
<a href="/logout" class="tabs-btn">Выход</a>
|
||||
</div>
|
||||
</header>
|
||||
<div id="content">
|
||||
|
||||
<div class="tabs-body-item tabs-item-flex-container" v-if="activeTab === 'monitoring'">
|
||||
<div class="settings-set-container statistics-container">
|
||||
<h2>Статистика приема</h2>
|
||||
@@ -297,12 +297,35 @@
|
||||
<button class="dangerous-button" v-show="statDevice.upgradePercent >= 100" @click="settingsPerformFirmwareUpgradeOta()">Обновить встроенное ПО<span class="submit-spinner" v-show="submitStatus.firmwareUpgradeOta"></span></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabs-body-item" v-if="activeTab === 'logs'">
|
||||
<h2>Журнал <code>manager</code></h2>
|
||||
<div class="settings-set-container">
|
||||
<label>
|
||||
<span>Фильтрация лога (отображение)</span>
|
||||
<select v-model="paramLogs.level">
|
||||
<option :value="''">Без фильтрации</option>
|
||||
<option :value="'info'">Информация</option>
|
||||
<option :value="'warning'">Предупреждение</option>
|
||||
<option :value="'error'">Ошибка</option>
|
||||
<option :value="'fatal'">Фатальная ошибка</option>
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<button class="action-button" @click="logsUpdate()">Обновить (последние 1000 строк) <span class="submit-spinner" v-show="paramLogs.submitUpdateLogs"></span></button></button>
|
||||
<a href="/api/get/manager.log" class="action-button" download>Скачать все</a>
|
||||
<pre style="overflow-x: auto">{{ paramLogs.data }}</pre>
|
||||
<div><button class="action-button" v-if="paramLogs.data !== ''" @click="logsUpdate()">Обновить (последние 1000 строк) <span class="submit-spinner" v-show="paramLogs.submitUpdateLogs"></span></button></div>
|
||||
</div>
|
||||
<div class="settings-set-container statistics-container">
|
||||
<div><button class="dangerous-button" @click="logsClear()">Очистить логи <span class="submit-spinner" v-show="paramLogs.submitClearLogs"></span></button></div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Последнее обновление статистики: {{ lastUpdateTime }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/js/vue.js?v=3.5.13"></script>
|
||||
<script>
|
||||
const availableTabs = ['monitoring', 'setup', 'admin']
|
||||
const availableTabs = ['monitoring', 'setup', 'admin', 'logs']
|
||||
|
||||
// для обновления высоты хидера
|
||||
function updateHeaderHeight() { const header = document.querySelector('header'); document.body.style.setProperty('--header-height', `${header.offsetHeight}px`); }
|
||||
@@ -414,9 +437,7 @@
|
||||
modcod: '?', speedOnTxKbit: '?', speedOnIifKbit: '?', centerFreq: '?', symSpeed: '?'
|
||||
},
|
||||
statDevice: { // температурные датчики
|
||||
adrv: 0, zynq: 0, fpga: 0
|
||||
,
|
||||
upgradeStatus: "", upgradePercent: 0, upgradeImage: ""
|
||||
adrv: 0, zynq: 0, fpga: 0, upgradeStatus: "", upgradePercent: 0, upgradeImage: ""
|
||||
},
|
||||
statOs: {uptime: '?', load1: '?', load5: '?', load15: '?', totalram: '?', freeram: '?'},
|
||||
// ========== include end from 'common/monitoring-data.js.j2'
|
||||
@@ -427,6 +448,15 @@
|
||||
// ========== include from 'common/admin-data.js.j2'
|
||||
// ========== include end from 'common/admin-data.js.j2'
|
||||
|
||||
// ========== include from 'common/logs-data.js.j2'
|
||||
paramLogs: {
|
||||
submitClearLogs: false,
|
||||
submitUpdateLogs: false,
|
||||
data: "",
|
||||
level: ""
|
||||
},
|
||||
// ========== include end from 'common/logs-data.js.j2'
|
||||
|
||||
uploadFw: {
|
||||
progress: null,
|
||||
filename: null,
|
||||
@@ -918,7 +948,22 @@
|
||||
downloadAsFile(JSON.stringify(jres["settings"], null, 4), "backup-" + this.about.firmwareVersion + "-" + this.about.modemSn + ".json")
|
||||
}
|
||||
}
|
||||
}, // ========== include end from 'common/admin-methods.js.j2'
|
||||
},
|
||||
// ========== include end from 'common/admin-methods.js.j2'
|
||||
|
||||
// ========== include from 'common/logs-methods.js.j2'
|
||||
logsUpdate() {
|
||||
if (this.paramLogs.submitUpdateLogs) { return }
|
||||
this.paramLogs.submitUpdateLogs = true
|
||||
fetch(`/api/get/manager.log?preview=1`, {method: 'GET', credentials: 'same-origin' })
|
||||
.then(async (resp) => {
|
||||
this.paramLogs.data = await resp.text()
|
||||
})
|
||||
.catch((reason) => { this.paramLogs.data = `Ошибка при чтении логов: ${reason}` })
|
||||
.finally(() => { this.paramLogs.submitUpdateLogs = false })
|
||||
},
|
||||
|
||||
// ========== include end from 'common/logs-methods.js.j2'
|
||||
|
||||
|
||||
performUpdateSettings() {
|
||||
|
Reference in New Issue
Block a user