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 %}