Commit 80f471b4 authored by Maksym Tishchenko's avatar Maksym Tishchenko
Browse files

Accession forms: Name, Quarantine, IPR forms with hints

parent 5ccdebd5
......@@ -40,6 +40,7 @@
"name": "Name",
"taxonomySpecies": "Taxon",
"isWebVisible": "Is Web Visible?",
"isWebVisible_hint": "Indicates if this record can be shared with external users.",
"accession": "Accession",
"inventory": "Inventory",
"method": "Method",
......@@ -548,24 +549,35 @@
},
"AccessionInvName": {
"categoryCode": "Category",
"categoryCode_hint": "category_code -- Type of accession name. Must be a value in the ACCESSION_NAME_TYPE Code Group.",
"plantName": "Name",
"plantName_hint": "plant_name -- Plant name of the accession.",
"plantNameRank": "Plant Name Rank",
"nameGroupId": "Name Group",
"plantNameRank_hint": "plant_name_rank -- Rank of relative importance of the name; more important names are assigned a lower number. The name with the lowest number is the 'preferred name'.",
"nameGroup": "Name Group",
"nameGroup_hint": "name_group_id -- Name Groups are used to associate specific names to certain groups, such as CIMMYT names, SINGER names, or NPGS names. By grouping, later you can search and filter accessions for names within a specific group. If you do not need to track names, then the Name Group field doesn’t need to be used.",
"nameSourceCooperator": "Cooperator",
"accessionInvName": "Accession Inventory Name ID"
"nameSourceCooperator_hint": "name_source_cooperator_id -- Person or organization responsible for assigning the name."
},
"AccessionIpr": {
"accessionIprId": "Accession IPR ID",
"typeCode": "IPR Type",
"typeCode_hint": "type_code -- Type of intellectual property rights associated with the accession. Each accession can have several types of protection at the same time. Must be a value in the ACCESSION_RESTRICTION_TYPE Code Group. Examples: CSR (Crop Science Registration), FOREIGN",
"iprNumber": "IPR Number",
"iprNumber_hint": "ipr_number -- A numeric identifier for the IPR",
"issuedDate": "Issued Date",
"issuedDate_hint": "issued_date -- Date when the intellectual property rights were issued. Date of Publication in Journal (Crop Science Registration - CSR) or Date of Protection (PVPO) or Date Granted (Utility or other Patent). Pending patents will have no Issued Date",
"expiredDate": "Expired Date",
"expiredDate_hint": "expired_date -- Date when the intellectual property right or protection expired or was removed. The germplasm is available for distribution as long as no other form of protection applies",
"cooperator": "Cooperator",
"cooperator_hint": "cooperator_id -- Links the accession_IPR record to a cooperator",
"acceptedDate": "Accepted Date",
"acceptedDate_hint": "accepted_date -- Date when the registration number was assigned to a Crop Science Registration (CSR) accession and the date the manuscript was officially accepted for publication",
"expectedDate": "Expected Date",
"expectedDate_hint": "expected_date -- A future Expired Date, to track the future date of expiration. This was created as a result of some CSR germplasm having protection on a gene, (for example) and having restricted distribution for a period beyond the 5 year CSR registration",
"iprCropName": "IPR Crop Name",
"iprCropName_hint": "ipr_crop_name -- Crop name for the accession the IPR is associated with. Examples: Wheat, Soybean",
"iprFullName": "IPR Full Name",
"cooperator": "Cooperator"
"iprFullName_hint": "ipr_full_name -- Name of the patent or property right listed on the IPR document. This is generally used with utility and plant patents, where the material patented is not a simple plant name"
},
"AccessionAction": {
"accessionActionId": "Accession Action ID",
......@@ -580,28 +592,38 @@
"completedDateCode": "Completed Date Format"
},
"AccessionPedigree": {
"accessionPedigreeId": "Accession Pedigree ID",
"accessionId": "Accession",
"releasedDate": "Released Date",
"releasedDate_hint": "released_date -- Date when the cultivar/selection/line was released",
"description": "Pedigree Description",
"description_hint": "description -- Pedigree or parentage of a cultivated or improved accession. Pedigrees can be entered in a formal manner when information is available",
"releasedDateCode": "Released Date Format",
"releasedDateCode_hint": "released_date_code -- Format used for the voucher date. Must be a value in the DATE_FORMAT Code Group",
"maleAccession": "Male Accession",
"maleAccession_hint": "male_accession_id -- The internal accession Identifier of the male parent which relates to the full accession identifier (when the male parent is in the organization's collection)",
"maleExternalAccession": "External Male Accession",
"maleExternalAccession_hint": "male_external_accession -- The identifier of the male parent when the accession is not part of the organization's collection",
"femaleAccession": "Female Accession",
"femaleAccession_hint": "female_accession_id -- The internal accession Identifier of the female parent which relates to the full accession identifier (when the female parent is in the organization's collection)",
"femaleExternalAccession": "External Female Accession",
"completedDateCode": "Completed Date Format",
"crossCode": "Cross Method"
"femaleExternalAccession_hint": "female_external_accession -- The identifier of the female parent when it is not part of the organization's collection",
"crossCode": "Cross Method",
"crossCode_hint": "cross_code -- Code indicating the type of cross used for breeding the accession. Must be a value in the PEDIGREE_CROSS Code Group"
},
"AccessionQuarantine": {
"accessionQuarantineId": "Accession Quarantine ID",
"accessionId": "Accession",
"progressStatusCode": "Progress Status",
"progressStatusCode_hint": "progress_status_code -- The status of the accession as it proceeds through quarantine. Must be a value in the ACCESSION_QUARANTINE_STATUS Code Group",
"enteredDate": "Entered Date",
"enteredDate_hint": "entered_date -- Date when accession was entered into the quarantine program",
"establishedDate": "Established Date",
"establishedDate_hint": "established_date -- Date when accession was established at the quarantine location and is ready for observation and testing",
"expectedReleaseDate": "Expected Release Date",
"expectedReleaseDate_hint": "expected_release_date -- Date when quarantine testing is expected to be completed and the accession is expected to be released to an active collection",
"releasedDate": "Released Date",
"releasedDate_hint": "released_date -- Date when accession completed quarantine requirements and was released to an active collection",
"quarantineTypeCode": "Quarantine Type",
"custodialCooperator": "Quarantining Cooperator"
"quarantineTypeCode_hint": "quarantine_type_code -- Type of quarantine applied to the accession. Must be a value in the ACCESSION_QUARANTINE_TYPE Code Group",
"custodialCooperator": "Quarantining Cooperator",
"custodialCooperator_hint": "custodial_cooperator_id -- The person or organization responsible for the quarantine process of the accession."
},
"Citation": {
"citationId": "Citation ID",
......
......@@ -25,6 +25,7 @@
"name": "Name",
"taxonomySpecies": "Taxon",
"isWebVisible": "Is Web Visible?",
"isWebVisible_hint": "Indicates if this record can be shared with external users.",
"accession": "Accession",
"inventory": "Inventory",
"method": "Method",
......@@ -535,24 +536,35 @@
},
"AccessionInvName": {
"categoryCode": "Category",
"categoryCode_hint": "category_code -- Type of accession name. Must be a value in the ACCESSION_NAME_TYPE Code Group.",
"plantName": "Name",
"plantName_hint": "plant_name -- Plant name of the accession.",
"plantNameRank": "Plant Name Rank",
"nameGroupId": "Name Group",
"plantNameRank_hint": "plant_name_rank -- Rank of relative importance of the name; more important names are assigned a lower number. The name with the lowest number is the 'preferred name'.",
"nameGroup": "Name Group",
"nameGroup_hint": "name_group_id -- Name Groups are used to associate specific names to certain groups, such as CIMMYT names, SINGER names, or NPGS names. By grouping, later you can search and filter accessions for names within a specific group. If you do not need to track names, then the Name Group field doesn’t need to be used.",
"nameSourceCooperator": "Cooperator",
"accessionInvName": "Accession Inventory Name ID"
"nameSourceCooperator_hint": "name_source_cooperator_id -- Person or organization responsible for assigning the name."
},
"AccessionIpr": {
"accessionIprId": "Accession IPR ID",
"typeCode": "IPR Type",
"typeCode_hint": "type_code -- Type of intellectual property rights associated with the accession. Each accession can have several types of protection at the same time. Must be a value in the ACCESSION_RESTRICTION_TYPE Code Group. Examples: CSR (Crop Science Registration), FOREIGN",
"iprNumber": "IPR Number",
"iprNumber_hint": "ipr_number -- A numeric identifier for the IPR",
"issuedDate": "Issued Date",
"issuedDate_hint": "issued_date -- Date when the intellectual property rights were issued. Date of Publication in Journal (Crop Science Registration - CSR) or Date of Protection (PVPO) or Date Granted (Utility or other Patent). Pending patents will have no Issued Date",
"expiredDate": "Expired Date",
"expiredDate_hint": "expired_date -- Date when the intellectual property right or protection expired or was removed. The germplasm is available for distribution as long as no other form of protection applies",
"cooperator": "Cooperator",
"cooperator_hint": "cooperator_id -- Links the accession_IPR record to a cooperator",
"acceptedDate": "Accepted Date",
"acceptedDate_hint": "accepted_date -- Date when the registration number was assigned to a Crop Science Registration (CSR) accession and the date the manuscript was officially accepted for publication",
"expectedDate": "Expected Date",
"expectedDate_hint": "expected_date -- A future Expired Date, to track the future date of expiration. This was created as a result of some CSR germplasm having protection on a gene, (for example) and having restricted distribution for a period beyond the 5 year CSR registration",
"iprCropName": "IPR Crop Name",
"iprCropName_hint": "ipr_crop_name -- Crop name for the accession the IPR is associated with. Examples: Wheat, Soybean",
"iprFullName": "IPR Full Name",
"cooperator": "Cooperator"
"iprFullName_hint": "ipr_full_name -- Name of the patent or property right listed on the IPR document. This is generally used with utility and plant patents, where the material patented is not a simple plant name"
},
"AccessionAction": {
"accessionActionId": "Accession Action ID",
......@@ -567,28 +579,38 @@
"completedDateCode": "Completed Date Format"
},
"AccessionPedigree": {
"accessionPedigreeId": "Accession Pedigree ID",
"accessionId": "Accession",
"releasedDate": "Released Date",
"releasedDate_hint": "released_date -- Date when the cultivar/selection/line was released",
"description": "Pedigree Description",
"description_hint": "description -- Pedigree or parentage of a cultivated or improved accession. Pedigrees can be entered in a formal manner when information is available",
"releasedDateCode": "Released Date Format",
"releasedDateCode_hint": "released_date_code -- Format used for the voucher date. Must be a value in the DATE_FORMAT Code Group",
"maleAccession": "Male Accession",
"maleAccession_hint": "male_accession_id -- The internal accession Identifier of the male parent which relates to the full accession identifier (when the male parent is in the organization's collection)",
"maleExternalAccession": "External Male Accession",
"maleExternalAccession_hint": "male_external_accession -- The identifier of the male parent when the accession is not part of the organization's collection",
"femaleAccession": "Female Accession",
"femaleAccession_hint": "female_accession_id -- The internal accession Identifier of the female parent which relates to the full accession identifier (when the female parent is in the organization's collection)",
"femaleExternalAccession": "External Female Accession",
"completedDateCode": "Completed Date Format",
"crossCode": "Cross Method"
"femaleExternalAccession_hint": "female_external_accession -- The identifier of the female parent when it is not part of the organization's collection",
"crossCode": "Cross Method",
"crossCode_hint": "cross_code -- Code indicating the type of cross used for breeding the accession. Must be a value in the PEDIGREE_CROSS Code Group"
},
"AccessionQuarantine": {
"accessionQuarantineId": "Accession Quarantine ID",
"accessionId": "Accession",
"progressStatusCode": "Progress Status",
"progressStatusCode_hint": "progress_status_code -- The status of the accession as it proceeds through quarantine. Must be a value in the ACCESSION_QUARANTINE_STATUS Code Group",
"enteredDate": "Entered Date",
"enteredDate_hint": "entered_date -- Date when accession was entered into the quarantine program",
"establishedDate": "Established Date",
"establishedDate_hint": "established_date -- Date when accession was established at the quarantine location and is ready for observation and testing",
"expectedReleaseDate": "Expected Release Date",
"expectedReleaseDate_hint": "expected_release_date -- Date when quarantine testing is expected to be completed and the accession is expected to be released to an active collection",
"releasedDate": "Released Date",
"releasedDate_hint": "released_date -- Date when accession completed quarantine requirements and was released to an active collection",
"quarantineTypeCode": "Quarantine Type",
"custodialCooperator": "Quarantining Cooperator"
"quarantineTypeCode_hint": "quarantine_type_code -- Type of quarantine applied to the accession. Must be a value in the ACCESSION_QUARANTINE_TYPE Code Group",
"custodialCooperator": "Quarantining Cooperator",
"custodialCooperator_hint": "custodial_cooperator_id -- The person or organization responsible for the quarantine process of the accession."
},
"Citation": {
"citationId": "Citation ID",
......
......@@ -10,6 +10,7 @@ interface IToggle {
input?: FieldInputProps<any>;
label?: string;
labelPlacement?: 'end' | 'start' | 'top' | 'bottom';
helperText?: string;
meta?: FieldMetaState<any>;
shrink?: boolean;
required?: boolean;
......@@ -42,9 +43,9 @@ interface IToggle {
* "color: default" should be passed to the Switch component
*/
export const Toggle = ({ input, labelPlacement = 'top', label, meta = undefined, shrink, required = false, className = '', overrides = {}, ...custom }: IToggle) => {
export const Toggle = ({ input, labelPlacement = 'top', label, meta = undefined, shrink, required = false, className = '', helperText = null, overrides = {}, ...custom }: IToggle) => {
return (
<FormControl fullWidth required={ required } shrink={ shrink } meta={ meta } className={ className }>
<FormControl fullWidth required={ required } helperText={ helperText } shrink={ shrink } meta={ meta } className={ className }>
<FormControlLabel
// value="top"
label={ label }
......
......@@ -37,71 +37,72 @@ function AccessionInvNameFormInternal(props: IAccessionInvNameFormInternal) {
<Grid container spacing={ 4 }>
<Grid item xs={ 12 } sm={ 12 }>
<Field
placeholder={ t('client:model.AccessionInvName.categoryCode') }
name="categoryCode"
type="text"
component={ CodeValueField }
codeGroup={ AccessionInvName.CodeGroup.categoryCode }
label={ t('client:model.AccessionInvName.categoryCode') }
helperText={ t(['client:model.AccessionInvName.categoryCode_hint', 'client:model._._hint']) }
required
validate={ required }
/>
</Grid>
<Grid item xs={ 12 } sm={ 6 }>
<Field
placeholder={ t('client:model.AccessionInvName.plantName') }
name="plantName"
type="text"
component={ TextField }
label={ t('client:model.AccessionInvName.plantName') }
helperText={ t(['client:model.AccessionInvName.plantName_hint', 'client:model._._hint']) }
required
validate={ required }
/>
</Grid>
<Grid item xs={ 12 } sm={ 6 }>
<Field
placeholder={ t('client:model.AccessionInvName.nameGroup') }
name="nameGroup"
type="text"
component={ NameGroupField }
label={ t('client:model.AccessionInvName.nameGroup') }
/>
</Grid>
<Grid item xs={ 12 } sm={ 6 }>
<Field
placeholder={ t('client:model.AccessionInvName.nameSourceCooperator') }
name="nameSourceCooperator"
type="text"
component={ CooperatorAutocomplete }
label={ t('client:model.AccessionInvName.nameSourceCooperator') }
helperText={ t(['client:model.AccessionInvName.nameSourceCooperator_hint', 'client:model._._hint']) }
/>
</Grid>
<Grid item xs={ 12 } sm={ 3 }>
<Grid item xs={ 6 }>
<Field
placeholder={ t('client:model.AccessionInvName.plantNameRank') }
name="plantNameRank"
type="text"
component={ TextField }
label={ t('client:model.AccessionInvName.plantNameRank') }
helperText={ t(['client:model.AccessionInvName.plantNameRank_hint', 'client:model._._hint']) }
validate={ validatePositiveInteger }
/>
</Grid>
<Grid item xs={ 3 }>
<Grid item xs={ 6 }>
<Field
label={ t([ 'client:model.AccessionInvName.isWebVisible', 'client:model._.isWebVisible' ]) }
name="isWebVisible"
component={ YesNoSwitch }
labelPlacement="end"
helperText={ t(['client:model.AccessionInvName.isWebVisible_hint', 'client:model._.isWebVisible_hint']) }
/>
</Grid>
<Grid item xs={ 12 }>
<Field
name="nameGroup"
type="text"
component={ NameGroupField }
label={ t('client:model.AccessionInvName.nameGroup') }
helperText={ t(['client:model.AccessionInvName.nameGroup_hint', 'client:model._._hint']) }
/>
</Grid>
<Grid item xs={ 12 }>
<Field
placeholder={ t([ 'client:model.AccessionInvName.note', 'client:model._.note' ]) }
name="note"
type="text"
multiline
component={ TextField }
label={ t([ 'client:model.AccessionInvName.note', 'client:model._.note' ]) }
helperText={ t(['client:model.AccessionInvName.note_hint', 'client:model._.note_hint']) }
/>
</Grid>
</Grid>
......
......@@ -35,12 +35,12 @@ function AccessionIprFormInternal(props: IAccessionIprFormInternal) {
<Grid container spacing={ 4 }>
<Grid item xs={ 12 } sm={ 6 }>
<Field
placeholder={ t('client:model.AccessionIpr.typeCode') }
name="typeCode"
type="text"
component={ CodeValueField }
codeGroup={ AccessionIpr.CodeGroup.typeCode }
label={ t('client:model.AccessionIpr.typeCode') }
helperText={ t(['client:model.AccessionIpr.typeCode_hint', 'client:model._._hint']) }
required
validate={ required }
/>
......@@ -53,16 +53,17 @@ function AccessionIprFormInternal(props: IAccessionIprFormInternal) {
component={ TextField }
type="text"
placeholder={ t([ `client:model.AccessionIpr.${property}` ]) }
helperText={ t([`client:model.AccessionIpr.${property}_hint`, 'client:model._._hint']) }
/>
</Grid>
)) }
<Grid item xs={ 12 } sm={ 12 }>
<Field
placeholder={ t('client:model.AccessionIpr.cooperator') }
name="cooperator"
type="text"
component={ CooperatorAutocomplete }
label={ t('client:model.AccessionIpr.cooperator') }
helperText={ t(['client:model.AccessionIpr.cooperator_hint', 'client:model._._hint']) }
/>
</Grid>
{ [ 'issuedDate', 'acceptedDate', 'expectedDate', 'expiredDate' ].map((property) => (
......@@ -73,6 +74,7 @@ function AccessionIprFormInternal(props: IAccessionIprFormInternal) {
component={ DateField }
type="date"
placeholder={ t([ `client:model.AccessionIpr.${property}` ]) }
helperText={ t([`client:model.AccessionIpr.${property}_hint`, 'client:model._._hint']) }
shrink
/>
</Grid>
......@@ -84,7 +86,7 @@ function AccessionIprFormInternal(props: IAccessionIprFormInternal) {
component={ TextField }
type="text"
multiline
placeholder={ t([ 'client:model.AccessionIpr.note', 'client:model._.note' ]) }
helperText={ t(['client:model.AccessionIpr.note_hint', 'client:model._.note_hint']) }
/>
</Grid>
</Grid>
......
......@@ -40,6 +40,43 @@ function AccessionPedigreeFormInternal(props: IAccessionPedigreeFormInternal) {
component={ CodeValueField }
codeGroup={ AccessionPedigree.CodeGroup.crossCode }
label={ t('client:model.AccessionPedigree.crossCode') }
helperText={ t(['client:model.AccessionPedigree.crossCode_hint', 'client:model._._hint']) }
/>
</Grid>
<Grid item xs={ 12 } sm={ 6 }>
<Field
name="femaleAccession"
type="text"
component={ AccessionField }
label={ t('client:model.AccessionPedigree.femaleAccession') }
helperText={ t(['client:model.AccessionPedigree.femaleAccession_hint', 'client:model._._hint']) }
/>
</Grid>
<Grid item xs={ 12 } sm={ 6 }>
<Field
name="femaleExternalAccession"
type="text"
component={ TextField }
label={ t('client:model.AccessionPedigree.femaleExternalAccession') }
helperText={ t(['client:model.AccessionPedigree.femaleExternalAccession_hint', 'client:model._._hint']) }
/>
</Grid>
<Grid item xs={ 12 } sm={ 6 }>
<Field
name="maleAccession"
type="text"
component={ AccessionField }
label={ t('client:model.AccessionPedigree.maleAccession') }
helperText={ t(['client:model.AccessionPedigree.maleAccession_hint', 'client:model._._hint']) }
/>
</Grid>
<Grid item xs={ 12 } sm={ 6 }>
<Field
name="maleExternalAccession"
type="text"
component={ TextField }
label={ t('client:model.AccessionPedigree.maleExternalAccession') }
helperText={ t(['client:model.AccessionPedigree.maleExternalAccession_hint', 'client:model._._hint']) }
/>
</Grid>
<DateAndFormatComponent
......@@ -50,28 +87,14 @@ function AccessionPedigreeFormInternal(props: IAccessionPedigreeFormInternal) {
helperText={ t(['client:model.AccessionPedigree.releasedDate_hint', 'client:model._._hint']) }
shrink
/>
{ [ 'maleAccession', 'maleExternalAccession',
'femaleAccession', 'femaleExternalAccession',
].map((property) => (
<Grid key={ property } item xs={ 12 } sm={ 6 }>
<Field
name={ property }
label={ t([ `client:model.AccessionPedigree.${property}` ]) }
component={ AccessionField }
type="text"
placeholder={ t([ `client:model.AccessionPedigree.${property}` ]) }
/>
</Grid>
)) }
<Grid item xs={ 12 } >
<Field
placeholder={ t([ 'client:model.AccessionPedigree.note', 'client:model._.note' ]) }
name="description"
type="text"
multiline
component={ TextField }
label={ t([ 'client:model.AccessionPedigree.note', 'client:model._.note' ]) }
helperText={ t(['client:model.AccessionPedigree.note_hint', 'client:model._.note_hint']) }
/>
</Grid>
</Grid>
......
......@@ -35,40 +35,38 @@ function AccessionQuarantineFormInternal(props: IAccessionQuarantineFormInternal
<Grid container spacing={ 4 }>
<Grid item xs={ 12 } sm={ 12 }>
<Field
placeholder={ t('client:model.AccessionQuarantine.custodialCooperator') }
name="custodialCooperator"
type="text"
component={ CooperatorAutocomplete }
label={ t('client:model.AccessionQuarantine.custodialCooperator') }
helperText={ t(['client:model.AccessionQuarantine.custodialCooperator_hint', 'client:model._._hint']) }
required
validate={ required }
/>
</Grid>
<Grid item xs={ 6 }>
<Field
placeholder={ t('client:model.AccessionQuarantine.progressStatusCode') }
name="progressStatusCode"
name="quarantineTypeCode"
type="text"
component={ CodeValueField }
codeGroup={ AccessionQuarantine.CodeGroup.progressStatusCode }
label={ t('client:model.AccessionQuarantine.progressStatusCode') }
codeGroup={ AccessionQuarantine.CodeGroup.quarantineTypeCode }
label={ t('client:model.AccessionQuarantine.quarantineTypeCode') }
helperText={ t(['client:model.AccessionQuarantine.quarantineTypeCode_hint', 'client:model._._hint']) }
required
validate={ required }
/>
</Grid>
<Grid item xs={ 6 }>
<Field
placeholder={ t('client:model.AccessionQuarantine.quarantineTypeCode') }
name="quarantineTypeCode"
name="progressStatusCode"
type="text"
component={ CodeValueField }
codeGroup={ AccessionQuarantine.CodeGroup.quarantineTypeCode }
label={ t('client:model.AccessionQuarantine.quarantineTypeCode') }
required
validate={ required }
codeGroup={ AccessionQuarantine.CodeGroup.progressStatusCode }
label={ t('client:model.AccessionQuarantine.progressStatusCode') }
helperText={ t(['client:model.AccessionQuarantine.progressStatusCode_hint', 'client:model._._hint']) }
/>
</Grid>
{ [ 'releasedDate', 'expectedReleaseDate',
'enteredDate', 'establishedDate',
].map((property) => (
{ [ 'enteredDate', 'establishedDate', 'expectedReleaseDate', 'releasedDate' ].map((property) => (
<Grid key={ property } item xs={ 12 } sm={ 6 }>
<Field
name={ property }
......@@ -76,18 +74,18 @@ function AccessionQuarantineFormInternal(props: IAccessionQuarantineFormInternal
component={ DateField }
type="date"
shrink
placeholder={ t([ `client:model.AccessionQuarantine.${property}` ]) }
helperText={ t([`client:model.AccessionQuarantine.${property}_hint`, 'client:model._._hint']) }
/>
</Grid>
)) }
<Grid item xs={ 12 } >
<Field
placeholder={ t([ 'client:model.AccessionQuarantine.note', 'client:model._.note' ]) }
name="note"
type="text"
multiline
component={ TextField }
label={ t([ 'client:model.AccessionQuarantine.note', 'client:model._.note' ]) }
helperText={ t(['client:model.AccessionQuarantine.note_hint', 'client:model._.note_hint']) }
/>
</Grid>
</Grid>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment