forked from mrlan/EnglishPal
105 lines
4.2 KiB
HTML
105 lines
4.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport"
|
|
content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=3.0, user-scalable=yes" />
|
|
<meta name="format-detection" content="telephone=no" />
|
|
<link href="../static/css/bootstrap.css" rel="stylesheet">
|
|
<script src="../static/js/jquery.js"></script>
|
|
</head>
|
|
|
|
<body class="container" style="width: 800px; margin: auto; margin-top:24px;">
|
|
<nav class="navbar navbar-expand-lg bg-light">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="#">管理员 {{ username }} 您好!</a>
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
|
|
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav">
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="/{{ username }}">返回主页</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="/logout">退出登录</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<div class="card" style="margin-top:24px;">
|
|
<h5 style="margin-top: 10px;padding-left: 10px;">重置选中用户的信息</h5>
|
|
<form id="user_form" action="" method="post" class="container mb-3">
|
|
<div>
|
|
<label class="form-label" style="padding-top: 10px;">用户</label>
|
|
<select onchange="select_user()" id="username" name="username" class="form-select" aria-label="Default select example">
|
|
<option selected>选择用户</option>
|
|
{% for user in user_list %}
|
|
<option value="{{ user.name }}">{{ user.name }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
|
|
<label class="form-label" style="padding-top: 10px;">修改密码</label>
|
|
<div>
|
|
<button type="button" id="reset_pwd_btn" class="btn btn-outline-success">获取12位随机密码</button>
|
|
<input style="margin-left: 20px;border: 0; font-size: 20px;" name="new_password"
|
|
id="new_password"></input>
|
|
</div>
|
|
|
|
<label class="form-label" style="padding-top: 10px;">过期时间</label>
|
|
<div>
|
|
<input type="date" id="expiry_date" name="expiry_time" placeholder="YYYY-MM-DD" pattern="yyyyMMdd">
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<button style="margin-top: 50px;" type="submit" class="btn btn-primary">更新用户信息</button>
|
|
</form>
|
|
</div>
|
|
</body>
|
|
|
|
|
|
<script>
|
|
// 密码生成器
|
|
function generatePassword(length) {
|
|
var charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+~`|}{[]\:;?><,./-=";
|
|
var password = "";
|
|
for (var i = 0; i < length; i++) {
|
|
password += charset.charAt(Math.floor(Math.random() * charset.length));
|
|
}
|
|
return password;
|
|
}
|
|
document.getElementById("reset_pwd_btn").addEventListener("click", () => {
|
|
// 生成12位随机密码
|
|
let pwd = generatePassword(12)
|
|
document.getElementById("new_password").value = pwd
|
|
})
|
|
// 选择用户后更新其过期时间
|
|
function select_user() {
|
|
let cur_user = $('#username').val();
|
|
{% for user in user_list %}
|
|
if (cur_user == "{{ user.name }}") {
|
|
const dateString = "{{ user.expiry_date }}"
|
|
const year = dateString.substr(0,4);
|
|
const month = dateString.substr(4,2);
|
|
const day = dateString.substr(6,2);
|
|
document.getElementById("expiry_date").value = year + '-' + month + '-' + day
|
|
}
|
|
{% endfor %}
|
|
}
|
|
</script>
|
|
|
|
<script>
|
|
// Give the user another 365 days
|
|
const date = new Date();
|
|
date.setDate(date.getDate() + 365);
|
|
document.getElementById("expiry_date").value = date.toISOString().split('T')[0];
|
|
</script>
|
|
|
|
|
|
</html>
|