Estoy insertando un botón en la cabecera que añade un usuario a un grupo. Esto funciona, pero hacer una llamada ajax para hacerlo no parece correcto. Parecería que podría “simplemente” llamar al modelo Group y hacerlo allí, pero no encuentro un ejemplo que lo haga.
Esto está en un plugin…
Supongo que debe haber alguna manera de convertir demoGroup en un modelo en lugar de solo un dict.
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("necesito añadir al grupo", demoGroup);
const groupId = demoGroup.id;
const url = `/groups/${groupId}/join.json`;
ajax(url, {
type: "PUT",
data: currentUser.username,
})
.then(() => {
router.transitionTo("/pfaffmanager/servers"); //TODO: ¿referirse a la ruta?
})
.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")
);
});
}