Ich füge einen Button in den Header ein, der einen Benutzer zu einer Gruppe hinzufügt. Das funktioniert, aber einen ajax-Aufruf dafür zu machen, scheint einfach nicht richtig zu sein. Es scheint, als könnte ich einfach irgendwie das Group-Modell aufrufen und es dort tun, aber ich kann kein Beispiel finden, das das tut.
Das ist in einem Plugin…
Ich schätze, es muss irgendeine Möglichkeit geben, wie ich demoGroup zu einem Modell und nicht nur zu einem dict machen kann?
const demoServerGroupName = siteSettings.pfaffmanager_demo_server_group;
const groups = Site.currentProp("groups");
const router = container.lookup("router:main");
const demoGroup = groups.find((g) => {
return g.name === demoServerGroupName;
});
const hasDemoServer = servers.find((g) => {
return g.hostname.includes("pfaffmanagerdemo");
});
if (demoGroup && !hasDemoServer) {
api.decorateWidget("header-buttons:before", (helper) => {
const addToDemoGroup = function () {
window.console.log("need to add to group", demoGroup);
const groupId = demoGroup.id;
const url = `/groups/${groupId}/join.json`;
ajax(url, {
type: "PUT",
data: currentUser.username,
})
.then(() => {
router.transitionTo("/pfaffmanager/servers"); //TODO: refer to the route?
})
.catch(popupAjaxError);
};
return helper.h(
"button#newDemoServer",
{
className: "btn btn-text btn-primary create headerLink",
title: I18n.t("pfaffmanager.server.create_demo_server_title"),
onclick: addToDemoGroup,
},
I18n.t("pfaffmanager.server.create_demo_server_short")
);
});
}