87 lines
5.4 KiB
Django/Jinja
87 lines
5.4 KiB
Django/Jinja
{% raw %}
|
|
<div class="tabs-body-item" v-if="activeTab === 'admin' && settingFetchComplete">
|
|
<h2>Настройки сети</h2>
|
|
<div class="settings-set-container">
|
|
<h3>Интерфейс управления</h3>
|
|
<label>
|
|
<span>IP адрес/маска</span>
|
|
<input v-model="param.network.managementIp" required type="text" pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$">
|
|
</label>
|
|
<label>
|
|
<span>Шлюз интерфейса управления</span>
|
|
<input v-model="param.network.managementGateway" type="text" pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$">
|
|
</label>
|
|
<label>
|
|
<span>Режим модема</span>
|
|
<select v-model="param.network.mode">
|
|
<option value="l2">Коммутатор</option>
|
|
<option value="l3">Маршрутизатор</option>
|
|
</select>
|
|
</label>
|
|
<h3>Интерфейс данных</h3>
|
|
<label v-if="param.network.mode === 'l3'">
|
|
<span>IP адрес/маска</span>
|
|
<input v-model="param.network.dataIp" required type="text" pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$">
|
|
</label>
|
|
<label>
|
|
<span>MTU</span>
|
|
<input v-model="param.network.dataMtu" required type="number" min="1500" max="9000">
|
|
</label>
|
|
<button class="action-button" @click="settingsSubmitNetwork()">Применить <span class="submit-spinner" v-show="submitStatus.network"></span></button>
|
|
</div>
|
|
<div class="settings-set-container">
|
|
<h3>Отладка</h3>
|
|
<label>
|
|
<span>Передача отладочной информации</span>
|
|
<span class="toggle-input">
|
|
<input type="checkbox" v-model="param.debugSend.en" />
|
|
<span class="slider"></span>
|
|
</span>
|
|
</label>
|
|
<label v-if="param.debugSend.en">
|
|
<span>IP адрес получателя</span>
|
|
<input v-model="param.debugSend.receiverIp" required type="text" pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}">
|
|
</label>
|
|
<label>
|
|
<span>Порт для данных</span>
|
|
<input v-model="param.debugSend.portCinC" type="number" min="0" max="65535">
|
|
</label>
|
|
<label>
|
|
<span>Порт для CinC</span>
|
|
<input v-model="param.debugSend.portData" type="number" min="0" max="65535">
|
|
</label>
|
|
<label>
|
|
<span>Таймаут</span>
|
|
<input v-model="param.debugSend.timeout" type="number" pattern="^[0-9]+$">
|
|
</label>
|
|
<button class="action-button" @click="settingsSubmitDebugSend()">Применить <span class="submit-spinner" v-show="submitStatus.network"></span></button>
|
|
</div>
|
|
<div class="settings-set-container">
|
|
<h3>Управление ПО</h3>
|
|
<table>
|
|
<tbody>
|
|
<tr><th>Версия ПО</th><td>{{ about.firmwareVersion }}</td></tr>
|
|
<tr><th>ID модема</th><td>{{ about.modemUid }}</td></tr>
|
|
<tr><th>Серийный номер</th><td>{{ about.modemSn }}</td></tr>
|
|
<tr><th>MAC интерфейса управления</th><td>{{ about.macManagement }}</td></tr>
|
|
<tr><th>MAC интерфейса управления</th><td>{{ about.macData }}</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div>
|
|
<button class="dangerous-button" @click="doModemReboot()">Перезагрузить модем <span class="submit-spinner" v-show="submitStatus.modemReboot !== null"></span></button>
|
|
</div>
|
|
<div>
|
|
<button class="dangerous-button" onclick="fetch('/api/resetSettings', { method: 'POST' }).then((r) => { window.location.reload(); })">Сбросить модем до заводских настроек</button>
|
|
</div>
|
|
|
|
<h3>Обновление ПО</h3>
|
|
<label>
|
|
<span>Файл {{ this.uploadFw.progress !== null ? `(${this.uploadFw.progress}%)` : '' }}</span>
|
|
<input type="file" accept="application/zip" @change="(e) => { this.uploadFw.filename = e.target.files[0] }">
|
|
<span v-if="uploadFw.sha256 !== null">SHA256: {{ uploadFw.sha256 }}</span>
|
|
</label>
|
|
<button class="action-button" @click="settingsUploadUpdate()">Загрузить<span class="submit-spinner" v-show="submitStatus.firmwareUpload"></span></button>
|
|
<button class="dangerous-button" v-show="uploadFw.sha256 !== null" @click="settingsPerformFirmwareUpgrade()">Обновить встроенное ПО <span class="submit-spinner" v-show="submitStatus.firmwareUpgrade"></span></button>
|
|
</div>
|
|
</div>
|
|
{% endraw %} |