Angel Garbarino 44af0978e6
Replace all service injects with updated import syntax (#25367)
* replace all injects with import syntax

* Delete ui/app/components/identity/_popup-base.js
2024-02-13 10:00:31 -07:00

62 lines
1.4 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import Route from '@ember/routing/route';
import { service } from '@ember/service';
import { hash } from 'rsvp';
export default class MessagesRoute extends Route {
@service store;
queryParams = {
page: {
refreshModel: true,
},
authenticated: {
refreshModel: true,
},
pageFilter: {
refreshModel: true,
},
};
model(params) {
const { authenticated, page, pageFilter } = params;
const filter = pageFilter
? (dataset) => dataset.filter((item) => item?.title.toLowerCase().includes(pageFilter.toLowerCase()))
: null;
const messages = this.store
.lazyPaginatedQuery('config-ui/message', {
authenticated,
pageFilter: filter,
responsePath: 'data.keys',
page: page || 1,
size: 10,
})
.catch((e) => {
if (e.httpStatus === 404) {
return [];
}
throw e;
});
return hash({
pageFilter,
messages,
});
}
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
const label = controller.authenticated ? 'After User Logs In' : 'On Login Page';
controller.breadcrumbs = [{ label: 'Messages' }, { label }];
}
resetController(controller, isExiting) {
if (isExiting) {
controller.set('pageFilter', null);
}
}
}