Project

General

Profile

« Previous | Next » 

Revision b072b308

Added by Ondřej Ezr about 5 years ago

Fixes #26543 - make generate_at a datetime field (#6653)

View differences:

app/views/report_templates/generate.html.erb
(_('This will generate a report %s. Based on its definition, it can take a long time to process.') % h(@template.name)) +
'</p>').html_safe) %>
<%= text_f f, :generate_at, label: _('Generate at'), label_help: _('Generate report on a given time. Both date and time are required. Please use format yyyy-mm-dd HH:MM +000') %>
<div id="report_generate_at"></div>
<%= mount_react_component('DateTime', '#report_generate_at', {
label: _('Generate at'),
label_help: _('Generate report on a given time.'),
id: 'report_generate_at_datetime',
value: ( f.object.generate_at || Time.now ).iso8601,
hideValue: f.object.generate_at.blank?,
inputProps: { name: 'report_template_report[generate_at]' }
}.to_json, flatten_data: true) %>
<%= checkbox_f f, :send_mail,
label: _('Send report via e-mail'),
webpack/assets/javascripts/react_app/components/Template/TemplateInput.js
isRequired={required}
info={description || 'Format is yyyy-mm-dd HH-mm-ss'}
initialError={initialError}
url={url}
template={template}
inputProps={{
name: `${template}[input_values][${id}][value]`,
}}
hideValue={!value.length}
value={value || undefined}
/>
webpack/assets/javascripts/react_app/components/Template/__test__/__snapshots__/ReportTemplateInput.test.js.snap
hideValue={false}
id={4}
info="Format is yyyy-mm-dd HH-mm-ss"
inputProps={
Object {
"name": "report_template_report[input_values][4][value]",
}
}
isRequired={false}
label="some-label"
locale={null}
template="report_template_report"
value="2019-01-04"
/>
`;
webpack/assets/javascripts/react_app/components/common/forms/DateTime/DateTime.fixtures.js
export const DateTimeProps = {
id: 4,
label: 'some-label',
locale: 'EN',
inputProps: {
name: 'report_template_report[input_values][4][value]',
},
value: '2019-01-04',
};
export const DateTimeWithRequireAndInfo = {
...DateTimeProps,
isRequired: true,
info: 'some description',
};
webpack/assets/javascripts/react_app/components/common/forms/DateTime/DateTime.js
isRequired,
hideValue,
locale,
template,
inputProps,
value,
initialError,
}) => {
......
value={value}
id={`template-date-input-${id}`}
inputProps={{
name: `${template}[input_values][${id}][value]`,
autoComplete: 'off',
...inputProps,
}}
locale={currentLocale}
/>
......
isRequired: PropTypes.bool,
id: PropTypes.number.isRequired,
locale: PropTypes.string,
template: PropTypes.string.isRequired,
inputProps: PropTypes.object,
value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),
initialError: PropTypes.string,
hideValue: PropTypes.bool,
......
value: new Date(),
initialError: undefined,
hideValue: false,
inputProps: {},
};
export default DateTime;
webpack/assets/javascripts/react_app/components/common/forms/DateTime/DateTime.test.js
import DateTime from './DateTime';
import {
ReportDateTimePrpos,
ReportDateTimeWithRequireAndInfo,
} from '../../../Template/Inputs/TemplateInput.fixures';
import { testComponentSnapshotsWithFixtures } from '../../../../common/testHelpers';
import { DateTimeProps, DateTimeWithRequireAndInfo } from './DateTime.fixtures';
import DateTime from './DateTime';
const fixtures = {
'renders Report Date input': ReportDateTimePrpos,
'With Require and Info': ReportDateTimeWithRequireAndInfo,
'renders Report Date input': DateTimeProps,
'renders with Require and Info': DateTimeWithRequireAndInfo,
};
describe('Report Template AutoComplete', () => {
webpack/assets/javascripts/react_app/components/common/forms/DateTime/__snapshots__/DateTime.test.js.snap
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Report Template AutoComplete rendering With Require and Info 1`] = `
exports[`Report Template AutoComplete rendering renders Report Date input 1`] = `
<CommonForm
className=""
inputClassName="col-md-4"
label="some-label"
required={true}
tooltipHelp={
<FieldLevelHelp
buttonClass="field-help"
content={
<React.Fragment>
some description
</React.Fragment>
}
placement="top"
rootClose={true}
/>
}
required={false}
tooltipHelp={null}
touched={true}
>
<DateTimePicker
......
</CommonForm>
`;
exports[`Report Template AutoComplete rendering renders Report Date input 1`] = `
exports[`Report Template AutoComplete rendering renders with Require and Info 1`] = `
<CommonForm
className=""
inputClassName="col-md-4"
label="some-label"
required={false}
tooltipHelp={null}
required={true}
tooltipHelp={
<FieldLevelHelp
buttonClass="field-help"
content={
<React.Fragment>
some description
</React.Fragment>
}
placement="top"
rootClose={true}
/>
}
touched={true}
>
<DateTimePicker
webpack/assets/javascripts/react_app/components/componentRegistry.js
import LongDateTime from './common/dates/LongDateTime';
import ShortDateTime from './common/dates/ShortDateTime';
import IsoDate from './common/dates/IsoDate';
import DateTime from './common/forms/DateTime/DateTime';
import StorageContainer from './hosts/storage/vmware/';
import PasswordStrength from './PasswordStrength';
import BreadcrumbBar from './BreadcrumbBar';
......
data: true,
store: false,
},
{ name: 'DateTime', type: DateTime, store: false },
{ name: 'ModelsTable', type: ModelsTable },
// Pages

Also available in: Unified diff