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 @@
Эти настройки пока недоступны, но скоро разработчик это поправит. А пока купи разработчику банку пива колы)
@@ -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")
}