diff --git a/static/fields.css b/static/fields.css index 29c2837..8acfe63 100644 --- a/static/fields.css +++ b/static/fields.css @@ -136,6 +136,21 @@ summary .dangerous-button, summary .action-button { background: var(--brand-bg); } +.submit-spinner { + display: inline-block; + width: 1em; + height: 1em; + border: 3px solid #f3f3f3; /* Цвет границы */ + border-radius: 50%; /* Делаем круг */ + border-top-color: #3498db; /* Цвет верхней границы */ + animation: spin 0.8s linear infinite; /* Анимация вращения */ +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + /*********************** Стили для красивых 'switch' ***********************/ .toggle-input { diff --git a/static/main.html b/static/main.html index 87a2985..9a16a11 100644 --- a/static/main.html +++ b/static/main.html @@ -73,7 +73,7 @@ DUMMY{{ stat_rx.packetsDummy }} - +

Статистика передачи

@@ -327,7 +327,7 @@
- +

Настройки режима CinC

@@ -363,7 +363,7 @@
- +

Настройки питания и опорного генератора

@@ -422,7 +422,7 @@
- +

Настройки QoS

@@ -489,7 +489,7 @@
- +

Эти настройки пока недоступны, но скоро разработчик это поправит. А пока купи разработчику банку пива колы) @@ -618,6 +618,14 @@ data: { isCinC: null, + // false - означает что статистика не отправляется, true - отправляется + submitStatus: { + rxTx: false, + cinc: false, + bucLnb: false, + qos: false, + }, + stat_rx: { // индикаторы state: '?', // общее состояние @@ -735,7 +743,7 @@ qos: { en: false, - rt1: [{cir: 100, description: 'test class'}, {cir: 200, description: 'fuck class'}], + rt1: [], rt2: [], rt3: [], cd: [], @@ -821,6 +829,47 @@ }) }, + settingsSubmitRxTx() { + this.submitStatus.rxTx = true + }, + + settingsSubmitCinC() { + this.submitStatus.cinc = true + }, + + settingsSubmitBucLnb() { + this.submitStatus.bucLnb = true + // TODO сделать всплывающее окно с подтверждением того, что настройки действительно нужно применить + let query = { + "buc.refClk10M": this.param.buc.refClk10M, + "buc.powering": this.param.buc.powering, + "lnb.refClk10M": this.param.lnb.refClk10M, + "lnb.powering": this.param.lnb.powering, + "serviceSettings.refClk10M": this.param.serviceSettings.refClk10M, + "serviceSettings.autoStart": this.param.serviceSettings.autoStart + } + fetch('/api/applyBucLnbSettings', { + method: 'POST', + body: JSON.stringify(query) + }).then(() => { + this.submitStatus.bucLnb = false + this.performUpdateSettings() + }) + }, + + settingsSubmitQoS() { + this.submitStatus.qos = true + }, + + performUpdateSettings() { + const doFetchSettings = async () => { + let d = await fetch("/api/get/settings") + this.updateSettings(await d.json()) + } + + doFetchSettings().then(() => {}) + }, + updateSettings(vals) { this.settingFetchComplete = true @@ -984,12 +1033,7 @@ doFetchStatistics().then(() => {}) - const doFetchSettings = async () => { - let d = await fetch("/api/get/settings") - this.updateSettings(await d.json()) - } - - doFetchSettings().then(() => {}) + this.performUpdateSettings() document.getElementById("app").removeAttribute("hidden") }