manage ip address dropdown

isekai-main
Barış Soner Uşaklı 2 years ago
parent bf76989efc
commit 5adc418fef

@ -41,7 +41,7 @@ app.onDomReady();
}, 3600000);
}
require(['hooks'], (hooks) => {
require(['hooks', 'admin/settings'], (hooks, Settings) => {
hooks.on('action:ajaxify.end', (data) => {
updatePageTitle(data.url);
setupRestartLinks();
@ -54,10 +54,10 @@ app.onDomReady();
});
if ($('.settings').length) {
require(['admin/settings'], function (Settings) {
Settings.prepare();
}
if ($('[component="settings/toc"]').length) {
Settings.populateTOC();
});
}
});
hooks.on('action:ajaxify.start', function () {

@ -143,7 +143,7 @@ define('admin/settings', [
saveBtnEl.classList.toggle('saved', true);
setTimeout(() => {
saveBtnEl.classList.toggle('saved', false);
}, 2500);
}, 1500);
}
};

@ -557,7 +557,7 @@ define('settings', ['hooks', 'alerts'], function (hooks, alerts) {
saveBtn.classList.toggle('saved', true);
setTimeout(() => {
saveBtn.classList.toggle('saved', false);
}, 5000);
}, 1500);
}
});
}

@ -162,7 +162,7 @@ usersController.search = async function (req, res) {
async function loadUserInfo(callerUid, uids) {
async function getIPs() {
return await Promise.all(uids.map(uid => db.getSortedSetRevRange(`uid:${uid}:ip`, 0, -1)));
return await Promise.all(uids.map(uid => db.getSortedSetRevRange(`uid:${uid}:ip`, 0, 4)));
}
async function getConfirmObjs() {
const keys = uids.map(uid => `confirm:byUid:${uid}`);

@ -108,7 +108,7 @@
<i class="administrator fa fa-shield text-success{{{ if !users.administrator }}} hidden{{{ end }}}"></i>
<a href="{config.relative_path}/user/{users.userslug}"> {users.username}</a>
</td>
<td>
<td class="text-nowrap">
{{{ if ./email }}}
<i class="validated fa fa-fw fa-check text-success{{{ if !users.email:confirmed }}} hidden{{{ end }}}" title="[[admin/manage/users:users.validated]]" data-bs-toggle="tooltip"></i>
@ -117,11 +117,25 @@
<i class="notvalidated fa fa-fw fa-times text-danger{{{ if !users.email:expired }}} hidden{{{ end }}}" title="[[admin/manage/users:users.validation-expired]]" data-bs-toggle="tooltip"></i>
{./email}
{{{ else }}}
<i class="noemail fa fa-fw fa-ban text-muted""></i>
<i class="noemail fa fa-fw fa-nbb-none text-muted""></i>
<em class="text-muted">[[admin/manage/users:users.no-email]]</em>
{{{ end }}}
</td>
<td>{users.ip}</td>
<td>
{{{ if ./ips.length }}}
<div class="dropdown">
<button class="btn btn-light btn-sm" data-bs-toggle="dropdown"><i class="fa fa-fw fa-list text-muted"></i></button>
<ul class="dropdown-menu p-1">
{{{ each ./ips }}}
<li class="d-flex gap-1 {{{ if !@last }}}mb-1{{{ end }}}">
<a class="dropdown-item rounded-1">{@value}</a>
<button data-ip="{@value}" onclick="navigator.clipboard.writeText(this.getAttribute('data-ip'))" class="btn btn-light btn-sm"><i class="fa fa-copy"></i></button>
</li>
{{{ end }}}
</ul>
</div>
{{{ end }}}
</td>
<td class="text-end">{users.postcount}</td>
<td class="text-end">{users.reputation}</td>
<td class="text-end">{{{ if users.flags }}}{users.flags}{{{ else }}}0{{{ end }}}</td>

Loading…
Cancel
Save