35 lines
1.2 KiB
JavaScript
35 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;
|