tildefriends/apps/cory/admin/script.js

31 lines
917 B
JavaScript
Raw Normal View History

import {html, render} from './lit.min.js';
import * as tfrpc from '/static/tfrpc.js';
function delete_user(user) {
if (confirm(`Are you sure you want to delete the user "${user}"?`)) {
tfrpc.rpc.delete_user(user).then(function() {
alert(`User "${user}" deleted successfully.`);
}).catch(function(error) {
alert(`Failed to delete user "${user}": ${JSON.stringify(error, null, 2)}.`);
});
}
}
window.addEventListener('load', function() {
const permission_template = (permission) =>
html` <code>${permission}</code>`;
const user_template = (user, permissions) => html`
<li>
<button @click=${(e) => delete_user(user)}>
Delete
</button>
${user}:
${permissions.map(x => permission_template(x))}
</li>
`;
const users_template = (users) =>
html`<ul>
${users.map(u => user_template(u[0], u[1]))}
</ul>`;
render(users_template(Object.entries(g_data.users)), document.body);
});