mirror of
https://github.com/wekan/wekan.git
synced 2025-09-22 01:50:48 +02:00

Added filtering of Admin Panel/People/People: All Users/Locked Users Only/Active/Not Active. Added visual indicators: red lock icon for locked users, green check for active users, and red X for inactive users. Added "Unlock All" button to quickly unlock all brute force locked users. Added ability to toggle user active status directly from the People page. Moved lockout settings from environment variables to database so admins can configure the lockout thresholds directly in the UI. Thanks to xet7.
175 lines
2.6 KiB
CSS
175 lines
2.6 KiB
CSS
.main-body {
|
|
overflow: scroll;
|
|
}
|
|
table {
|
|
color: #000;
|
|
}
|
|
table td,
|
|
table th {
|
|
border: 1px solid #d2d0d0;
|
|
text-align: left;
|
|
padding: 8px;
|
|
}
|
|
table tr:nth-child(even) {
|
|
background-color: #ddd;
|
|
}
|
|
.ext-box {
|
|
display: flex;
|
|
flex-direction: row;
|
|
height: 34px;
|
|
}
|
|
.ext-box .ext-box-left {
|
|
display: flex;
|
|
width: 100%;
|
|
gap: 10px;
|
|
}
|
|
.ext-box span {
|
|
vertical-align: center;
|
|
line-height: 34px;
|
|
}
|
|
.ext-box input,
|
|
.ext-box button {
|
|
padding: 0;
|
|
}
|
|
.ext-box button {
|
|
min-width: 90px;
|
|
}
|
|
.content-wrapper {
|
|
margin-top: 10px;
|
|
}
|
|
.buttonsContainer {
|
|
display: flex;
|
|
}
|
|
.buttonsContainer input {
|
|
margin: 0;
|
|
}
|
|
.buttonsContainer div {
|
|
margin: auto;
|
|
}
|
|
.more-settings-user,
|
|
.more-settings-team,
|
|
.more-settings-org {
|
|
margin-left: 10px;
|
|
}
|
|
.js-orgs,
|
|
.js-orgsNewUser {
|
|
display: none;
|
|
}
|
|
.js-teams,
|
|
.js-teamsNewUser {
|
|
display: none;
|
|
}
|
|
.selectUserChkBox,
|
|
.allUserChkBox {
|
|
position: static !important;
|
|
visibility: visible !important;
|
|
left: 0 !important;
|
|
display: block !important;
|
|
}
|
|
#divAddOrRemoveTeam {
|
|
background: #008000;
|
|
display: none;
|
|
}
|
|
#addOrRemoveTeam {
|
|
background: #008000;
|
|
color: #fff;
|
|
}
|
|
#divAddOrRemoveTeamContainer {
|
|
display: none;
|
|
margin: auto;
|
|
width: 50%;
|
|
border: 3px solid #008000;
|
|
padding: 10px;
|
|
}
|
|
#cancelBtn {
|
|
margin-left: 5% !important;
|
|
background: #ffa500;
|
|
color: #fff;
|
|
}
|
|
#deleteAction {
|
|
margin-left: 5% !important;
|
|
}
|
|
|
|
.divLockedUsersFilter {
|
|
display: flex;
|
|
align-items: center;
|
|
margin: 0 15px;
|
|
}
|
|
|
|
.divLockedUsersFilter .flex-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.divLockedUsersFilter .people-filter {
|
|
margin-bottom: 0;
|
|
color: #777;
|
|
line-height: 34px;
|
|
}
|
|
|
|
.divLockedUsersFilter .user-filter {
|
|
border: 1px solid #ccc;
|
|
border-radius: 2px;
|
|
padding: 4px 8px;
|
|
background-color: white;
|
|
}
|
|
|
|
.unlock-all-btn {
|
|
margin-left: 15px;
|
|
background-color: #e67e22;
|
|
color: white;
|
|
border: none;
|
|
border-radius: 2px;
|
|
padding: 5px 10px;
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.unlock-all-btn:hover {
|
|
background-color: #d35400;
|
|
}
|
|
|
|
.account-active-status {
|
|
width: 20px;
|
|
text-align: center;
|
|
}
|
|
|
|
.js-toggle-active-status {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.unlock-all-success {
|
|
position: fixed;
|
|
top: 10%;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
background-color: #27ae60;
|
|
color: white;
|
|
padding: 10px 20px;
|
|
border-radius: 4px;
|
|
z-index: 9999;
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
|
|
animation: fadeOut 3s ease-in forwards;
|
|
}
|
|
|
|
@keyframes fadeOut {
|
|
0% { opacity: 1; }
|
|
70% { opacity: 1; }
|
|
100% { opacity: 0; }
|
|
}
|
|
|
|
.account-status {
|
|
width: 20px;
|
|
text-align: center;
|
|
}
|
|
|
|
.text-green {
|
|
color: #27ae60;
|
|
}
|
|
|
|
.js-toggle-lock-status {
|
|
cursor: pointer;
|
|
}
|