forked from cory/tildefriends
		
	Merge branch 'main' of https://dev.tildefriends.net/cory/tildefriends
This commit is contained in:
		| @@ -4,7 +4,8 @@ | |||||||
| 		<script> | 		<script> | ||||||
| 			const g_data = $data; | 			const g_data = $data; | ||||||
| 		</script> | 		</script> | ||||||
| 		<link rel="stylesheet" href="w3.css"></link> | 		<link rel="stylesheet" href="w3.css" /> | ||||||
|  | 		<!-- prettier-ignore --> | ||||||
| 		<style> | 		<style> | ||||||
| 			/* 2018 Valiant Poppy */ | 			/* 2018 Valiant Poppy */ | ||||||
| 			.w3-theme-l5 {color:#000 !important; background-color:#fbf3f3 !important} | 			.w3-theme-l5 {color:#000 !important; background-color:#fbf3f3 !important} | ||||||
|   | |||||||
| @@ -42,10 +42,27 @@ window.addEventListener('load', function () { | |||||||
| 		} else if (description.type === 'textarea') { | 		} else if (description.type === 'textarea') { | ||||||
| 			return html` | 			return html` | ||||||
| 				<li class="w3-row"> | 				<li class="w3-row"> | ||||||
| 					<label class="w3-quarter" for=${'gs_' + key} style="font-weight: bold">${key}</label> | 					<label class="w3-quarter" for=${'gs_' + key} style="font-weight: bold" | ||||||
|  | 						>${key}</label | ||||||
|  | 					> | ||||||
| 					<div class="w3-rest w3-padding">${description.description}</div> | 					<div class="w3-rest w3-padding">${description.description}</div> | ||||||
| 					<textarea class="w3-input" style="vertical-align: top; resize: vertical" id=${'gs_' + key}>${description.value}</textarea> | 					<textarea | ||||||
| 					<button class="w3-button w3-right w3-quarter w3-theme-action" @click=${(e) => global_settings_set(key, e.srcElement.previousElementSibling.value)}>Set</button> | 						class="w3-input" | ||||||
|  | 						style="vertical-align: top; resize: vertical" | ||||||
|  | 						id=${'gs_' + key} | ||||||
|  | 					> | ||||||
|  | ${description.value}</textarea | ||||||
|  | 					> | ||||||
|  | 					<button | ||||||
|  | 						class="w3-button w3-right w3-quarter w3-theme-action" | ||||||
|  | 						@click=${(e) => | ||||||
|  | 							global_settings_set( | ||||||
|  | 								key, | ||||||
|  | 								e.srcElement.previousElementSibling.value | ||||||
|  | 							)} | ||||||
|  | 					> | ||||||
|  | 						Set | ||||||
|  | 					</button> | ||||||
| 				</li> | 				</li> | ||||||
| 			`; | 			`; | ||||||
| 		} else { | 		} else { | ||||||
| @@ -61,13 +78,17 @@ window.addEventListener('load', function () { | |||||||
| 	} | 	} | ||||||
| 	const user_template = (user, permissions) => html` | 	const user_template = (user, permissions) => html` | ||||||
| 		<li class="w3-card w3-margin"> | 		<li class="w3-card w3-margin"> | ||||||
| 			<button class="w3-button w3-theme-action" @click=${(e) => delete_user(user)}>Delete</button> | 			<button | ||||||
|  | 				class="w3-button w3-theme-action" | ||||||
|  | 				@click=${(e) => delete_user(user)} | ||||||
|  | 			> | ||||||
|  | 				Delete | ||||||
|  | 			</button> | ||||||
| 			${user}: ${permissions.map((x) => permission_template(x))} | 			${user}: ${permissions.map((x) => permission_template(x))} | ||||||
| 		</li> | 		</li> | ||||||
| 	`; | 	`; | ||||||
| 	const users_template = (users) => | 	const users_template = (users) => | ||||||
| 		html` | 		html` <header class="w3-container w3-theme-l2"><h2>Users</h2></header> | ||||||
| 			<header class="w3-container w3-theme-l2"><h2>Users</h2></header> |  | ||||||
| 			<ul class="w3-ul"> | 			<ul class="w3-ul"> | ||||||
| 				${Object.entries(users).map((u) => user_template(u[0], u[1]))} | 				${Object.entries(users).map((u) => user_template(u[0], u[1]))} | ||||||
| 			</ul>`; | 			</ul>`; | ||||||
|   | |||||||
| @@ -116,16 +116,18 @@ async function main() { | |||||||
| 		<div class="w3-card-4 w3-margin"> | 		<div class="w3-card-4 w3-margin"> | ||||||
| 			<header class="w3-container w3-theme-l2"><h2>Identities</h2></header> | 			<header class="w3-container w3-theme-l2"><h2>Identities</h2></header> | ||||||
| 			<ul class="w3-ul">` + | 			<ul class="w3-ul">` + | ||||||
| 				ids | 			ids | ||||||
| 					.map( | 				.map( | ||||||
| 						(id) => `<li style="overflow: hidden; text-wrap: nowrap; text-overflow: ellipsis"> | 					( | ||||||
|  | 						id | ||||||
|  | 					) => `<li style="overflow: hidden; text-wrap: nowrap; text-overflow: ellipsis"> | ||||||
| 				<button onclick="handler.export_id(event)" data-id="${id}" class="w3-button w3-theme">Export Identity</button> | 				<button onclick="handler.export_id(event)" data-id="${id}" class="w3-button w3-theme">Export Identity</button> | ||||||
| 				<button onclick="handler.delete_id(event)" data-id="${id}" class="w3-button w3-theme">Delete Identity</button> | 				<button onclick="handler.delete_id(event)" data-id="${id}" class="w3-button w3-theme">Delete Identity</button> | ||||||
| 				${id} | 				${id} | ||||||
| 			</li>` | 			</li>` | ||||||
| 					) | 				) | ||||||
| 					.join('\n') + | 				.join('\n') + | ||||||
| 				`	</ul> | 			`	</ul> | ||||||
| 		</div> | 		</div> | ||||||
| 	</body>` | 	</body>` | ||||||
| 	); | 	); | ||||||
|   | |||||||
| @@ -345,14 +345,15 @@ class TfElement extends LitElement { | |||||||
| 					([k, v]) => html` | 					([k, v]) => html` | ||||||
| 						<button | 						<button | ||||||
| 							title=${v} | 							title=${v} | ||||||
| 							class="w3-bar-item w3-padding w3-hover-theme tab ${self.tab == | 							class="w3-bar-item w3-padding w3-hover-theme tab ${self.tab == v | ||||||
| 							v |  | ||||||
| 								? 'w3-theme-l2' | 								? 'w3-theme-l2' | ||||||
| 								: 'w3-theme-l1'}" | 								: 'w3-theme-l1'}" | ||||||
| 							@click=${() => self.set_tab(v)} | 							@click=${() => self.set_tab(v)} | ||||||
| 						> | 						> | ||||||
| 							${k} | 							${k} | ||||||
| 							<span class=${self.tab == v ? '' : 'w3-hide-small'}>${v.charAt(0).toUpperCase() + v.substring(1)}</span> | 							<span class=${self.tab == v ? '' : 'w3-hide-small'} | ||||||
|  | 								>${v.charAt(0).toUpperCase() + v.substring(1)}</span | ||||||
|  | 							> | ||||||
| 						</button> | 						</button> | ||||||
| 					` | 					` | ||||||
| 				)} | 				)} | ||||||
| @@ -360,10 +361,12 @@ class TfElement extends LitElement { | |||||||
| 		`; | 		`; | ||||||
| 		let contents = !this.loaded | 		let contents = !this.loaded | ||||||
| 			? this.loading | 			? this.loading | ||||||
| 				? html`<div class="w3-panel w3-theme-l5 w3-card-4 w3-padding-large w3-round-xlarge"> | 				? html`<div | ||||||
| 					Loading... | 							class="w3-panel w3-theme-l5 w3-card-4 w3-padding-large w3-round-xlarge" | ||||||
| 				</div> | 						> | ||||||
| 				${this.render_tab()}` | 							Loading... | ||||||
|  | 						</div> | ||||||
|  | 						${this.render_tab()}` | ||||||
| 				: html`<div>Select or create an identity.</div>` | 				: html`<div>Select or create an identity.</div>` | ||||||
| 			: this.render_tab(); | 			: this.render_tab(); | ||||||
| 		return html` | 		return html` | ||||||
|   | |||||||
| @@ -295,14 +295,18 @@ class TfComposeElement extends LitElement { | |||||||
| 				{ | 				{ | ||||||
| 					values: values, | 					values: values, | ||||||
| 					selectTemplate: function (item) { | 					selectTemplate: function (item) { | ||||||
| 						return item ? `[@${item.original.key}](${item.original.value})` : undefined; | 						return item | ||||||
|  | 							? `[@${item.original.key}](${item.original.value})` | ||||||
|  | 							: undefined; | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					trigger: '&', | 					trigger: '&', | ||||||
| 					values: this.autocomplete, | 					values: this.autocomplete, | ||||||
| 					selectTemplate: function (item) { | 					selectTemplate: function (item) { | ||||||
| 						return item ? `` : undefined; | 						return item | ||||||
|  | 							? `` | ||||||
|  | 							: undefined; | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			], | 			], | ||||||
| @@ -544,7 +548,7 @@ class TfComposeElement extends LitElement { | |||||||
| 							@paste=${this.paste} | 							@paste=${this.paste} | ||||||
| 							contenteditable | 							contenteditable | ||||||
| 							.innerText=${live(draft.text ?? '')} | 							.innerText=${live(draft.text ?? '')} | ||||||
| 							></span> | 						></span> | ||||||
| 					</div> | 					</div> | ||||||
| 					<div class="w3-half w3-padding"> | 					<div class="w3-half w3-padding"> | ||||||
| 						${content_warning} | 						${content_warning} | ||||||
|   | |||||||
| @@ -247,9 +247,7 @@ ${JSON.stringify(mention, null, 2)}</pre | |||||||
| 		if (mentions.length) { | 		if (mentions.length) { | ||||||
| 			let self = this; | 			let self = this; | ||||||
| 			return html` | 			return html` | ||||||
| 				<fieldset | 				<fieldset style="padding: 0.5em; border: 1px solid black"> | ||||||
| 					style="padding: 0.5em; border: 1px solid black" |  | ||||||
| 				> |  | ||||||
| 					<legend>Mentions</legend> | 					<legend>Mentions</legend> | ||||||
| 					${mentions.map((x) => self.render_mention(x))} | 					${mentions.map((x) => self.render_mention(x))} | ||||||
| 				</fieldset> | 				</fieldset> | ||||||
|   | |||||||
| @@ -195,12 +195,16 @@ class TfTabConnectionsElement extends LitElement { | |||||||
| 					${this.identities.map( | 					${this.identities.map( | ||||||
| 						(x) => | 						(x) => | ||||||
| 							html`<li class="w3-bar"> | 							html`<li class="w3-bar"> | ||||||
| 								${x == this.server_identity ? | 								${x == this.server_identity | ||||||
| 									html`<span class="w3-tag w3-medium w3-round w3-theme-l1">🖥 local server</span>` : | 									? html`<span class="w3-tag w3-medium w3-round w3-theme-l1" | ||||||
| 									undefined} | 											>🖥 local server</span | ||||||
| 								${this.my_identities.indexOf(x) != -1 ? | 										>` | ||||||
| 									html`<span class="w3-tag w3-medium w3-round w3-theme-d1">😎 you</span>` : | 									: undefined} | ||||||
| 									undefined} | 								${this.my_identities.indexOf(x) != -1 | ||||||
|  | 									? html`<span class="w3-tag w3-medium w3-round w3-theme-d1" | ||||||
|  | 											>😎 you</span | ||||||
|  | 										>` | ||||||
|  | 									: undefined} | ||||||
| 								<tf-user id=${x} .users=${this.users}></tf-user> | 								<tf-user id=${x} .users=${this.users}></tf-user> | ||||||
| 							</li>` | 							</li>` | ||||||
| 					)} | 					)} | ||||||
|   | |||||||
| @@ -115,13 +115,17 @@ class TfTabNewsElement extends LitElement { | |||||||
| 				></tf-profile>` | 				></tf-profile>` | ||||||
| 			: undefined; | 			: undefined; | ||||||
| 		let edit_profile; | 		let edit_profile; | ||||||
| 		if (!this.loading && | 		if ( | ||||||
|  | 			!this.loading && | ||||||
| 			this.users[this.whoami]?.name === undefined && | 			this.users[this.whoami]?.name === undefined && | ||||||
| 			this.hash.substring(1) != this.whoami) { | 			this.hash.substring(1) != this.whoami | ||||||
| 			edit_profile = html` | 		) { | ||||||
| 				<div class="w3-panel w3-padding w3-round w3-card-4 w3-theme-l3"> | 			edit_profile = html` <div | ||||||
| 					ℹ️ Follow your identity link ☝️ above to edit your profile and set your name. | 				class="w3-panel w3-padding w3-round w3-card-4 w3-theme-l3" | ||||||
| 				</div>`; | 			> | ||||||
|  | 				ℹ️ Follow your identity link ☝️ above to edit your profile and set your | ||||||
|  | 				name. | ||||||
|  | 			</div>`; | ||||||
| 		} | 		} | ||||||
| 		return html` | 		return html` | ||||||
| 			<p class="w3-bar"> | 			<p class="w3-bar"> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user