add settings button, start with the admin template

This commit is contained in:
Jakob Ketterl 2020-03-08 21:28:15 +01:00
parent 4928f80929
commit 6ab77f958c
6 changed files with 22 additions and 6 deletions

15
htdocs/admin.html Normal file
View File

@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<title>OpenWebRX Settings</title>
<link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="static/css/login.css" />
<meta charset="utf-8">
</head>
<body>
${header}
<div>
Admin-only area!
</div>
</body>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -19,6 +19,7 @@
<li data-toggle-panel="openwebrx-panel-log"><img src="static/gfx/openwebrx-panel-log.png" /><br/>Log</li> <li data-toggle-panel="openwebrx-panel-log"><img src="static/gfx/openwebrx-panel-log.png" /><br/>Log</li>
<li data-toggle-panel="openwebrx-panel-receiver"><img src="static/gfx/openwebrx-panel-receiver.png" /><br/>Receiver</li> <li data-toggle-panel="openwebrx-panel-receiver"><img src="static/gfx/openwebrx-panel-receiver.png" /><br/>Receiver</li>
<li><a href="map" target="_blank"><img src="static/gfx/openwebrx-panel-map.png" /><br/>Map</a></li> <li><a href="map" target="_blank"><img src="static/gfx/openwebrx-panel-map.png" /><br/>Map</a></li>
<li><a href="admin" target="_blank"><img src="static/gfx/openwebrx-panel-settings.png" /><br/>Settings</a></li>
</ul> </ul>
</section> </section>
</div> </div>

View File

@ -1,4 +1,4 @@
from . import Controller from .template import WebpageController
from .session import SessionStorage from .session import SessionStorage
@ -10,7 +10,7 @@ class Authentication(object):
return False return False
class SettingsController(Controller): class AdminController(WebpageController):
def __init__(self, handler, request, options): def __init__(self, handler, request, options):
self.authentication = Authentication() self.authentication = Authentication()
super().__init__(handler, request, options) super().__init__(handler, request, options)
@ -22,4 +22,4 @@ class SettingsController(Controller):
self.send_redirect("/login") self.send_redirect("/login")
def indexAction(self): def indexAction(self):
self.send_response("actual content here") self.serve_template("admin.html", **self.template_variables())

View File

@ -47,7 +47,7 @@ class SessionController(WebpageController):
key = SessionStorage.getSharedInstance().startSession({"user": data["user"]}) key = SessionStorage.getSharedInstance().startSession({"user": data["user"]})
cookie = SimpleCookie() cookie = SimpleCookie()
cookie["owrx-session"] = key cookie["owrx-session"] = key
self.send_redirect("/settings", cookies=cookie) self.send_redirect("/admin", cookies=cookie)
else: else:
self.send_redirect("/login") self.send_redirect("/login")
else: else:

View File

@ -11,7 +11,7 @@ from owrx.controllers.assets import (
from owrx.controllers.websocket import WebSocketController from owrx.controllers.websocket import WebSocketController
from owrx.controllers.api import ApiController from owrx.controllers.api import ApiController
from owrx.controllers.metrics import MetricsController from owrx.controllers.metrics import MetricsController
from owrx.controllers.settings import SettingsController from owrx.controllers.admin import AdminController
from owrx.controllers.session import SessionController from owrx.controllers.session import SessionController
from http.server import BaseHTTPRequestHandler from http.server import BaseHTTPRequestHandler
from urllib.parse import urlparse, parse_qs from urllib.parse import urlparse, parse_qs
@ -100,7 +100,7 @@ class Router(object):
StaticRoute("/features", FeatureController), StaticRoute("/features", FeatureController),
StaticRoute("/api/features", ApiController), StaticRoute("/api/features", ApiController),
StaticRoute("/metrics", MetricsController), StaticRoute("/metrics", MetricsController),
StaticRoute("/settings", SettingsController), StaticRoute("/admin", AdminController),
StaticRoute("/login", SessionController, options={"action": "loginAction"}), StaticRoute("/login", SessionController, options={"action": "loginAction"}),
StaticRoute("/login", SessionController, method="POST", options={"action": "processLoginAction"}), StaticRoute("/login", SessionController, method="POST", options={"action": "processLoginAction"}),
StaticRoute("/logout", SessionController, options={"action": "logoutAction"}), StaticRoute("/logout", SessionController, options={"action": "logoutAction"}),