persist settings #2

pull/1/head
Thomas Ballmann 4 years ago
parent 798ad2b446
commit 64747c032b

@ -5,20 +5,19 @@
// eslint-disable-next-line
const _settings = {
device: {
orientation: 0,
angle: 0,
theme: "black",
},
playlist: {
interval: 60
timer: 60
},
credentials: {
api: {
owm: ""
},
cloud: {
mode: "active",
url: "http://",
token: "###",
user: ""
token: "###"
}
}
@ -34,7 +33,7 @@ export default {
* @returns {PromiseLike<any> | Promise<any>}
*/
getSettings(cb) {
return cb(_settings);
//return cb(_settings);
// eslint-disable-next-line
return axios

@ -23,6 +23,7 @@
</v-tabs>
<v-card
v-if="settings"
class="mx-auto"
width="400"
>
@ -31,7 +32,7 @@
<v-card-text>
<v-select
:items="deviceOrientation"
v-model="settings.device.orientation"
v-model="settings.device.angle"
label="i8n:Orientation"
placeholder=""
></v-select>
@ -53,7 +54,7 @@
</v-col>
<v-col cols="6" class="text-center pb-0">
<v-text-field
v-model="settings.playlist.interval"
v-model="settings.playlist.timer"
label="Switch every"
type="number"
dense
@ -80,13 +81,13 @@
<v-card-text>
<v-text-field
label="i8n:OpenWeatherMap"
v-model="settings.credentials.open_weather_map"
v-model="settings.api.owm"
placeholder="###"
></v-text-field>
<v-text-field
label="i8n:Calendar"
v-model="settings.credentials._"
v-model="settings.api.abc"
placeholder="###"
></v-text-field>
</v-card-text>
@ -111,15 +112,21 @@
v-model="settings.cloud.token"
placeholder="########-####-####-####-############"
></v-text-field>
<v-text-field
label="i8n:Cloud User"
v-model="settings.cloud_user"
placeholder="user@domain.io"
></v-text-field>
</v-card-text>
</v-tab-item>
</v-tabs-items>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn
text
color="primary"
@click="onSave()"
>
i8n:Save
</v-btn>
</v-card-actions>
</v-card>
</v-container>
</v-layout>

@ -81,11 +81,16 @@ void setupSettingsGet()
AsyncResponseStream *response = request->beginResponseStream("application/json");
DynamicJsonDocument root(1024);
root["device_mode"] = NVS.getString("device_mode");
root["device_rotation"] = 0;
root["cloud_server"] = NVS.getString("cloud_server");
root["cloud_uuid"] = NVS.getString("cloud_uuid");
root["cloud_user"] = NVS.getString("cloud_user");
root["device"]["angle"] = NVS.getInt("device.angle");
root["device"]["theme"] = NVS.getString("device.theme");
root["playlist"]["timer"] = NVS.getInt("playlist.timer");
root["api"]["owm"] = NVS.getString("api.owm");
root["cloud"]["mode"] = NVS.getString("cloud.mode");
root["cloud"]["url"] = NVS.getString("cloud.url");
root["cloud"]["token"] = NVS.getString("cloud.token");
serializeJson(root, *response);
request->send(response);
@ -95,7 +100,7 @@ void setupSettingsGet()
void setupSettingsPost()
{
server.on("/api/settings", HTTP_PUT, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) {
DynamicJsonDocument doc(1024);
DynamicJsonDocument doc(2048);
DeserializationError error = deserializeJson(doc, data);
if (error) {
@ -106,19 +111,18 @@ void setupSettingsPost()
}
else
{
if (doc.containsKey("device_mode")) {
NVS.setString("device_mode", doc["device_mode"]);
}
if (doc.containsKey("cloud_server")) {
NVS.setString("cloud_server", doc["cloud_server"]);
//Serial.println(doc["cloud_server"].as<char*>());
}
if (doc.containsKey("cloud_uuid")) {
NVS.setString("cloud_uuid", doc["cloud_uuid"]);
}
if (doc.containsKey("cloud_user")) {
NVS.setString("cloud_user", doc["cloud_user"]);
}
NVS.setInt("device.angle", doc["device"]["angle"].as<unsigned int>());
NVS.setString("device.theme", doc["device"]["theme"]);
NVS.setInt("playlist.timer", doc["playlist"]["timer"].as<unsigned int>());
NVS.setString("api.owm", doc["api"]["owm"]);
NVS.setString("cloud.mode", doc["cloud"]["mode"]);
NVS.setString("cloud.url", doc["cloud"]["url"]);
NVS.setString("cloud.token", doc["cloud"]["token"]);
NVS.commit();
request->send(200, "application/ld+json; charset=utf-8", "{}");
} });

@ -76,7 +76,7 @@ void loopCloud()
bool isCloudSetupComplete()
{
return NVS.getString("cloud_server") != "" && NVS.getString("cloud_uuid") != "";
return NVS.getString("cloud.url") != ""; // && NVS.getString("cloud_uuid") != "";
}
/**
@ -106,7 +106,7 @@ void updateInterval(unsigned long interval)
*/
void requestCloud()
{
String config_Url = NVS.getString("cloud_server");
String config_Url = NVS.getString("cloud.url");
Serial.println(config_Url);
http.begin(config_Url);

Loading…
Cancel
Save