Revision b072b308
Added by Ondřej Ezr about 5 years ago
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
Fixes #26543 - make generate_at a datetime field (#6653)