Add admin endpoints.
This commit is contained in:
parent
920a3d6450
commit
fd42ef16e1
4 changed files with 82 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
|||
from . import admin_endpoints
|
||||
from . import album_endpoints
|
||||
from . import basic_endpoints
|
||||
from . import bookmark_endpoints
|
||||
|
@ -6,6 +7,7 @@ from . import tag_endpoints
|
|||
from . import user_endpoints
|
||||
|
||||
__all__ = [
|
||||
'admin_endpoints',
|
||||
'album_endpoints',
|
||||
'basic_endpoints',
|
||||
'bookmark_endpoints',
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
import flask; from flask import request
|
||||
|
||||
from voussoirkit import flasktools
|
||||
|
||||
from .. import common
|
||||
|
||||
site = common.site
|
||||
session_manager = common.session_manager
|
||||
|
||||
####################################################################################################
|
||||
|
||||
@site.route('/admin')
|
||||
def get_admin():
|
||||
if not request.is_localhost:
|
||||
flask.abort(403)
|
||||
|
||||
return common.render_template(request, 'admin.html')
|
||||
|
||||
@site.route('/admin/reload_config', methods=['POST'])
|
||||
def post_reload_config():
|
||||
if not request.is_localhost:
|
||||
return flasktools.make_json_response({}, status=403)
|
||||
|
||||
common.P.load_config()
|
||||
return flasktools.make_json_response({})
|
|
@ -1,5 +1,15 @@
|
|||
const api = {};
|
||||
|
||||
/**************************************************************************************************/
|
||||
api.admin = {};
|
||||
|
||||
api.admin.reload_config =
|
||||
function reload_config(callback)
|
||||
{
|
||||
const url = "/admin/reload_config";
|
||||
return common.post(url, null, callback);
|
||||
}
|
||||
|
||||
/**************************************************************************************************/
|
||||
api.albums = {};
|
||||
|
||||
|
|
45
frontends/etiquette_flask/templates/admin.html
Normal file
45
frontends/etiquette_flask/templates/admin.html
Normal file
|
@ -0,0 +1,45 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
{% import "header.html" as header %}
|
||||
<title>Admin control</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<link rel="stylesheet" href="/static/css/common.css">
|
||||
<link rel="stylesheet" href="/static/css/etiquette.css">
|
||||
{% if theme %}<link rel="stylesheet" href="/static/css/theme_{{theme}}.css">{% endif %}
|
||||
<script src="/static/js/common.js"></script>
|
||||
<script src="/static/js/api.js"></script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
{{header.make_header(session=session)}}
|
||||
<div id="content_body">
|
||||
<div class="panel">
|
||||
<button id="reload_config_button" class="green_button" onclick="return reload_config_form();">Reload config file</button>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
function reload_config_form()
|
||||
{
|
||||
const reload_config_button = document.getElementById("reload_config_button");
|
||||
reload_config_button.disabled = true;
|
||||
function callback(response)
|
||||
{
|
||||
reload_config_button.disabled = false;
|
||||
if (response.meta.status !== 200)
|
||||
{
|
||||
alert(JSON.stringify(response));
|
||||
}
|
||||
}
|
||||
return api.admin.reload_config(callback);
|
||||
}
|
||||
</script>
|
||||
</html>
|
Loading…
Reference in a new issue