diff --git a/src/components/Assignments/ShadowAssignmentPointsTable/ShadowAssignmentPointsTable.js b/src/components/Assignments/ShadowAssignmentPointsTable/ShadowAssignmentPointsTable.js index 178ba8585..61b65ce04 100644 --- a/src/components/Assignments/ShadowAssignmentPointsTable/ShadowAssignmentPointsTable.js +++ b/src/components/Assignments/ShadowAssignmentPointsTable/ShadowAssignmentPointsTable.js @@ -150,6 +150,7 @@ class ShadowAssignmentPointsTable extends Component { })} + diff --git a/src/components/forms/EditShadowAssignmentPointsForm/EditShadowAssignmentPointsForm.js b/src/components/forms/EditShadowAssignmentPointsForm/EditShadowAssignmentPointsForm.js index 19a506c06..733a952dd 100644 --- a/src/components/forms/EditShadowAssignmentPointsForm/EditShadowAssignmentPointsForm.js +++ b/src/components/forms/EditShadowAssignmentPointsForm/EditShadowAssignmentPointsForm.js @@ -2,8 +2,9 @@ import React from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import { reduxForm, Field } from 'redux-form'; -import { Form, FormGroup, Container, Row, Col } from 'react-bootstrap'; +import { Form, Container, Row, Col } from 'react-bootstrap'; import moment from 'moment'; +import { defaultMemoize } from 'reselect'; import SubmitButton from '../SubmitButton'; import { TextField, DatetimeField, NumericTextField } from '../Fields'; @@ -11,7 +12,7 @@ import Button, { TheButtonGroup } from '../../widgets/TheButton'; import Callout from '../../widgets/Callout'; import Icon, { RefreshIcon, DeleteIcon, SaveIcon } from '../../icons'; -export const getPointsFormInitialValues = (userPoints, awardeeId) => { +export const getPointsFormInitialValues = defaultMemoize((userPoints, awardeeId) => { return userPoints ? { pointsId: userPoints.id, @@ -27,7 +28,7 @@ export const getPointsFormInitialValues = (userPoints, awardeeId) => { awardedAt: moment().startOf('minute'), note: '', }; -}; +}); export const transformPointsFormSubmitData = ({ pointsId = null, awardedAt, ...formData }) => ({ pointsId, @@ -69,34 +70,21 @@ const EditShadowAssignmentPointsForm = ({ /> - - - - - - - -
- - } - /> - - - - -
+ } + append={ + + } + /> + {label} )} - this.onFocus()} - inputProps={{ - disabled, - className: classnames({ - 'form-control': true, - [styles.dirty]: dirty && !ignoreDirty && !error && !warning, - [styles.active]: active, - 'border-danger': error, - 'border-warning': !error && warning, - }), - }} - /> + + this.onFocus()} + inputProps={{ + disabled, + className: classnames({ + 'form-control': true, + [styles.dirty]: dirty && !ignoreDirty && !error && !warning, + [styles.active]: active, + 'border-danger': error, + 'border-warning': !error && warning, + }), + }} + /> + {prepend && {prepend}} + {append && {append}} + {error && {error}} {!error && warning && {warning}} @@ -87,6 +93,8 @@ DatetimeField.propTypes = { disabled: PropTypes.bool, ignoreDirty: PropTypes.bool, onlyDate: PropTypes.bool, + append: PropTypes.element, + prepend: PropTypes.element, }; export default withLinks(DatetimeField); diff --git a/src/containers/App/recodex.css b/src/containers/App/recodex.css index 1e7168026..ab1f028d4 100644 --- a/src/containers/App/recodex.css +++ b/src/containers/App/recodex.css @@ -230,8 +230,14 @@ table.table-hover td.clickable:hover, table.table-hover th.clickable:hover { /* - * AdminLTE Boxes + * AdminLTE Enhancements and Overrides */ + +/* fixing Datetime form input for input group appends and prepends */ +.input-group > .rdt { + flex: 1 1 auto; +} + @keyframes card-target { 0% { box-shadow: 0 0 0 0 rgba(255, 240, 96, 0);