save config to yaml file

This commit is contained in:
jb-alvarado 2020-04-10 14:52:00 +02:00
parent d4a2ad1d4f
commit 92a2a4f38c
3 changed files with 26 additions and 20 deletions

View File

@ -2,12 +2,25 @@ import os
from platform import uname from platform import uname
from time import sleep from time import sleep
from django.conf import settings
import psutil import psutil
import yaml
from django.conf import settings
from natsort import natsorted from natsort import natsorted
def read_yaml():
if os.path.isfile(settings.FFPLAYOUT_CONFIG):
with open(settings.FFPLAYOUT_CONFIG, 'r') as config_file:
return yaml.safe_load(config_file)
def write_yaml(data):
if os.path.isfile(settings.FFPLAYOUT_CONFIG):
with open(settings.FFPLAYOUT_CONFIG, 'w') as outfile:
yaml.dump(data, outfile, default_flow_style=False, sort_keys=False)
def sizeof_fmt(num, suffix='B'): def sizeof_fmt(num, suffix='B'):
for unit in ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi']: for unit in ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi']:
if abs(num) < 1024.0: if abs(num) < 1024.0:

View File

@ -1,17 +1,7 @@
import os
import yaml
from django.conf import settings
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.views import APIView from rest_framework.views import APIView
from .utils import SystemStats, get_media_path from .utils import read_yaml, write_yaml, SystemStats, get_media_path
def read_config(path):
with open(path, 'r') as config_file:
return yaml.safe_load(config_file)
class Config(APIView): class Config(APIView):
@ -22,9 +12,10 @@ class Config(APIView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
if 'config' in request.GET.dict(): if 'config' in request.GET.dict():
if os.path.isfile(settings.FFPLAYOUT_CONFIG): yaml_input = read_yaml()
yaml = read_config(settings.FFPLAYOUT_CONFIG)
return Response(yaml) if yaml_input:
return Response(yaml_input)
else: else:
return Response({ return Response({
"success": False, "success": False,
@ -34,8 +25,8 @@ class Config(APIView):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
if 'data' in request.data: if 'data' in request.data:
# TODO: do save data to config write_yaml(request.data['data'])
print(request.data['data']) return Response({"success": True})
return Response({"success": False}) return Response({"success": False})

View File

@ -44,7 +44,8 @@
v-else-if="Array.isArray(prop)" v-else-if="Array.isArray(prop)"
v-model="config[key][name]" v-model="config[key][name]"
input-id="tags-basic" input-id="tags-basic"
placeholder="add item..." separator=" ,;"
:placeholder="`add ${name}...`"
class="mb-2" class="mb-2"
/> />
<b-form-input v-else :id="name" v-model="config[key][name]" :value="prop" /> <b-form-input v-else :id="name" v-model="config[key][name]" :value="prop" />
@ -80,8 +81,9 @@ export default {
}, },
methods: { methods: {
onSubmit (evt) { async onSubmit (evt) {
evt.preventDefault() evt.preventDefault()
await this.$store.dispatch('auth/inspectToken')
this.$store.dispatch('config/setConfig', this.config) this.$store.dispatch('config/setConfig', this.config)
} }
} }