Kianna 4283caaabe
UI: Part three bug bash custom messages (#25229)
* Address comments

* Fix serailizer warning mesage

* Reset pageFilter when exiting

* Add start and end time validation and fix bugs

* Fix failing tests

* Add validation tests

* Set end time in contorller

* Address feedback

* Remove new date

* Put new Date back
2024-02-07 10:43:57 -08:00

62 lines
1.4 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import Route from '@ember/routing/route';
import { inject as 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);
}
}
}