forked from cory/tildefriends
Cory McWilliams
46d3e8f567
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3966 ed5197a5-7fde-0310-b194-c3ffbd925b24
51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
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)}.`);
|
|
});
|
|
}
|
|
}
|
|
|
|
function global_settings_set(key, value) {
|
|
tfrpc.rpc.global_settings_set(key, value).then(function() {
|
|
alert(`Set "${key}" to "${value}".`);
|
|
}).catch(function(error) {
|
|
alert(`Failed to set "${key}": ${JSON.stringify(error, null, 2)}.`);
|
|
});
|
|
}
|
|
|
|
window.addEventListener('load', function() {
|
|
const permission_template = (permission) =>
|
|
html` <code>${permission}</code>`;
|
|
const input_template = (key, value) => html`
|
|
<label ?for=${'gs_' + key}>${key}: </label>
|
|
<input type="text" value="${value}" ?id=${'gs_' + key}></input>
|
|
<button @click=${(e) => global_settings_set(key, e.srcElement.previousElementSibling.value)}>Set</button>
|
|
`;
|
|
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`<h2>Users</h2>
|
|
<ul>
|
|
${Object.entries(users).map(u => user_template(u[0], u[1]))}
|
|
</ul>`;
|
|
const page_template = (data) =>
|
|
html`<div>
|
|
<h2>Global Settings</h2>
|
|
${input_template('index', data.index)}
|
|
${users_template(data.users)}
|
|
</div>`;
|
|
render(page_template(g_data), document.body);
|
|
}); |