скорректировала формат дат, убрала минуты во времени создания, в форме…

скорректировала формат дат, убрала минуты во времени создания, в форме добавления задачи сделала модалку для заголовка и описания, удалила поля автор и статус
parent 228d63a9
...@@ -3,30 +3,44 @@ import TableCell from "@mui/material/TableCell"; ...@@ -3,30 +3,44 @@ import TableCell from "@mui/material/TableCell";
import Input from "@mui/material/Input"; import Input from "@mui/material/Input";
import moment from "moment"; import moment from "moment";
const CustomTableCell = ({task, const CustomTableCell = ({
task,
name, name,
value, value,
value2, value2,
value3,
onChange, onChange,
onModalOpen, onModalOpen,
placeholder, placeholder,
user user,
}) => { }) => {
const styles = { width: "auto", height: "10px"}; const styles = placeholder ? { width: "100%" } : { width: "auto" };
const divStyle={display:"flex",justifyContent:"space-between", flexDirection:"column",fontSize:"12px"} const divStyle = {
const duration = moment.duration(moment(task.dateTimeTasks[0]?.dateTimeDue).diff(moment(task.dateTimeTasks[0]?.dateTimeStart))); display: "flex",
justifyContent: "space-between",
flexDirection: "column",
fontSize: "12px",
};
const duration = moment.duration(
moment(task?.dateTimeTasks[0]?.dateTimeDue).diff(
moment(task?.dateTimeTasks[0]?.dateTimeStart)
)
);
const hours = Math.round(duration.asHours()); const hours = Math.round(duration.asHours());
if (task) { if (task) {
return ( return (
<> <>
<TableCell <TableCell
onClick={(e) => (onModalOpen ? onModalOpen(e, task) : null)} onClick={(e) => (onModalOpen ? onModalOpen(e, task) : null)}
align="left" align="left"
style={styles} // style={styles}
> >
{task.isEditMode && onChange && name!=="author" && task.author.id===user.id ? ( {(task.isEditMode &&
onChange &&
name !== "author" &&
task.author?.id === user?.id) ||
placeholder ? (
<Input <Input
placeholder={placeholder} placeholder={placeholder}
value={value} value={value}
...@@ -34,16 +48,15 @@ const CustomTableCell = ({task, ...@@ -34,16 +48,15 @@ const CustomTableCell = ({task,
onChange={(e) => onChange(e, task)} onChange={(e) => onChange(e, task)}
style={styles} style={styles}
/> />
) : name!=="dateTimeStart" ? ( ) : name !== "dateTimeStart" ? (
<span>{value}</span> <span>{value}</span>
):( ) : (
<div style={divStyle}> <div style={divStyle}>
<span>{value}</span> <span>{value}</span>
<span>{value2}</span> <span>{value2}</span>
<span>часы:+{hours}</span> <span>часы:{hours}</span>
</div> </div>
) )}
}
</TableCell> </TableCell>
</> </>
); );
......
...@@ -9,10 +9,10 @@ export default function MaterialUIPickers(props) { ...@@ -9,10 +9,10 @@ export default function MaterialUIPickers(props) {
return ( return (
<LocalizationProvider <LocalizationProvider
dateAdapter={AdapterMoment} dateAdapter={AdapterMoment}
sx={{ width: "auto", fontSize: 5, fontWeight: "200" }} sx={{ width: "100%", fontSize: 5, fontWeight: "200" }}
> >
<DateTimePicker <DateTimePicker
inputFormat="DD-MM-YYYY hh:mm A" inputFormat="DD-MM-YY kk:mm A"
disabled={props.task.readOnly} disabled={props.task.readOnly}
renderInput={(params) => ( renderInput={(params) => (
<TextField <TextField
......
...@@ -19,29 +19,45 @@ import CustomTableCell from "./CustomTableCell"; ...@@ -19,29 +19,45 @@ import CustomTableCell from "./CustomTableCell";
import MaterialUIPickers from "./DateTimePicker/DateTimePicker"; import MaterialUIPickers from "./DateTimePicker/DateTimePicker";
import BasicSelect from "../UI/Select/Select"; import BasicSelect from "../UI/Select/Select";
import { addTask } from "../../store/actions/tasksActions"; import { addTask } from "../../store/actions/tasksActions";
import TaskModal from "./TaskModal/TaskModal";
export default function NewTaskForm({projects,setAddTaskForm,tasks}) { export default function NewTaskForm({
projects,
setAddTaskForm,
}) {
const dispatch = useDispatch(); const dispatch = useDispatch();
const user = useSelector((state) => state.users.user); const user = useSelector((state) => state.users.user);
const currentDateTime = new Date(); const currentDateTime = new Date();
const dateTime = moment(currentDateTime).utc().format(); const dateTime = moment(currentDateTime).utc().format();
const [task, setTask] = useState({ const [task, setTask] = useState({
id: 0, id: 0,
title: "", title: "",
description: "", description: "",
createdAt: dateTime, createdAt: dateTime,
dateTimeStart: null, dateTimeStart: null,
dateTimeDeadLine: null,
dateTimeTasks: [],
dateTimeDue: null, dateTimeDue: null,
project: projects[0], project: projects[0],
accomplish: "opened", accomplish: "opened",
priority: "B", priority: "B",
author: { id: user.id },
authorDisplayName: user.displayName, authorDisplayName: user.displayName,
executors: [], executors: [],
isEditMode: true, isEditMode: true,
}); });
const [modal, setModal] = useState(false);
const onModalOpen = (event, task) => {
event.stopPropagation();
setModal(true);
};
const handleClose = () => {
setModal(false);
};
const onChange = (e, task) => { const onChange = (e, task) => {
const value = e.target.value; const value = e.target.value;
const name = e.target.name; const name = e.target.name;
...@@ -78,8 +94,6 @@ export default function NewTaskForm({projects,setAddTaskForm,tasks}) { ...@@ -78,8 +94,6 @@ export default function NewTaskForm({projects,setAddTaskForm,tasks}) {
<TableContainer <TableContainer
style={{ style={{
backgroundColor: "#E8E8E8", backgroundColor: "#E8E8E8",
display: "flex",
alignItems: "center",
marginBottom: "2em", marginBottom: "2em",
}} }}
> >
...@@ -122,26 +136,17 @@ export default function NewTaskForm({projects,setAddTaskForm,tasks}) { ...@@ -122,26 +136,17 @@ export default function NewTaskForm({projects,setAddTaskForm,tasks}) {
value: moment(task.createdAt).format("DD-MM-YYYY hh:mm A"), value: moment(task.createdAt).format("DD-MM-YYYY hh:mm A"),
}} }}
/> />
<CustomTableCell <CustomTableCell
{...{ {...{
task, task,
name: "title", name: "title",
value: task.title, value: task.title,
onChange: onChange, onModalOpen,
placeholder: "Введите название задачи", user: user,
placeholder: "Кликните для ввода информации по задаче"
}} }}
/> />
<CustomTableCell
{...{
task,
name: "description",
value: task.description,
onChange: onChange,
placeholder: "Введите описание задачи",
}}
/>
<TableCell> <TableCell>
<BasicSelect <BasicSelect
items={projects.map((e) => ({ items={projects.map((e) => ({
...@@ -155,44 +160,22 @@ export default function NewTaskForm({projects,setAddTaskForm,tasks}) { ...@@ -155,44 +160,22 @@ export default function NewTaskForm({projects,setAddTaskForm,tasks}) {
/> />
</TableCell> </TableCell>
<CustomTableCell {/* <TableCell>
{...{
task,
name: "author",
value: user.displayName,
}}
/>
<TableCell>
<MaterialUIPickers <MaterialUIPickers
task={task} task={task}
name="dateTimeStart" name="dateTimeStart"
onChange={onDateChange} onChange={onDateChange}
/> />
</TableCell> </TableCell> */}
<TableCell> <TableCell>
<MaterialUIPickers <MaterialUIPickers
task={task} task={task}
name="dateTimeDue" name="dateTimeDeadLine"
onChange={onDateChange} onChange={onDateChange}
/> />
</TableCell> </TableCell>
<TableCell>
<BasicSelect
items={[
{ value: "opened", title: "opened" },
{ value: "done", title: "done" },
{ value: "failed", title: "failed" },
]}
task={task}
onChange={onChange}
name="accomplish"
value={task.accomplish}
/>
</TableCell>
<TableCell> <TableCell>
<Tooltip title="Добавить"> <Tooltip title="Добавить">
<IconButton size="large" onClick={handleAddTask}> <IconButton size="large" onClick={handleAddTask}>
...@@ -201,8 +184,16 @@ export default function NewTaskForm({projects,setAddTaskForm,tasks}) { ...@@ -201,8 +184,16 @@ export default function NewTaskForm({projects,setAddTaskForm,tasks}) {
</Tooltip> </Tooltip>
</TableCell> </TableCell>
</TableRow> </TableRow>
</TableBody> </TableBody>
</Table> </Table>
<TaskModal
task={task}
open={modal}
handleClose={handleClose}
onChange={onChange}
user={user}
/>
</TableContainer> </TableContainer>
<Divider /> <Divider />
</> </>
...@@ -234,43 +225,20 @@ export const header = [ ...@@ -234,43 +225,20 @@ export const header = [
disablePadding: false, disablePadding: false,
label: "Заголовок", label: "Заголовок",
}, },
{
id: "description",
numeric: false,
disablePadding: false,
label: "Описание",
},
{ {
id: "projectName", id: "projectName",
numeric: true, numeric: true,
disablePadding: false, disablePadding: false,
label: "Проект", label: "Проект",
}, },
{
id: "authorDisplayName",
numeric: false,
disablePadding: false,
label: "Автор",
},
{
id: "dateTimeStart",
numeric: true,
disablePadding: false,
label: "Дата начала",
},
{ {
id: "dateTimeDue", id: "dateTimeDue",
numeric: true, numeric: true,
disablePadding: false, disablePadding: false,
label: "Дата завершения", label: "Дедлайн",
},
{
id: "accomplish",
numeric: false,
disablePadding: false,
label: "Статус",
}, },
{ {
id: "add", id: "add",
numeric: false, numeric: false,
......
...@@ -16,6 +16,7 @@ const TaskModal = ({handleClose,open,task,onChange,user }) => { ...@@ -16,6 +16,7 @@ const TaskModal = ({handleClose,open,task,onChange,user }) => {
open={open} open={open}
> >
{task?.isEditMode && task.author.id===user.id ? ( {task?.isEditMode && task.author.id===user.id ? (
<div className="modal"> <div className="modal">
<Input <Input
label="название" label="название"
......
...@@ -110,7 +110,7 @@ useEffect(() => { ...@@ -110,7 +110,7 @@ useEffect(() => {
if (task.id === id) { if (task.id === id) {
return { return {
...task, ...task,
[property]: moment.parseZone(value, "DD/MM/YYYY", true).format(), [property]: moment.parseZone(value, "DD/MM/YY", true).format(),
}; };
} }
return task; return task;
...@@ -223,6 +223,7 @@ useEffect(() => { ...@@ -223,6 +223,7 @@ useEffect(() => {
}, []); }, []);
console.log(tasks) console.log(tasks)
if ( if (
tasks && tasks &&
tasks?.length > 0 && tasks?.length > 0 &&
...@@ -243,10 +244,9 @@ console.log(tasks) ...@@ -243,10 +244,9 @@ console.log(tasks)
{addTaskForm ? ( {addTaskForm ? (
<NewTaskForm <NewTaskForm
tasks={recievedTasks} projects={uniqueProjects}
projects={rawProjects}
setAddTaskForm={()=>setAddTaskForm(false)} setAddTaskForm={()=>setAddTaskForm(false)}
/> />
) : null} ) : null}
...@@ -304,7 +304,7 @@ console.log(tasks) ...@@ -304,7 +304,7 @@ console.log(tasks)
name: "createdAt", name: "createdAt",
value: moment(task.createdAt) value: moment(task.createdAt)
.utc() .utc()
.format("DD-MM-YYYY hh:mm A"), .format("DD-MM-YY"),
user:user user:user
}} }}
/> />
...@@ -379,13 +379,13 @@ console.log(tasks) ...@@ -379,13 +379,13 @@ console.log(tasks)
name: "dateTimeStart", name: "dateTimeStart",
value: moment(task.dateTimeTasks[0]?.dateTimeStart) value: moment(task.dateTimeTasks[0]?.dateTimeStart)
.utc() .utc()
.format("DD-MM-YYYY "), .format("DD-MM-YY "),
value2:moment(task.dateTimeTasks[0]?.dateTimeStart) value2:moment(task.dateTimeTasks[0]?.dateTimeStart)
.utc() .utc()
.format("hh:mm A")+"-"+ .format("kk:mm")+"-"+
moment(task.dateTimeTasks[0]?.dateTimeDue) moment(task.dateTimeTasks[0]?.dateTimeDue)
.utc() .utc()
.format("hh:mm A"), .format("kk:mm"),
user:user user:user
}}> }}>
</CustomTableCell> </CustomTableCell>
...@@ -419,7 +419,7 @@ console.log(tasks) ...@@ -419,7 +419,7 @@ console.log(tasks)
value: moment(task.dateTimeDeadLine value: moment(task.dateTimeDeadLine
) )
.utc() .utc()
.format("DD-MM-YYYY hh:mm A"), .format("DD-MM-YY kk:mm"),
user:user user:user
}} }}
/> />
......
Markdown is supported
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