Initial commit

This commit is contained in:
Hericode 2025-07-09 10:31:47 +02:00
commit 4f415b6190
77 changed files with 52208 additions and 0 deletions

51
src/model/group.js Normal file
View file

@ -0,0 +1,51 @@
class Group {
static fromData(host, content) {
if (typeof content === "string") {
content = JSON.parse(content);
}
var group = new Group();
group.host = host;
group.data = content;
return group;
}
getHandle() {
return "@" + this.getUsername() + "@" + this.host;
}
getAvatarUrl() {
return this.data.avatar?.url;
}
getBannerUrl() {
return this.data.banner?.url;
}
getUsername() {
return this.data.preferredUsername;
}
getLocationString() {
return this.data.physicalAddress?.description;
}
getIcsUrl() {
return this.data.url + "/feed/ics";
}
getAtomUrl() {
return this.data.url + "/feed/atom";
}
getEvents() {
var events = [];
for (var evt in this.data.organizedEvents?.elements) {
events.push(Event.fromData(this.host, this.data.organizedEvents.elements[evt]));
}
return events;
}
canBeEditedBy(role) {
return role === ROLE.ADMINISTRATOR;
}
canManageEvents(role) {
return role === ROLE.ADMINISTRATOR || role === ROLE.MODERATOR;
}
}