Skip to content

Commit 8445ed7

Browse files
committed
Einrichtungsassistent_v.1
1 parent 967844d commit 8445ed7

File tree

4 files changed

+744
-629
lines changed

4 files changed

+744
-629
lines changed

src/App.vue

+1
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ export default {
165165
this.client.options.clientId,
166166
);
167167
this.doSubscribe(["openWB/system/usage_terms_acknowledged"]); // required for route guard
168+
this.doSubscribe(["openWB/system/installWizard"]);
168169
});
169170
this.client.on("error", (error) => {
170171
console.error("Connection failed", error);

src/router/index.js

+7
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,13 @@ router.beforeEach(async (to) => {
209209
return { name: "LegalSettings" };
210210
}
211211
}
212+
if (to.name !== "InstallAssistant"){
213+
const wizardDone =
214+
await store.getters.installWizard;
215+
if (!wizardDone) {
216+
return { name: "InstallAssistant" };
217+
}
218+
}
212219
});
213220

214221
router.afterEach((to) => {

src/store/index.js

+27
Original file line numberDiff line numberDiff line change
@@ -172,5 +172,32 @@ export default createStore({
172172
}
173173
});
174174
},
175+
installWizard(state) {
176+
return new Promise((resolve) => {
177+
178+
if (state.mqtt["openWB/system/installWizard"] !== undefined) {
179+
resolve(state.mqtt["openWB/system/installWizard"],
180+
);
181+
} else {
182+
var timer, interval;
183+
// add general timeout if topic not set
184+
timer = setTimeout(() => {
185+
clearInterval(interval);
186+
resolve(false);
187+
}, 5000);
188+
// check until we received valid data
189+
interval = setInterval(() => {
190+
if (
191+
state.mqtt["openWB/system/installWizard"] !==
192+
undefined
193+
) {
194+
clearTimeout(timer);
195+
clearInterval(interval);
196+
resolve(state.mqtt["openWB/system/installWizard"]);
197+
}
198+
}, 100);
199+
}
200+
});
201+
},
175202
},
176203
});

0 commit comments

Comments
 (0)