أقوم بإدراج زر في الرأس يضيف مستخدمًا إلى مجموعة. هذا يعمل، ولكن إجراء استدعاء ajax للقيام بذلك لا يبدو صحيحًا. يبدو أنه يمكنني “فقط” استدعاء نموذج Group والقيام بذلك هناك، لكنني لا أجد مثالًا يفعل ذلك.
هذا في إضافة (plugin)…
أعتقد أنه يجب أن تكون هناك طريقة يمكنني من خلالها جعل demoGroup نموذجًا بدلاً من مجرد 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("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")
);
});
}