pfaffman
(Jay Pfaffman)
1
GitHub - nolosb/discourse-featured-lists: A Discourse theme component to feature custom topic lists. · GitHub 와 같은 방식으로, PM(개인 메시지)을 최신 게시글(latest) 같은 다른 페이지에 표시하는 기능을 만들어 보고 싶습니다.
그룹 PM을 찾기 어렵기 때문에, 예를 들어 읽지 않은 그룹 PM을 /unread 페이지에 표시할 수 있다면 정말 좋을 것 같습니다.
일단 어떻게 표시하는지 방법을 알아낼 수 있다고 가정하고, 표시하기 위해 데이터를 가져오는 방법을 알고 싶습니다.
아래와 같은 코드를 사용할 수 있을까요?
const topicList = await this.store.findFiltered('topicList', {
filter: this.args.list.filter,
params: {
category: this.args.list.category,
tags: this.args.list.tag,
solved: solvedFilter,
},
});
이때 params에 staff, team 등 특정 그룹의 PM을 가져오도록 지정할 수 있을까요?
pfaffman
(Jay Pfaffman)
2
음, 이렇게 하면 대략적으로 처리할 수 있을 것 같습니다:
const topicList = await this.store.findFiltered('topicList', {
filter: this.args.list.filter,
// filter: "search",
params: {
// category: this.args.list.category,
// tags: this.args.list.tag,
// solved: solvedFilter,
q: "upgraded in:messages"
},
});
이렇게 하면 "upgraded"가 포함된 메시지를 가져올 수 있습니다.
하지만 아직 읽지 않은 메시지, 새 메시지, 모든 메시지, 그룹으로 전송된 메시지 등을 어떻게 가져올지 모르겠습니다.
아쉬운 마음이 드네요. 하지만 이건 topic_list가 아닙니다.
pfaffman
(Jay Pfaffman)
3
잠깐!!! 여기서 올바른 필터를 찾았어요.
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/routes/build-private-messages-group-route.js#L33
let topicListFilter = `topics/private-messages-group/${this.currentUser.username}/${groupName}`;
console.log("consider the topic list", topicListFilter);
const topicList = await this.store.findFiltered('topicList', {
filter: topicListFilter,
params: { },
});