vault/ui/lib/config-ui/addon/components/messages/message-expiration-date-form.js
Jordan Reimer e18b0485f5
[UI] Ember Data Migration - Config UI Engine (#30238)
* WIP updating config-ui engine to use api service and form class

* updates form-field component to support false values for radio types

* updates api-error-message util to log out error in dev env

* fixes issues in custom messages create and edit workflows

* fixes issues in api service

* updates capabilities handling

* updates to custom messages form

* removes store from custom messages tests

* removes store as dependency from config-ui engine

* removes commented out code in messages route

* updates orderedKeys to displayFields in messages page component

* removes unneccesary method var from message create-and-edit component

* removes comment about model in message details page
2025-04-28 16:09:11 -06:00

54 lines
1.4 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { action } from '@ember/object';
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { datetimeLocalStringFormat } from 'core/utils/date-formatters';
/**
* @module Messages::MessageExpirationDateForm
* Messages::MessageExpirationDateForm components are used to display list of messages.
* @example
* ```js
* <Messages::MessageExpirationDateForm @message={{this.message}} @attr={{attr}} />
* ```
* @param {array} message - message form data
*/
export default class MessageExpirationDateForm extends Component {
datetimeLocalStringFormat = datetimeLocalStringFormat;
@tracked groupValue = 'never';
@tracked messageEndTime = '';
constructor() {
super(...arguments);
if (this.args.message.endTime) {
this.groupValue = 'specificDate';
this.messageEndTime = this.args.message.endTime;
}
}
get validationError() {
const validations = this.args.modelValidations || {};
const state = validations[this.args.attr.name];
return state && !state.isValid ? state.errors.join(' ') : null;
}
@action
specificDateChange() {
this.groupValue = 'specificDate';
this.args.message.endTime = this.messageEndTime;
}
@action
onFocusOut(e) {
this.messageEndTime = e.target.value;
this.args.message.endTime = this.messageEndTime;
this.groupValue = 'specificDate';
}
}