forked from cory/tildefriends
		
	build: Add prettier to the project
This commit is contained in:
		| @@ -18,9 +18,13 @@ async function main() { | ||||
| 		for (let user of await core.users()) { | ||||
| 			data.users[user] = await core.permissionsForUser(user); | ||||
| 		} | ||||
| 		await app.setDocument(utf8Decode(getFile('index.html')).replace('$data', JSON.stringify(data))); | ||||
| 		await app.setDocument( | ||||
| 			utf8Decode(getFile('index.html')).replace('$data', JSON.stringify(data)) | ||||
| 		); | ||||
| 	} catch { | ||||
| 		await app.setDocument('<span style="color: #f00">Only an administrator can modify these settings.</span>'); | ||||
| 		await app.setDocument( | ||||
| 			'<span style="color: #f00">Only an administrator can modify these settings.</span>' | ||||
| 		); | ||||
| 	} | ||||
| } | ||||
| main(); | ||||
| main(); | ||||
|   | ||||
| @@ -1,10 +1,12 @@ | ||||
| <!DOCTYPE html> | ||||
| <!doctype html> | ||||
| <html style="width: 100%"> | ||||
| 	<head> | ||||
| 		<script>const g_data = $data;</script> | ||||
| 		<script> | ||||
| 			const g_data = $data; | ||||
| 		</script> | ||||
| 	</head> | ||||
| 	<body style="color: #fff; width: 100%"> | ||||
| 		<h1>Tilde Friends Administration</h1> | ||||
| 	</body> | ||||
| 	<script type="module" src="script.js"></script> | ||||
| </html> | ||||
| </html> | ||||
|   | ||||
| @@ -3,25 +3,32 @@ 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)}.`); | ||||
| 		}); | ||||
| 		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)}.`); | ||||
| 	}); | ||||
| 	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>`; | ||||
| window.addEventListener('load', function () { | ||||
| 	const permission_template = (permission) => html` <code>${permission}</code>`; | ||||
| 	function input_template(key, description) { | ||||
| 		if (description.type === 'boolean') { | ||||
| 			return html` | ||||
| @@ -62,26 +69,24 @@ window.addEventListener('load', function() { | ||||
| 	} | ||||
| 	const user_template = (user, permissions) => html` | ||||
| 		<li> | ||||
| 			<button @click=${(e) => delete_user(user)}> | ||||
| 				Delete | ||||
| 			</button> | ||||
| 			${user}: | ||||
| 			${permissions.map(x => permission_template(x))} | ||||
| 			<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>`; | ||||
| 			<ul> | ||||
| 				${Object.entries(users).map((u) => user_template(u[0], u[1]))} | ||||
| 			</ul>`; | ||||
| 	const page_template = (data) => | ||||
| 		html`<div style="padding: 0; margin: 0; width: 100%; max-width: 100%"> | ||||
| 			<h2>Global Settings</h2> | ||||
| 			<div> | ||||
| 			${Object.keys(data.settings).sort().map(x => html`${input_template(x, data.settings[x])}`)} | ||||
| 				${Object.keys(data.settings) | ||||
| 					.sort() | ||||
| 					.map((x) => html`${input_template(x, data.settings[x])}`)} | ||||
| 			</div> | ||||
| 			${users_template(data.users)} | ||||
| 		</div> | ||||
| 		`; | ||||
| 		</div>`; | ||||
| 	render(page_template(g_data), document.body); | ||||
| }); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user