add: ability to transfer community ownership

This commit is contained in:
trisua 2025-04-24 16:57:25 -04:00
parent d42375441f
commit 0c814e95d7
5 changed files with 139 additions and 2 deletions

View file

@ -68,6 +68,11 @@
async function create_community_from_form(e) {
e.preventDefault();
await trigger("atto::debounce", ["communities::create"]);
if (e.target.title.value.includes(" ")) {
return alert("Cannot contain spaces!");
}
fetch("/api/v1/communities", {
method: "POST",
headers: {

View file

@ -317,6 +317,33 @@
});
};
globalThis.transfer_ownership = async (uid) => {
if (
!(await trigger("atto::confirm", [
"Are you sure you would like to do this?\n\nThis action is PERMANENT!",
]))
) {
return;
}
fetch(`/api/v1/communities/{{ community.id }}/transfer_ownership`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
user: uid,
}),
})
.then((res) => res.json())
.then((res) => {
trigger("atto::toast", [
res.ok ? "success" : "error",
res.message,
]);
});
};
globalThis.select_user_from_form = (e) => {
e.preventDefault();
fetch(
@ -359,6 +386,7 @@
${res.payload.role !== 33 ? `<button class="red quaternary" onclick="update_user_role('${e.target.uid.value}', 33)">Ban</button>` : `<button class="quaternary" onclick="update_user_role('${e.target.uid.value}', 5)">Unban</button>`}
${res.payload.role !== 65 ? `<button class="red quaternary" onclick="update_user_role('${e.target.uid.value}', 65)">Send to review</button>` : `<button class="green quaternary" onclick="update_user_role('${e.target.uid.value}', 5)">Accept join request</button>`}
<button class="red quaternary" onclick="kick_user('${e.target.uid.value}')">Kick</button>
<button class="red quaternary" onclick="transfer_ownership('${e.target.uid.value}')">Transfer ownership</button>
</div>
<div class="flex flex-col gap-2" ui_ident="permissions" id="permissions">