Change user defined css from the admin panel

This commit is contained in:
Jeremy Zhang
2018-01-07 02:41:02 +00:00
parent 0297481a5e
commit e8ecfc65d2
6 changed files with 144 additions and 9 deletions

View File

@ -1,7 +1,7 @@
from flask import Blueprint, url_for, redirect, session, render_template, abort, request, jsonify
from flask_socketio import emit
from functools import wraps
from titanembeds.database import db, get_administrators_list, Cosmetics, Guilds, UnauthenticatedUsers, UnauthenticatedBans, TitanTokens, TokenTransactions, get_titan_token, set_titan_token, list_disabled_guilds, DisabledGuilds
from titanembeds.database import db, get_administrators_list, Cosmetics, Guilds, UnauthenticatedUsers, UnauthenticatedBans, TitanTokens, TokenTransactions, get_titan_token, set_titan_token, list_disabled_guilds, DisabledGuilds, UserCSS
from titanembeds.oauth import generate_guild_icon_url
import datetime
import json
@ -293,4 +293,86 @@ def delete_disabled_guilds():
guild = db.session.query(DisabledGuilds).filter(DisabledGuilds.guild_id == guild_id).first()
db.session.delete(guild)
db.session.commit()
return ('', 204)
return ('', 204)
@admin.route("/custom_css", methods=["GET"])
@is_admin
def list_custom_css_get():
css = db.session.query(UserCSS).order_by(UserCSS.id).all()
return render_template("admin_usercss.html.j2", css=css)
@admin.route("/custom_css/edit/<css_id>", methods=["GET"])
@is_admin
def edit_custom_css_get(css_id):
css = db.session.query(UserCSS).filter(UserCSS.id == css_id).first()
if not css:
abort(404)
variables = css.css_variables
if variables:
variables = json.loads(variables)
return render_template("usercss.html.j2", new=False, css=css, variables=variables, admin=True)
@admin.route("/custom_css/edit/<css_id>", methods=["POST"])
@is_admin
def edit_custom_css_post(css_id):
dbcss = db.session.query(UserCSS).filter(UserCSS.id == css_id).first()
if not dbcss:
abort(404)
name = request.form.get("name", None)
user_id = request.form.get("user_id", None)
css = request.form.get("css", None)
variables = request.form.get("variables", None)
variables_enabled = request.form.get("variables_enabled", False) in ["true", True]
if not name:
abort(400)
else:
name = name.strip()
css = css.strip()
if not user_id:
user_id = dbcss.user_id
if (len(css) == 0):
css = None
dbcss.name = name
dbcss.user_id = user_id
dbcss.css = css
dbcss.css_variables = variables
dbcss.css_var_bool = variables_enabled
db.session.commit()
return jsonify({"id": dbcss.id})
@admin.route("/custom_css/edit/<css_id>", methods=["DELETE"])
@is_admin
def edit_custom_css_delete(css_id):
dbcss = db.session.query(UserCSS).filter(UserCSS.id == css_id).first()
if not dbcss:
abort(404)
db.session.delete(dbcss)
db.session.commit()
return jsonify({})
@admin.route("/custom_css/new", methods=["GET"])
@is_admin
def new_custom_css_get():
return render_template("usercss.html.j2", new=True, admin=True)
@admin.route("/custom_css/new", methods=["POST"])
@is_admin
def new_custom_css_post():
name = request.form.get("name", None)
user_id = request.form.get("user_id", None)
css = request.form.get("css", None)
variables = request.form.get("variables", None)
variables_enabled = request.form.get("variables_enabled", False) in ["true", True]
if not name:
abort(400)
else:
name = name.strip()
css = css.strip()
if not user_id:
abort(400)
if (len(css) == 0):
css = None
css = UserCSS(name, user_id, variables_enabled, variables, css)
db.session.add(css)
db.session.commit()
return jsonify({"id": css.id})

View File

@ -85,7 +85,7 @@ def dashboard():
cosmetics = db.session.query(Cosmetics).filter(Cosmetics.user_id == session['user_id']).first()
css_list = None
if cosmetics and cosmetics.css:
css_list = db.session.query(UserCSS).filter(UserCSS.user_id == session['user_id']).all()
css_list = db.session.query(UserCSS).filter(UserCSS.user_id == session['user_id']).order_by(UserCSS.id).all()
premium_css_count = count_user_premium_css()
return render_template("dashboard.html.j2", servers=guilds, icon_generate=generate_guild_icon_url, cosmetics=cosmetics, css_list=css_list, premium_css_count=premium_css_count)