@voplus/morpho-workspace 1.0.0-dev70 → 1.0.0-dev72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +4 -0
- package/es/components/AvatarList/index.js +26 -20
- package/es/components/AvatarList/index.js.map +1 -1
- package/es/components/AvatarList/index.less +15 -26
- package/es/components/AvatarList/state.d.ts +2 -0
- package/es/components/AvatarList/state.js +5 -1
- package/es/components/AvatarList/state.js.map +1 -1
- package/es/components/ToolBar/index.js +27 -20
- package/es/components/ToolBar/index.js.map +1 -1
- package/es/components/ToolBar/state.d.ts +9 -0
- package/es/components/ToolBar/state.js +23 -0
- package/es/components/ToolBar/state.js.map +1 -0
- package/es/components/VersionsModal/index.d.ts +5 -0
- package/es/components/VersionsModal/index.js +20 -0
- package/es/components/VersionsModal/index.js.map +1 -0
- package/es/components/VersionsModal/index.less +19 -0
- package/es/components/VersionsModal/state.d.ts +4 -0
- package/es/components/VersionsModal/state.js +12 -0
- package/es/components/VersionsModal/state.js.map +1 -0
- package/es/data/meeting/types.d.ts +1 -0
- package/es/data/task/types.d.ts +2 -2
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.js +7 -7
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.js +23 -40
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/state.d.ts +10 -2
- package/es/modules/meeting/components/AgendaList/AgendaItem/state.js +25 -6
- package/es/modules/meeting/components/AgendaList/AgendaItem/state.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/index.js +7 -9
- package/es/modules/meeting/components/AgendaList/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/state.d.ts +2 -2
- package/es/modules/meeting/components/AgendaList/state.js.map +1 -1
- package/es/modules/meeting/components/MeetingDescription/index.js +4 -4
- package/es/modules/meeting/components/MeetingDescription/index.js.map +1 -1
- package/es/modules/meeting/pages/MeetingTabView/index.js +13 -10
- package/es/modules/meeting/pages/MeetingTabView/index.js.map +1 -1
- package/es/modules/tasks/components/SubTaskList/index.js +26 -40
- package/es/modules/tasks/components/SubTaskList/index.js.map +1 -1
- package/es/modules/tasks/components/SubTaskList/state.d.ts +0 -2
- package/es/modules/tasks/components/SubTaskList/state.js +1 -1
- package/es/modules/tasks/components/SubTaskList/state.js.map +1 -1
- package/es/modules/tasks/components/TaskHeader/index.d.ts +10 -7
- package/es/modules/tasks/components/TaskHeader/index.js +35 -43
- package/es/modules/tasks/components/TaskHeader/index.js.map +1 -1
- package/es/modules/tasks/components/TaskHeader/index.less +47 -2
- package/es/modules/tasks/components/TaskItem/SubTaskItem.js +15 -27
- package/es/modules/tasks/components/TaskItem/SubTaskItem.js.map +1 -1
- package/es/modules/tasks/components/TaskItem/state.d.ts +6 -8
- package/es/modules/tasks/components/TaskItem/state.js +37 -43
- package/es/modules/tasks/components/TaskItem/state.js.map +1 -1
- package/es/modules/tasks/components/TaskItem/subTaskItem.less +4 -2
- package/es/modules/tasks/components/TaskPropertiesView/index.js +4 -7
- package/es/modules/tasks/components/TaskPropertiesView/index.js.map +1 -1
- package/es/modules/tasks/components/TaskTimeBox/index.d.ts +16 -0
- package/es/modules/tasks/components/TaskTimeBox/index.js +62 -0
- package/es/modules/tasks/components/TaskTimeBox/index.js.map +1 -0
- package/es/modules/tasks/components/TaskTimeBox/index.less +25 -0
- package/es/modules/tasks/components/TaskTimeBox/state.d.ts +25 -0
- package/es/modules/tasks/components/TaskTimeBox/state.js +76 -0
- package/es/modules/tasks/components/TaskTimeBox/state.js.map +1 -0
- package/es/modules/tasks/pages/TaskTabView/index.js +5 -7
- package/es/modules/tasks/pages/TaskTabView/index.js.map +1 -1
- package/package.json +2 -1
- package/es/components/AvatarList/AvatarMenu.d.ts +0 -0
- package/es/components/AvatarList/AvatarMenu.js +0 -1
- package/es/components/AvatarList/AvatarMenu.js.map +0 -1
- package/es/modules/tasks/components/TaskItem/DetailsTaskItem.d.ts +0 -13
- package/es/modules/tasks/components/TaskItem/DetailsTaskItem.js +0 -53
- package/es/modules/tasks/components/TaskItem/DetailsTaskItem.js.map +0 -1
- package/es/modules/tasks/components/TaskItem/TaskItem.d.ts +0 -15
- package/es/modules/tasks/components/TaskItem/TaskItem.js +0 -180
- package/es/modules/tasks/components/TaskItem/TaskItem.js.map +0 -1
- package/es/modules/tasks/components/TaskItem/detailsTaskItem.less +0 -51
- package/es/modules/tasks/components/TaskItem/index.d.ts +0 -5
- package/es/modules/tasks/components/TaskItem/index.js +0 -6
- package/es/modules/tasks/components/TaskItem/index.js.map +0 -1
- package/es/modules/tasks/components/TaskItem/index.less +0 -182
@@ -1,10 +1,13 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import "./index.less";
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
import { TaskItemProps } from "../TaskItem/state";
|
4
|
+
declare const TaskHeader: {
|
5
|
+
(props: TaskItemProps): JSX.Element;
|
6
|
+
defaultProps: {
|
7
|
+
/** includes: path,tags,task-number-reports*/
|
8
|
+
includes: string;
|
9
|
+
/** reload of task */
|
10
|
+
reload: boolean;
|
11
|
+
};
|
12
|
+
};
|
10
13
|
export default TaskHeader;
|
@@ -1,51 +1,43 @@
|
|
1
|
+
import "./index.less";
|
1
2
|
import React, { useState } from "react";
|
3
|
+
import { State } from "../TaskItem/state";
|
4
|
+
import { useTask, useTaskStore } from "../../../../data/task";
|
5
|
+
import AvatarList from "../../../../components/AvatarList";
|
6
|
+
import DocumentStatusLabel from "../../../../controls/DocumentStatusLabel";
|
7
|
+
import FlagIcon from "../../../../controls/FlagIcon";
|
8
|
+
import IconNumebers from "../../../../controls/IconNumbers";
|
9
|
+
import { InlineEdit } from "@voplus/morpho-ui";
|
2
10
|
import { Skeleton } from "@voplus/antd";
|
3
|
-
import { useDocumentStore } from "@voplus/morpho-document";
|
4
|
-
import ToolBar from "../../../../components/ToolBar";
|
5
|
-
import TaskItem from "../TaskItem";
|
6
11
|
import TagView from "@voplus/morpho-document/es/components/TagView";
|
7
|
-
import
|
12
|
+
import TaskTimeBox from "../TaskTimeBox";
|
13
|
+
import ToolBar from "../../../../components/ToolBar";
|
8
14
|
import { useObserver } from "mobx-react-lite";
|
9
|
-
import { useTaskStore } from "../../../../data/task";
|
10
|
-
import { useTask } from "../../../../data/task/hooks";
|
11
|
-
import { FileStore } from "@voplus/morpho-document/es/data/FileStore/FileContext";
|
12
|
-
import "./index.less";
|
13
15
|
const TaskHeader = (props) => {
|
14
|
-
const
|
15
|
-
const
|
16
|
-
const
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
props.onChangeReadonly(false);
|
40
|
-
};
|
41
|
-
return useObserver(() => (React.createElement("div", { className: "task-detail_header" },
|
42
|
-
React.createElement(Skeleton, { loading: !task.loaded, active: true },
|
43
|
-
React.createElement(TaskItem, { type: "detail", id: task.id, includes: "path,tags" }),
|
44
|
-
React.createElement("div", { style: { maxWidth: "40%", textAlign: "right" } },
|
45
|
-
React.createElement(ToolBar, { id: id, reload: true, size: "small", timer: true, url: !!onExpand ? "" : `/tasks/${id}`, expand: !!onExpand, del: !readonly, move: !readonly, lock: task.status === "Draft" || task.status === "Normal", unlock: task.status === "Readonly", onDelete: onItemDelete, onMove: onMove, onPaste: () => store.onPaste(() => {
|
46
|
-
tasks.move(store.moveIds, task.id);
|
47
|
-
}), onLock: onLock, onUnlock: onUnlock, onReLoad: onReLoad, onExpand: onExpand }),
|
48
|
-
React.createElement(TagView, { id: id, tags: task.tags, editable: !readonly }))))));
|
16
|
+
const { id, includes, onExpand, onReload } = props;
|
17
|
+
const taskStore = useTaskStore();
|
18
|
+
const [state] = useState(new State(taskStore));
|
19
|
+
state.task = useTask(id, { reload: true, includes });
|
20
|
+
const { taskNumbers, incompleteTaskNumbers, documents, comments, members } = state.task;
|
21
|
+
return useObserver(() => (React.createElement("div", { className: "detail-task-item" }, !state.task.loading ? (React.createElement(React.Fragment, null,
|
22
|
+
React.createElement("div", null,
|
23
|
+
React.createElement("div", { className: "task-header" },
|
24
|
+
React.createElement(FlagIcon, { id: id, flag: state.task.flag, className: "task-flag", editable: !state.readonly }),
|
25
|
+
React.createElement(InlineEdit, { editable: state.task.taskStatus !== "Done" && !state.readonly, defaultValue: state.task.name, content: v => React.createElement("div", { className: "task-item-name" }, v.store.value), onSave: (v) => (v ? state.onEdit({ Name: v }) : null) })),
|
26
|
+
React.createElement("div", { className: "file-num" },
|
27
|
+
React.createElement(TaskTimeBox, { id: id, estimatedHours: state.task.estimatedHours || 0, schedule: [state.task.startDate, state.task.dueDate], editable: !state.readonly })),
|
28
|
+
React.createElement("div", { className: "file-num" },
|
29
|
+
React.createElement(IconNumebers, { taskNumbers: taskNumbers, incompleteTaskNumbers: incompleteTaskNumbers, documents: documents, comments: comments, memberNumbers: members ? members.length : 0 }),
|
30
|
+
React.createElement(DocumentStatusLabel, { status: state.task.taskStatus, editable: state.task.taskStatus !== "NotAssigned" || !state.readonly, onChange: TaskStatus => state.onEdit({ TaskStatus }), className: "margin-left-30" })),
|
31
|
+
React.createElement(AvatarList, { editable: !state.readonly, list: state.task.members, onChange: ids => state.onEdit({ MemberIds: ids }) })),
|
32
|
+
React.createElement("div", { className: "toolbar-content" },
|
33
|
+
React.createElement(ToolBar, { id: id, reload: true, size: "small", timer: true, url: onExpand ? "" : `/tasks/${id}`, expand: !!onExpand, del: !state.readonly, move: !state.readonly, lock: state.task.status === "Draft" || state.task.status === "Normal", unlock: state.task.status === "Readonly", onDelete: state.onDelete, onMove: state.onMove, onPaste: state.onPaste, onLock: () => state.onEdit({ Status: "Readonly" }), onUnlock: () => state.onEdit({ Status: "Normal" }), onReLoad: onReload, onExpand: onExpand }),
|
34
|
+
React.createElement(TagView, { id: id, tags: state.task.tags, editable: !state.readonly })))) : (React.createElement(Skeleton, { active: true })))));
|
35
|
+
};
|
36
|
+
TaskHeader.defaultProps = {
|
37
|
+
/** includes: path,tags,task-number-reports*/
|
38
|
+
includes: "tags,task-number-reports",
|
39
|
+
/** reload of task */
|
40
|
+
reload: false
|
49
41
|
};
|
50
42
|
export default TaskHeader;
|
51
43
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskHeader/index.tsx"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,51 @@
|
|
1
|
+
@import "~@voplus/antd/es/style/themes/default.less";
|
2
|
+
@import "../../../../style/common.less";
|
1
3
|
:global {
|
2
|
-
.task-
|
4
|
+
.detail-task-item {
|
3
5
|
display: flex;
|
4
|
-
|
6
|
+
flex: 1;
|
7
|
+
justify-content: space-between;
|
8
|
+
padding: 10px 0;
|
9
|
+
margin: 0 20px;
|
10
|
+
> div {
|
11
|
+
flex: 1;
|
12
|
+
}
|
13
|
+
.task-header {
|
14
|
+
display: flex;
|
15
|
+
align-items: center;
|
16
|
+
padding-bottom: 5px;
|
17
|
+
.task-flag {
|
18
|
+
width: 25px;
|
19
|
+
}
|
20
|
+
.morpho-inline-edit {
|
21
|
+
flex: 1;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
.task-item-name {
|
25
|
+
color: #000;
|
26
|
+
font-size: 15px;
|
27
|
+
font-weight: 500;
|
28
|
+
&.task-item-name_done {
|
29
|
+
color: #a8a8a8;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
.file-num {
|
33
|
+
color: #444;
|
34
|
+
font-size: 13px;
|
35
|
+
padding-bottom: 5px;
|
36
|
+
// > span + span {
|
37
|
+
// margin-left: 12px;
|
38
|
+
// }
|
39
|
+
.svg-inline--fa {
|
40
|
+
margin-right: 5px;
|
41
|
+
}
|
42
|
+
.box {
|
43
|
+
margin: 0 30px 0 12px;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
.toolbar-content {
|
47
|
+
max-width: 40%;
|
48
|
+
text-align: right;
|
49
|
+
}
|
5
50
|
}
|
6
51
|
}
|
@@ -1,20 +1,19 @@
|
|
1
1
|
import "./subTaskItem.less";
|
2
|
-
import { Button, Checkbox,
|
2
|
+
import { Button, Checkbox, Input } from "@voplus/antd";
|
3
3
|
import React, { useState } from "react";
|
4
4
|
import { State } from "./state";
|
5
|
-
import { faBars, faSave,
|
5
|
+
import { faBars, faSave, faUndo } from "@fortawesome/pro-light-svg-icons";
|
6
6
|
import { useTask, useTaskStore } from "../../../../data/task";
|
7
7
|
import AvatarList from "../../../../components/AvatarList";
|
8
8
|
import DocumentStatusLabel from "../../../../controls/DocumentStatusLabel";
|
9
9
|
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
10
10
|
import FlagIcon from "../../../../controls/FlagIcon";
|
11
11
|
import IconNumebers from "../../../../controls/IconNumbers";
|
12
|
+
import QuickViewDialog from "@voplus/morpho-document/es/components/QuickViewDialog";
|
12
13
|
import TagView from "@voplus/morpho-document/es/components/TagView";
|
13
|
-
import
|
14
|
+
import TaskTimeBox from "../TaskTimeBox";
|
14
15
|
import ToolBar from "../../../../components/ToolBar";
|
15
16
|
import classnames from "classnames";
|
16
|
-
import moment from "moment";
|
17
|
-
import { toJS } from "mobx";
|
18
17
|
import { useObserver } from "mobx-react-lite";
|
19
18
|
const SubTaskItem = (props) => {
|
20
19
|
const { id, multiple, reload, connectDragSource } = props;
|
@@ -23,7 +22,7 @@ const SubTaskItem = (props) => {
|
|
23
22
|
state.task = useTask(id, { reload: !!reload, includes: "tags,task-number-reports" });
|
24
23
|
const { taskNumbers, incompleteTaskNumbers, documents, comments, members } = state.task;
|
25
24
|
return useObserver(() => (React.createElement(React.Fragment, null,
|
26
|
-
React.createElement("div", { className: "sub-task-item", onMouseLeave: () => (state.isHover = false) },
|
25
|
+
React.createElement("div", { className: "sub-task-item", onMouseLeave: () => (state.isHover = false) },
|
27
26
|
React.createElement("div", { className: classnames("sub-task-item_box", { "sub-task-item_hover": state.isHover }), onMouseOver: () => (state.isHover = !multiple && !state.editable) },
|
28
27
|
React.createElement("div", null,
|
29
28
|
React.createElement("div", { className: "task-header" },
|
@@ -34,34 +33,23 @@ const SubTaskItem = (props) => {
|
|
34
33
|
!multiple ? (connectDragSource &&
|
35
34
|
connectDragSource(React.createElement("span", { className: classnames("task-move", { show: state.editable }) }, React.createElement(FAIcon, { icon: faBars })))) : (React.createElement("span", { className: "task-move" })),
|
36
35
|
React.createElement("div", null,
|
37
|
-
React.createElement("p", null,
|
38
|
-
|
39
|
-
|
40
|
-
React.createElement(FAIcon, { icon: faStopwatch }),
|
41
|
-
state.startDate ? (React.createElement(React.Fragment, null, moment(state.startDate).format("DD MMM YYYY") +
|
42
|
-
"~" +
|
43
|
-
moment(state.dueDate).format("DD MMM YYYY"))) : ("Add Task Time"),
|
44
|
-
React.createElement("span", { className: "padding-left-20" }, moment(state.startDate).from(moment(state.dueDate), true)))) : ("")),
|
36
|
+
React.createElement("p", null,
|
37
|
+
React.createElement(TaskTimeBox, { id: id, estimatedHours: state.task.estimatedHours || 0, schedule: [state.task.startDate, state.task.dueDate], editable: !state.readonly &&
|
38
|
+
!!(state.editable || state.task.startDate || state.task.estimatedHours), className: "task-time-box" })),
|
45
39
|
React.createElement("p", null,
|
46
40
|
React.createElement(IconNumebers, { taskNumbers: taskNumbers, incompleteTaskNumbers: incompleteTaskNumbers, documents: documents, comments: comments, memberNumbers: members ? members.length : 0 }))))),
|
47
|
-
React.createElement(AvatarList, { num: 3, multiple: state.editable, list: [...(state.task.members || []), ...state.inheritedMembers], editable: state.editable, onChange: (ids) =>
|
41
|
+
React.createElement(AvatarList, { num: 3, multiple: state.editable, list: [...(state.task.members || []), ...state.inheritedMembers], editable: state.editable, onChange: (ids) => {
|
42
|
+
state.ids = ids;
|
43
|
+
console.log(ids, "ids");
|
44
|
+
}, className: "box" })),
|
48
45
|
state.editable ? (React.createElement("div", null,
|
49
46
|
React.createElement(Button, { shape: "circle", onClick: () => (state.editable = false) },
|
50
47
|
React.createElement(FAIcon, { icon: faUndo })),
|
51
|
-
React.createElement(Button, { type: "primary", ghost: true, shape: "circle", className: "margin-left-10", onClick: () => state.save() },
|
48
|
+
React.createElement(Button, { type: "primary", ghost: true, shape: "circle", disabled: !state.hasChanges, loading: state.loading, className: "margin-left-10", onClick: () => state.save() },
|
52
49
|
React.createElement(FAIcon, { icon: faSave })))) : (React.createElement(DocumentStatusLabel, { status: state.task.taskStatus, editable: state.task.taskStatus !== "NotAssigned" || !state.readonly, onChange: TaskStatus => state.onEdit({ TaskStatus }), className: classnames({ hide: state.isHover }) })),
|
53
50
|
React.createElement("div", { className: classnames("hover-operate-icon", { show: state.isHover }) },
|
54
|
-
React.createElement(ToolBar, { size: "default", url: `/tasks/${props.id}`, del: false, move: !state.readonly, lock: state.task.status === "Draft" || state.task.status === "Normal", unlock: state.task.status === "Readonly", hoverEdit: !state.readonly, hoverDel: !state.readonly, onEdit: () => state.startEdit(), onDelete: state.onDelete, onMove: state.onMove, onPaste: state.onPaste, onLock: () => state.onEdit({ Status: "Readonly" }), onUnlock: () => state.onEdit({ Status: "Normal" }) })))
|
55
|
-
React.createElement(
|
56
|
-
function onChangeDate(dates) {
|
57
|
-
state.clockDate = toJS(dates);
|
58
|
-
}
|
59
|
-
/** */
|
60
|
-
function onOpenChange(open) {
|
61
|
-
if (state.task.startDate)
|
62
|
-
state.clockDate = toJS([state.task.startDate, state.task.dueDate]);
|
63
|
-
state.open = open;
|
64
|
-
}
|
51
|
+
React.createElement(ToolBar, { size: "default", url: `/tasks/${props.id}`, del: false, move: !state.readonly, lock: state.task.status === "Draft" || state.task.status === "Normal", unlock: state.task.status === "Readonly", hoverEdit: !state.readonly, hoverDel: !state.readonly, onEdit: () => state.startEdit(), onDelete: state.onDelete, onMove: state.onMove, onPaste: state.onPaste, onLock: () => state.onEdit({ Status: "Readonly" }), onUnlock: () => state.onEdit({ Status: "Normal" }) }))),
|
52
|
+
React.createElement(QuickViewDialog, { id: id, type: "task", visible: state.visibleQuickView, onCancel: () => (state.visibleQuickView = false) }))));
|
65
53
|
};
|
66
54
|
export default SubTaskItem;
|
67
55
|
//# sourceMappingURL=SubTaskItem.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SubTaskItem.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskItem/SubTaskItem.tsx"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,
|
1
|
+
{"version":3,"file":"SubTaskItem.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskItem/SubTaskItem.tsx"],"names":[],"mappings":"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"}
|
@@ -15,11 +15,14 @@ export declare class State {
|
|
15
15
|
ids: string[];
|
16
16
|
members: any[];
|
17
17
|
name: string;
|
18
|
-
|
18
|
+
/** Schedule of task */
|
19
|
+
schedule: any[];
|
20
|
+
/** EstimatedHours of task */
|
21
|
+
estimatedHours: number;
|
19
22
|
/** Edit model of task */
|
20
23
|
editable: boolean;
|
24
|
+
/** loading of save */
|
21
25
|
loading: boolean;
|
22
|
-
visible: boolean;
|
23
26
|
visibleQuickView: boolean;
|
24
27
|
modalType: string;
|
25
28
|
/** MouseOver of sub task */
|
@@ -36,11 +39,9 @@ export declare class State {
|
|
36
39
|
onEdit: (option: any) => Promise<void>;
|
37
40
|
/** task delete */
|
38
41
|
onDelete: () => Promise<void>;
|
39
|
-
/** */
|
40
42
|
onMove: () => void;
|
41
43
|
/** */
|
42
44
|
onPaste: () => void;
|
43
|
-
saveDate: (startDate: Date, dueDate: Date) => void;
|
44
45
|
get inheritedMembers(): {
|
45
46
|
disabled: boolean;
|
46
47
|
id: string;
|
@@ -48,8 +49,5 @@ export declare class State {
|
|
48
49
|
avatarUrl: string;
|
49
50
|
}[];
|
50
51
|
get readonly(): boolean;
|
51
|
-
|
52
|
-
get startDate(): any;
|
53
|
-
/** Due date of the task */
|
54
|
-
get dueDate(): any;
|
52
|
+
get hasChanges(): boolean | undefined;
|
55
53
|
}
|
@@ -1,18 +1,22 @@
|
|
1
1
|
import { __decorate } from "tslib";
|
2
|
-
import { message } from "@voplus/antd";
|
3
|
-
import { FileStore } from "@voplus/morpho-document/es/data/FileStore/FileContext";
|
4
2
|
import { action, computed, observable, toJS } from "mobx";
|
3
|
+
import { FileStore } from "@voplus/morpho-document/es/data/FileStore/FileContext";
|
4
|
+
import { isEqual } from "lodash-es";
|
5
|
+
import { message } from "@voplus/antd";
|
5
6
|
export class State {
|
6
7
|
constructor(taskStore) {
|
7
8
|
this.taskStore = taskStore;
|
8
9
|
this.ids = [];
|
9
10
|
this.members = [];
|
10
11
|
this.name = "";
|
11
|
-
|
12
|
+
/** Schedule of task */
|
13
|
+
this.schedule = [];
|
14
|
+
/** EstimatedHours of task */
|
15
|
+
this.estimatedHours = 0;
|
12
16
|
/** Edit model of task */
|
13
17
|
this.editable = false;
|
18
|
+
/** loading of save */
|
14
19
|
this.loading = false;
|
15
|
-
this.visible = false;
|
16
20
|
this.visibleQuickView = false;
|
17
21
|
this.modalType = "";
|
18
22
|
/** MouseOver of sub task */
|
@@ -32,22 +36,14 @@ export class State {
|
|
32
36
|
this.editable = true;
|
33
37
|
};
|
34
38
|
this.save = async () => {
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
//
|
43
|
-
if (!noChange) {
|
44
|
-
let params = { Name: this.name, MemberIds: this.ids };
|
45
|
-
if (this.startDate)
|
46
|
-
params = { ...params, StartDate: this.startDate, DueDate: this.dueDate };
|
47
|
-
this.loading = true;
|
48
|
-
await this.taskStore.edit(this.task.id, params);
|
49
|
-
this.loading = false;
|
50
|
-
}
|
39
|
+
const params = { Name: this.name, MemberIds: this.ids };
|
40
|
+
// if (this.estimatedHours) params = { ...params, EstimatedHours: this.estimatedHours };
|
41
|
+
// if (this.schedule[0])
|
42
|
+
// params = { ...params, StartDate: this.schedule[0], DueDate: this.schedule[1] };
|
43
|
+
this.loading = true;
|
44
|
+
await this.taskStore.edit(this.task.id, params);
|
45
|
+
this.loading = false;
|
46
|
+
// }
|
51
47
|
this.editable = false;
|
52
48
|
};
|
53
49
|
/** task edit */
|
@@ -58,7 +54,6 @@ export class State {
|
|
58
54
|
this.onDelete = async () => {
|
59
55
|
await this.taskStore.delete([this.task.id], { DeleteChilds: true });
|
60
56
|
};
|
61
|
-
/** */
|
62
57
|
this.onMove = () => {
|
63
58
|
this.store.onMove([this.task.id]);
|
64
59
|
};
|
@@ -71,12 +66,6 @@ export class State {
|
|
71
66
|
});
|
72
67
|
// state.reload = true;
|
73
68
|
};
|
74
|
-
this.saveDate = (startDate, dueDate) => {
|
75
|
-
this.taskStore.edit(this.task.id, {
|
76
|
-
StartDate: startDate,
|
77
|
-
DueDate: dueDate
|
78
|
-
});
|
79
|
-
};
|
80
69
|
}
|
81
70
|
get inheritedMembers() {
|
82
71
|
return (this.task.inheritedMembers || [])
|
@@ -89,13 +78,21 @@ export class State {
|
|
89
78
|
get readonly() {
|
90
79
|
return this.task.status === "Readonly";
|
91
80
|
}
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
81
|
+
get hasChanges() {
|
82
|
+
if (!this.name)
|
83
|
+
return;
|
84
|
+
const ids = toJS([...(this.task.members || []), ...this.inheritedMembers].map(({ id }) => id));
|
85
|
+
const { name, startDate, dueDate, estimatedHours } = this.task;
|
86
|
+
const originalData = { name, ids };
|
87
|
+
const modifiedData = {
|
88
|
+
name: this.name.trim(),
|
89
|
+
ids: this.ids
|
90
|
+
// startDate: toJS(this.schedule)[0],
|
91
|
+
// dueDate: toJS(this.schedule)[1],
|
92
|
+
// estimatedHours: this.estimatedHours || estimatedHours
|
93
|
+
};
|
94
|
+
// console.log(originalData, modifiedData, isEqual(originalData, modifiedData), "4444");
|
95
|
+
return !isEqual(originalData, modifiedData);
|
99
96
|
}
|
100
97
|
}
|
101
98
|
__decorate([
|
@@ -112,16 +109,16 @@ __decorate([
|
|
112
109
|
], State.prototype, "name", void 0);
|
113
110
|
__decorate([
|
114
111
|
observable
|
115
|
-
], State.prototype, "
|
112
|
+
], State.prototype, "schedule", void 0);
|
116
113
|
__decorate([
|
117
114
|
observable
|
118
|
-
], State.prototype, "
|
115
|
+
], State.prototype, "estimatedHours", void 0);
|
119
116
|
__decorate([
|
120
117
|
observable
|
121
|
-
], State.prototype, "
|
118
|
+
], State.prototype, "editable", void 0);
|
122
119
|
__decorate([
|
123
120
|
observable
|
124
|
-
], State.prototype, "
|
121
|
+
], State.prototype, "loading", void 0);
|
125
122
|
__decorate([
|
126
123
|
observable
|
127
124
|
], State.prototype, "visibleQuickView", void 0);
|
@@ -154,7 +151,7 @@ __decorate([
|
|
154
151
|
], State.prototype, "onDelete", void 0);
|
155
152
|
__decorate([
|
156
153
|
action
|
157
|
-
], State.prototype, "
|
154
|
+
], State.prototype, "onMove", void 0);
|
158
155
|
__decorate([
|
159
156
|
computed
|
160
157
|
], State.prototype, "inheritedMembers", null);
|
@@ -163,8 +160,5 @@ __decorate([
|
|
163
160
|
], State.prototype, "readonly", null);
|
164
161
|
__decorate([
|
165
162
|
computed
|
166
|
-
], State.prototype, "
|
167
|
-
__decorate([
|
168
|
-
computed
|
169
|
-
], State.prototype, "dueDate", null);
|
163
|
+
], State.prototype, "hasChanges", null);
|
170
164
|
//# sourceMappingURL=state.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskItem/state.ts"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskItem/state.ts"],"names":[],"mappings":"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"}
|
@@ -64,7 +64,8 @@
|
|
64
64
|
.padding-left-25 {
|
65
65
|
padding-left: 25px;
|
66
66
|
}
|
67
|
-
.tag-view
|
67
|
+
.tag-view,
|
68
|
+
.task-time-box {
|
68
69
|
position: relative;
|
69
70
|
z-index: 100;
|
70
71
|
.ant-tag {
|
@@ -92,7 +93,8 @@
|
|
92
93
|
background-color: #fff;
|
93
94
|
z-index: 99;
|
94
95
|
}
|
95
|
-
.task-item-name
|
96
|
+
.task-item-name,
|
97
|
+
.task-time-box {
|
96
98
|
opacity: 0.5;
|
97
99
|
}
|
98
100
|
.task-move {
|
@@ -1,34 +1,31 @@
|
|
1
1
|
import "./index.less";
|
2
2
|
import React, { useState } from "react";
|
3
3
|
import { useTask, useTaskStore } from "../../../../data/task";
|
4
|
-
import DetailsTaskItem from "../TaskItem/DetailsTaskItem";
|
5
4
|
import DocumentTabs from "@voplus/morpho-document/es/components/DocumentTabs";
|
6
5
|
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
7
6
|
import RichTextEditor from "@voplus/morpho-ui/es/controls/RichTextEditor";
|
8
7
|
import Scrollbars from "react-custom-scrollbars";
|
9
8
|
import { Skeleton } from "@voplus/antd";
|
10
9
|
import SubTaskList from "../SubTaskList";
|
10
|
+
import TaskHeader from "../TaskHeader";
|
11
11
|
import { faEdit } from "@fortawesome/pro-light-svg-icons";
|
12
12
|
import { useObserver } from "mobx-react-lite";
|
13
13
|
const TaskPropertiesView = (props) => {
|
14
14
|
const id = props.id;
|
15
15
|
const task = useTask(id, { reload: false, includes: "tags,task-number-reports" });
|
16
16
|
const taskStore = useTaskStore();
|
17
|
-
const readonly = task.status === "Readonly" ? true : false;
|
18
17
|
const [loaded, setLoaded] = useState(true);
|
19
|
-
const [reload, setReload] = useState(true);
|
20
18
|
return useObserver(() => (React.createElement("div", { className: "module-detail-view" }, loaded && (React.createElement(React.Fragment, null,
|
21
|
-
React.createElement(
|
19
|
+
React.createElement(TaskHeader, { id: id, onReload: onReload }),
|
22
20
|
React.createElement(DocumentTabs, { id: id, exclude: ["Task"], details: React.createElement("div", { className: "task-properties-view" },
|
23
21
|
React.createElement(Scrollbars, { autoHide: true },
|
24
|
-
React.createElement("div", { className: "task-description" }, task.loading ? (React.createElement(Skeleton, { active: true })) : (React.createElement(RichTextEditor, { readOnly:
|
22
|
+
React.createElement("div", { className: "task-description" }, task.loading ? (React.createElement(Skeleton, { active: true })) : (React.createElement(RichTextEditor, { readOnly: task.status === "Readonly", editable: false, defaultValue: id, content: task.description || "", placeholder: task.status === "Readonly" ? ("No description") : (React.createElement("span", null,
|
25
23
|
React.createElement(FAIcon, { icon: faEdit }),
|
26
24
|
"Add Description")), onSave: v => taskStore.edit(task.id, { Description: v }) }))),
|
27
|
-
React.createElement(SubTaskList, { parentId: id, readonly:
|
25
|
+
React.createElement(SubTaskList, { parentId: id, readonly: task.status === "Readonly" }))) }))))));
|
28
26
|
/** reload data */
|
29
27
|
function onReload() {
|
30
28
|
setLoaded(false);
|
31
|
-
setReload(true);
|
32
29
|
setTimeout(() => {
|
33
30
|
setLoaded(true);
|
34
31
|
}, 100);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskPropertiesView/index.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskPropertiesView/index.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,YAAY,MAAM,oDAAoD,CAAC;AAC9E,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,cAAc,MAAM,8CAA8C,CAAC;AAC1E,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,kBAAkB,GAAG,CAAC,KAAwC,EAAE,EAAE;IACvE,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAClF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,CACxB,6BAAK,SAAS,EAAC,oBAAoB,IACjC,MAAM,IAAI,CACV,oBAAC,KAAK,CAAC,QAAQ;QACd,oBAAC,UAAU,IAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAI;QAC1C,oBAAC,YAAY,IACZ,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,CAAC,MAAM,CAAC,EACjB,OAAO,EACN,6BAAK,SAAS,EAAC,sBAAsB;gBACpC,oBAAC,UAAU,IAAC,QAAQ;oBACnB,6BAAK,SAAS,EAAC,kBAAkB,IAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACf,oBAAC,QAAQ,IAAC,MAAM,SAAG,CACnB,CAAC,CAAC,CAAC,CACH,oBAAC,cAAc,IACd,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,UAAU,EACpC,QAAQ,EAAE,KAAK,EACf,YAAY,EAAE,EAAE,EAChB,OAAO,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,EAC/B,WAAW,EACV,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAC5B,gBAAgB,CAChB,CAAC,CAAC,CAAC,CACH;4BACC,oBAAC,MAAM,IAAC,IAAI,EAAE,MAAM,GAAI;8CAElB,CACP,EAEF,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,GACvD,CACF,CACI;oBACN,oBAAC,WAAW,IAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,UAAU,GAAI,CACvD,CACR,GAEN,CACc,CACjB,CACI,CACN,CAAC,CAAC;IACH,kBAAkB;IAClB,SAAS,QAAQ;QAChB,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE;YACf,SAAS,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;AACF,CAAC,CAAC;AACF,eAAe,kBAAkB,CAAC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import "./index.less";
|
3
|
+
declare const TaskTimeBox: {
|
4
|
+
(props: {
|
5
|
+
id: string;
|
6
|
+
estimatedHours?: number | undefined;
|
7
|
+
schedule?: any[] | undefined;
|
8
|
+
editable?: boolean | undefined;
|
9
|
+
className?: string | undefined;
|
10
|
+
}): JSX.Element;
|
11
|
+
defaultProps: {
|
12
|
+
editable: boolean;
|
13
|
+
autoSave: boolean;
|
14
|
+
};
|
15
|
+
};
|
16
|
+
export default TaskTimeBox;
|