mirror of
https://github.com/discourse/discourse.git
synced 2025-02-20 14:32:01 +08:00
FEATURE: Add remembering topic list for group pms (#8235)
* FEATURE: Add remembering topic list for group pms * added findOrResetCachedBy helper in topic-list * Created cached-topic-list.js * Update app/assets/javascripts/discourse/routes/build-private-messages-route.js.es6 Co-Authored-By: Robin Ward <robin.ward@gmail.com>
This commit is contained in:
parent
f5d6236ad2
commit
da5e9af10a
|
@ -0,0 +1,12 @@
|
|||
export function findOrResetCachedTopicList(session, filter) {
|
||||
const lastTopicList = session.get("topicList");
|
||||
if (lastTopicList && lastTopicList.filter === filter) {
|
||||
return lastTopicList;
|
||||
} else {
|
||||
session.setProperties({
|
||||
topicList: null,
|
||||
topicListScrollPosition: null
|
||||
});
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
import UserTopicListRoute from "discourse/routes/user-topic-list";
|
||||
import { findOrResetCachedTopicList } from "discourse/lib/cached-topic-list";
|
||||
|
||||
// A helper to build a user topic list route
|
||||
export default (viewName, path, channel) => {
|
||||
|
@ -18,19 +19,10 @@ export default (viewName, path, channel) => {
|
|||
},
|
||||
|
||||
model() {
|
||||
const session = Discourse.Session.current();
|
||||
let filter =
|
||||
const filter =
|
||||
"topics/" + path + "/" + this.modelFor("user").get("username_lower");
|
||||
let lastTopicList = session.get("topicList");
|
||||
if (lastTopicList && lastTopicList.filter === filter) {
|
||||
return lastTopicList;
|
||||
} else {
|
||||
session.setProperties({
|
||||
topicList: null,
|
||||
topicListScrollPosition: null
|
||||
});
|
||||
return this.store.findFiltered("topicList", { filter });
|
||||
}
|
||||
const lastTopicList = findOrResetCachedTopicList(this.session, filter);
|
||||
return lastTopicList ? lastTopicList : this.store.findFiltered("topicList", { filter });
|
||||
},
|
||||
|
||||
setupController() {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import createPMRoute from "discourse/routes/build-private-messages-route";
|
||||
import { findOrResetCachedTopicList } from "discourse/lib/cached-topic-list";
|
||||
|
||||
export default createPMRoute("groups", "private-messages-groups").extend({
|
||||
groupName: null,
|
||||
|
@ -16,9 +17,10 @@ export default createPMRoute("groups", "private-messages-groups").extend({
|
|||
|
||||
model(params) {
|
||||
const username = this.modelFor("user").get("username_lower");
|
||||
return this.store.findFiltered("topicList", {
|
||||
filter: `topics/private-messages-group/${username}/${params.name}/archive`
|
||||
});
|
||||
const filter =
|
||||
`topics/private-messages-group/${username}/${params.name}/archive`;
|
||||
const lastTopicList = findOrResetCachedTopicList(this.session, filter);
|
||||
return lastTopicList ? lastTopicList : this.store.findFiltered("topicList", { filter });
|
||||
},
|
||||
|
||||
afterModel(model) {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import createPMRoute from "discourse/routes/build-private-messages-route";
|
||||
import { findOrResetCachedTopicList } from "discourse/lib/cached-topic-list";
|
||||
|
||||
export default createPMRoute("groups", "private-messages-groups").extend({
|
||||
groupName: null,
|
||||
|
@ -11,9 +12,10 @@ export default createPMRoute("groups", "private-messages-groups").extend({
|
|||
|
||||
model(params) {
|
||||
const username = this.modelFor("user").get("username_lower");
|
||||
return this.store.findFiltered("topicList", {
|
||||
filter: `topics/private-messages-group/${username}/${params.name}`
|
||||
});
|
||||
const filter =
|
||||
`topics/private-messages-group/${username}/${params.name}`;
|
||||
const lastTopicList = findOrResetCachedTopicList(this.session, filter);
|
||||
return lastTopicList ? lastTopicList : this.store.findFiltered("topicList", { filter });
|
||||
},
|
||||
|
||||
afterModel(model) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user