37 lines
1.2 KiB
JavaScript
37 lines
1.2 KiB
JavaScript
// Just add query params here to have them automatically passed to topic list filters.
|
|
export const queryParams = {
|
|
order: { replace: true, refreshModel: true },
|
|
ascending: { replace: true, refreshModel: true },
|
|
status: { replace: true, refreshModel: true },
|
|
state: { replace: true, refreshModel: true },
|
|
search: { replace: true, refreshModel: true },
|
|
max_posts: { replace: true, refreshModel: true },
|
|
q: { replace: true, refreshModel: true },
|
|
tags: { replace: true },
|
|
before: { replace: true, refreshModel: true },
|
|
bumped_before: { replace: true, refreshModel: true }
|
|
};
|
|
|
|
// Basic controller options
|
|
const controllerOpts = {
|
|
discoveryTopics: Ember.inject.controller("discovery/topics"),
|
|
queryParams: Object.keys(queryParams)
|
|
};
|
|
|
|
// Aliases for the values
|
|
controllerOpts.queryParams.forEach(
|
|
p => (controllerOpts[p] = Ember.computed.alias(`discoveryTopics.${p}`))
|
|
);
|
|
|
|
const Controller = Ember.Controller.extend(controllerOpts);
|
|
|
|
export const addDiscoveryQueryParam = function(p, opts) {
|
|
queryParams[p] = opts;
|
|
const cOpts = {};
|
|
cOpts[p] = Ember.computed.alias(`discoveryTopics.${p}`);
|
|
cOpts["queryParams"] = Object.keys(queryParams);
|
|
Controller.reopen(cOpts);
|
|
};
|
|
|
|
export default Controller;
|