Updated meteor; Modified the assignments byPerson page considerably to improve the workflow; Added an external id to sites; Added an import for students; Improved the students page.

This commit is contained in:
2023-06-16 11:52:48 -07:00
parent 9444cac85d
commit 3c76d5e6a0
15 changed files with 664 additions and 180 deletions

View File

@@ -42,6 +42,7 @@ const AssignmentsByAsset = () => {
//Dialog stuff.
const [openUnassignDialog, setOpenUnassignDialog] = useState(false)
const [unassignDialogEditConditionOnly, setUnassignDialogEditConditionOnly] = useState(false)
const [unassignCondition, setUnassignCondition] = useState(conditions[2])
const [unassignComment, setUnassignComment] = useState("")
const [unassignConditionDetails, setUnassignConditionDetails] = useState("")
@@ -71,8 +72,9 @@ const AssignmentsByAsset = () => {
// if(assetIdInput) assetIdInput.focus()
// })
const unassign = () => {
const unassign = (editConditionOnly) => {
// Open the dialog to get condition and comment.
setUnassignDialogEditConditionOnly(editConditionOnly)
setUnassignComment("")
setUnassignCondition(foundAsset.condition ? foundAsset.condition : conditions[2])
setUnassignConditionDetails(foundAsset.conditionDetails || "")
@@ -82,18 +84,26 @@ const AssignmentsByAsset = () => {
setOpenUnassignDialog(false)
if(unassign === true) {
// Call assets.unassign(assetId, comment, condition, conditionDetails, date)
Meteor.call('assets.unassign', foundAsset.assetId, unassignComment, unassignCondition, unassignConditionDetails, (err, result) => {
if(err) console.error(err)
else if(assetIdInput) assetIdInput.focus()
})
if(unassignDialogEditConditionOnly) {
Meteor.call('assets.updateCondition', unassignAsset._id, unassignCondition, unassignConditionDetails, (err, result) => {
if(err) console.error(err)
else if(assetIdInput) assetIdInput.focus()
})
}
else {
// Call assets.unassign(assetId, comment, condition, conditionDetails, date)
Meteor.call('assets.unassign', foundAsset.assetId, unassignComment, unassignCondition, unassignConditionDetails, (err, result) => {
if (err) console.error(err)
else if (assetIdInput) assetIdInput.focus()
})
}
}
}
return (
<>
<Dialog open={openUnassignDialog} onClose={unassignDialogClosed}>
<DialogTitle>Unassign Asset</DialogTitle>
<DialogTitle>{unassignDialogEditConditionOnly ? "Edit Condition" : "Unassign Asset"}</DialogTitle>
<DialogContent style={{display: 'flex', flexDirection: 'column'}}>
<div>
<TextField style={cssEditorField} select variant="standard" label="Condition" value={unassignCondition} onChange={(e)=>{setUnassignCondition(e.target.value)}}>
@@ -102,11 +112,11 @@ const AssignmentsByAsset = () => {
})}
</TextField>
</div>
<TextField style={{marginTop: '1rem',minWidth: '30rem'}} variant="standard" label="Comment" value={unassignComment} onChange={(e) => {setUnassignComment(e.target.value)}}/>
{!unassignDialogEditConditionOnly && <TextField style={{marginTop: '1rem',minWidth: '30rem'}} variant="standard" label="Comment" value={unassignComment} onChange={(e) => {setUnassignComment(e.target.value)}}/>}
<TextField style={{marginTop: '1rem',minWidth: '30rem'}} multiline rows={4} variant="outlined" label="Condition Details" value={unassignConditionDetails} onChange={(e) => {setUnassignConditionDetails(e.target.value)}}/>
</DialogContent>
<DialogActions>
<Button onClick={() => unassignDialogClosed(true)}>Unassign</Button>
<Button onClick={() => unassignDialogClosed(true)}>{unassignDialogEditConditionOnly ? "Save" : "Unassign"}</Button>
<Button onClick={() => unassignDialogClosed(false)}>Cancel</Button>
</DialogActions>
</Dialog>
@@ -123,7 +133,9 @@ const AssignmentsByAsset = () => {
<>
<div>Assigned on: {foundAsset.assignmentDate.toString()}</div>
<div>Assigned to: {foundAsset.assignee.firstName} {foundAsset.assignee.lastName} {foundAsset.assignee.grade && foundAsset.assignee.grade} (<Link to={"/search?email=" + encodeURIComponent(foundAsset.assignee.email)}>{foundAsset.assignee.email}</Link>)</div>
<Button variant="contained" color='secondary' className="button" onClick={()=>unassign()}>Unassign</Button>
<Button variant="contained" color='secondary' className="button" onClick={()=>unassign(false)}>Unassign</Button>
{" "}
<Button variant="contained" color='secondary' className="button" onClick={()=>unassign(true)}>Edit</Button>
</>
)}
</div>