Update admin page to /admin/users route and icon buttons

- Changed admin routes from /admin/user/* to /admin/users/*
- Updated admin.html to extend base.html
- Changed action buttons to small icon-based buttons (edit, activate/deactivate, delete)
- Made edit user modal scrollable with overflow-y: auto
parent e7a5ebf7
This diff is collapsed.
...@@ -129,7 +129,8 @@ def dashboard(): ...@@ -129,7 +129,8 @@ def dashboard():
completed_jobs=len([j for j in queue_items if j["status"] == "completed"]), completed_jobs=len([j for j in queue_items if j["status"] == "completed"]),
active_jobs=len([j for j in queue_items if j["status"] == "processing"]), active_jobs=len([j for j in queue_items if j["status"] == "processing"]),
total_jobs=len(queue_items), total_jobs=len(queue_items),
queue_items=queue_items[:5]) queue_items=queue_items[:5],
active_page='dashboard')
@app.route('/login', methods=['GET', 'POST']) @app.route('/login', methods=['GET', 'POST'])
def login(): def login():
...@@ -233,7 +234,8 @@ def analyze(): ...@@ -233,7 +234,8 @@ def analyze():
user=user, user=user,
tokens=get_user_tokens(user["id"]), tokens=get_user_tokens(user["id"]),
result=result, result=result,
server_dir=server_dir) server_dir=server_dir,
active_page='analyze')
@app.route('/train', methods=['GET', 'POST']) @app.route('/train', methods=['GET', 'POST'])
@admin_required @admin_required
...@@ -301,7 +303,8 @@ def train(): ...@@ -301,7 +303,8 @@ def train():
return render_template('train.html', return render_template('train.html',
user=user, user=user,
tokens=get_user_tokens(user["id"]), tokens=get_user_tokens(user["id"]),
message=message) message=message,
active_page='train')
@app.route('/config', methods=['GET', 'POST']) @app.route('/config', methods=['GET', 'POST'])
def config(): def config():
...@@ -319,7 +322,7 @@ def config(): ...@@ -319,7 +322,7 @@ def config():
config_data = get_result(msg_id) config_data = get_result(msg_id)
current_config = config_data.get('data', {}) current_config = config_data.get('data', {})
return render_template('config.html', current_config=current_config) return render_template('config.html', current_config=current_config, active_page='config')
@app.route('/history') @app.route('/history')
@login_required @login_required
...@@ -331,7 +334,8 @@ def history(): ...@@ -331,7 +334,8 @@ def history():
return render_template('history.html', return render_template('history.html',
user=user, user=user,
tokens=get_user_tokens(user["id"]), tokens=get_user_tokens(user["id"]),
queue_items=queue_items) queue_items=queue_items,
active_page='history')
@app.route('/settings') @app.route('/settings')
@admin_required @admin_required
...@@ -341,7 +345,8 @@ def settings(): ...@@ -341,7 +345,8 @@ def settings():
return render_template('settings.html', return render_template('settings.html',
user=user, user=user,
tokens=get_user_tokens(user["id"])) tokens=get_user_tokens(user["id"]),
active_page='settings')
@app.route('/update_settings', methods=['POST']) @app.route('/update_settings', methods=['POST'])
@login_required @login_required
...@@ -368,7 +373,7 @@ def api_tokens(): ...@@ -368,7 +373,7 @@ def api_tokens():
user = get_current_user_session() user = get_current_user_session()
from .database import get_user_api_tokens from .database import get_user_api_tokens
user_tokens = get_user_api_tokens(user['id']) user_tokens = get_user_api_tokens(user['id'])
return render_template('api_tokens.html', user=user, user_tokens=user_tokens) return render_template('api_tokens.html', user=user, user_tokens=user_tokens, active_page='api_tokens')
@app.route('/api_tokens/generate', methods=['POST']) @app.route('/api_tokens/generate', methods=['POST'])
@login_required @login_required
...@@ -406,7 +411,7 @@ def delete_api_token(token_id): ...@@ -406,7 +411,7 @@ def delete_api_token(token_id):
def account(): def account():
"""User account management page.""" """User account management page."""
user = get_current_user_session() user = get_current_user_session()
return render_template('account.html', user=user) return render_template('account.html', user=user, active_page='account')
@app.route('/account/change_password', methods=['POST']) @app.route('/account/change_password', methods=['POST'])
...@@ -506,9 +511,9 @@ def admin(): ...@@ -506,9 +511,9 @@ def admin():
from .database import get_all_users from .database import get_all_users
users = get_all_users() users = get_all_users()
user = get_current_user_session() user = get_current_user_session()
return render_template('admin.html', users=users, user=user) return render_template('admin.html', users=users, user=user, active_page='admin')
@app.route('/admin/user/create', methods=['POST']) @app.route('/admin/users/create', methods=['POST'])
@admin_required @admin_required
def admin_create_user(): def admin_create_user():
"""Create a new user via admin panel.""" """Create a new user via admin panel."""
...@@ -526,7 +531,7 @@ def admin_create_user(): ...@@ -526,7 +531,7 @@ def admin_create_user():
flash(message, 'error') flash(message, 'error')
return redirect(url_for('admin')) return redirect(url_for('admin'))
@app.route('/admin/user/<int:user_id>/activate') @app.route('/admin/users/<int:user_id>/activate')
@admin_required @admin_required
def admin_activate_user(user_id): def admin_activate_user(user_id):
"""Activate a user account.""" """Activate a user account."""
...@@ -537,7 +542,7 @@ def admin_activate_user(user_id): ...@@ -537,7 +542,7 @@ def admin_activate_user(user_id):
flash('Failed to activate user.', 'error') flash('Failed to activate user.', 'error')
return redirect(url_for('admin')) return redirect(url_for('admin'))
@app.route('/admin/user/<int:user_id>/deactivate') @app.route('/admin/users/<int:user_id>/deactivate')
@admin_required @admin_required
def admin_deactivate_user(user_id): def admin_deactivate_user(user_id):
"""Deactivate a user account.""" """Deactivate a user account."""
...@@ -548,7 +553,7 @@ def admin_deactivate_user(user_id): ...@@ -548,7 +553,7 @@ def admin_deactivate_user(user_id):
flash('Failed to deactivate user.', 'error') flash('Failed to deactivate user.', 'error')
return redirect(url_for('admin')) return redirect(url_for('admin'))
@app.route('/admin/user/<int:user_id>/update', methods=['POST']) @app.route('/admin/users/<int:user_id>/update', methods=['POST'])
@admin_required @admin_required
def admin_update_user(user_id): def admin_update_user(user_id):
"""Update user information.""" """Update user information."""
...@@ -566,7 +571,7 @@ def admin_update_user(user_id): ...@@ -566,7 +571,7 @@ def admin_update_user(user_id):
flash(message, 'error') flash(message, 'error')
return redirect(url_for('admin')) return redirect(url_for('admin'))
@app.route('/admin/user/<int:user_id>/delete', methods=['POST']) @app.route('/admin/users/<int:user_id>/delete', methods=['POST'])
@admin_required @admin_required
def admin_delete_user(user_id): def admin_delete_user(user_id):
"""Delete a user account.""" """Delete a user account."""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment