p.ej.
api.addCommunitySectionLink({
name: "intersection-navigator",
route:"tags.intersection",
title: I18n.t("tag_intersection_navigator.link.title"),
text: I18n.t("tag_intersection_navigator.link.text")
})
… fallará porque esa ruta requiere un tag_id.
He intentado añadir:
params: { tag_id: siteSettings.discourse_tag_intersection_navigator_all_word },
model: { tag_id: siteSettings.discourse_tag_intersection_navigator_all_word },
… pero sospecho fuertemente que esto no es procesado como es necesario por la api …
4 Me gusta
Específicamente, creo que está aquí: discourse/app/assets/javascripts/discourse/app/lib/sidebar/custom-community-section-links.js at d0c3f3b8fe6905e7e33ae4944cdf44c11ccc0df6 · discourse/discourse · GitHub
Si agregamos esto, debería funcionar:
get models() {
return args.models;
}
3 Me gusta
Ah, y dado que hay una condición typeof args === "function", podrías hacer algo como esto inmediatamente:
api.addCommunitySectionLink((Base) =
class CustomLink extends Base {
get name() {
return "intersection-navigator";
}
get route() {
return "tag.show";
}
get models() {
return ["tagid"];
}
get title() {
return I18n.t("tag_intersection_navigator.link.title");
}
get text() {
return I18n.t("tag_intersection_navigator.link.text");
}
}
);
1 me gusta
sí, eso es lo que ya estoy haciendo… pero hay algo raro más adelante en el proceso
1 me gusta
Por alguna razón, esto no es del todo así y estoy recibiendo una queja sobre la falta de postStream al hacer clic:
api.addCommunitySectionLink((baseSectionLink) => {
return class CustomSectionLink extends baseSectionLink {
get name() {
return "intersection-navigator";
}
get route() {
return "tags.intersection";
}
get models() {
return [{tag_id: siteSettings.discourse_tag_intersection_navigator_all_word}];
}
get title() {
return I18n.t("tag_intersection_navigator.link.title")
}
get text() {
return I18n.t("tag_intersection_navigator.link.text");
}
};
});
¡Es casi como si necesitaras incluir el modelo para la ruta actual, lo cual es extraño!
1 me gusta
¿cuál es la salida de esa configuración? parece funcionar bien cuando lo hago manualmente:
get models() {
return ["featured", "tv"];
}
2 Me gusta
Sí, eso funciona, ¡es realmente útil, gracias!
La configuración es solo una cadena. Creo que lo estaba pensando demasiado.
¿El nombre “models” para los parámetros de consulta no es 100% intuitivo, sin embargo?
¡Tu PR hará que esto sea mucho más ordenado, gracias!
2 Me gusta
sí, tampoco me quedó claro al principio, pero es porque al final usa el componente LinkTo de Ember, que espera un argumento de modelo…
1 me gusta
system
(system)
Cerrado
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.