directual-web-components-v2 3.11.322 → 3.11.324
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/dist/index.css +1 -0
- package/dist/index.js +66 -21
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +66 -21
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
package/dist/index.js
CHANGED
|
@@ -1829,7 +1829,9 @@ const dict = {
|
|
|
1829
1829
|
assignedToMe: "Assigned to me",
|
|
1830
1830
|
assignedTo: "Assigned to",
|
|
1831
1831
|
taskResolved: "Task is resolved",
|
|
1832
|
-
resolveTask: "Resolve task"
|
|
1832
|
+
resolveTask: "Resolve task",
|
|
1833
|
+
edit: "Edit",
|
|
1834
|
+
save: "Save"
|
|
1833
1835
|
},
|
|
1834
1836
|
sortField: 'Sort field',
|
|
1835
1837
|
error: 'Error',
|
|
@@ -2322,7 +2324,9 @@ const dict = {
|
|
|
2322
2324
|
assignedToMe: "Назначено на меня",
|
|
2323
2325
|
assignedTo: "Назначено на",
|
|
2324
2326
|
taskResolved: "Задача закрыта",
|
|
2325
|
-
resolveTask: "Закрыть задачу"
|
|
2327
|
+
resolveTask: "Закрыть задачу",
|
|
2328
|
+
edit: "Редактировать",
|
|
2329
|
+
save: "Сохранить"
|
|
2326
2330
|
},
|
|
2327
2331
|
success: 'Успех',
|
|
2328
2332
|
"auth": {
|
|
@@ -19939,31 +19943,23 @@ function FpsForm2(props) {
|
|
|
19939
19943
|
const newModel = _extends({}, flatternModel(_extends({}, gatherDefaults(), _$1__default.get(data, "data[0]"), convertedDates, convertedBools)));
|
|
19940
19944
|
if (!_$1__default.isEqual(newModel, model)) {
|
|
19941
19945
|
submitDebouncedRef.current.cancel();
|
|
19946
|
+
console.log('[SOCKET MODEL LOG] === МОДЕЛЬ ОБНОВЛЕНА СОКЕТОМ ===');
|
|
19947
|
+
console.log('[SOCKET MODEL LOG] Старая модель:', JSON.parse(JSON.stringify(model)));
|
|
19948
|
+
console.log('[SOCKET MODEL LOG] Новая модель:', JSON.parse(JSON.stringify(newModel)));
|
|
19942
19949
|
isSocketUpdateRef.current = true;
|
|
19943
19950
|
setModel(newModel);
|
|
19944
19951
|
setOriginalModel(newModel);
|
|
19945
19952
|
}
|
|
19946
19953
|
setOriginalExtendedModel(newExtendedModel);
|
|
19947
|
-
console.log('[SOCKET/RESTORE LOG] === НАЧАЛО СОКЕТНОГО ОБНОВЛЕНИЯ ===');
|
|
19948
|
-
console.log('[SOCKET/RESTORE LOG] текущий state ДО перезаписи:', JSON.parse(JSON.stringify(state)));
|
|
19949
|
-
console.log('[SOCKET/RESTORE LOG] saveSate перед templateState:', JSON.parse(JSON.stringify(saveSate)));
|
|
19950
19954
|
const templatedState = templateState(_$1__default.get(data, "params.state"), newModel);
|
|
19951
|
-
console.log('[SOCKET/RESTORE LOG] params.state:', _$1__default.get(data, "params.state"));
|
|
19952
|
-
console.log('[SOCKET/RESTORE LOG] templateState вернул:', JSON.parse(JSON.stringify(templatedState)));
|
|
19953
19955
|
saveSate = _extends({}, saveSate, templatedState);
|
|
19954
|
-
console.log('[SOCKET/RESTORE LOG] saveSate после templateState:', JSON.parse(JSON.stringify(saveSate)));
|
|
19955
19956
|
if (_$1__default.get(params, "general.restoreState") && _$1__default.get(params, "general.saveStateTo")) {
|
|
19956
19957
|
const fieldName = _$1__default.get(params, "general.saveStateTo");
|
|
19957
19958
|
const fieldValue = newModel[fieldName];
|
|
19958
|
-
console.log('[SOCKET/RESTORE LOG] Восстанавливаем state из поля:', fieldName);
|
|
19959
|
-
console.log('[SOCKET/RESTORE LOG] Значение поля:', fieldValue);
|
|
19960
19959
|
const restoredState = parseJson(fieldValue);
|
|
19961
|
-
console.log('[SOCKET/RESTORE LOG] restoredState (распарсенный):', JSON.parse(JSON.stringify(restoredState)));
|
|
19962
19960
|
saveSate = _extends({}, saveSate, restoredState);
|
|
19963
19961
|
restoredStepRef.current = restoredState.step;
|
|
19964
19962
|
}
|
|
19965
|
-
console.log('[SOCKET/RESTORE LOG] ИТОГОВЫЙ setState с:', JSON.parse(JSON.stringify(saveSate)));
|
|
19966
|
-
console.log('[SOCKET/RESTORE LOG] === КОНЕЦ СОКЕТНОГО ОБНОВЛЕНИЯ ===');
|
|
19967
19963
|
setState(saveSate);
|
|
19968
19964
|
setInitialized(true);
|
|
19969
19965
|
}
|
|
@@ -20213,14 +20209,10 @@ function FpsForm2(props) {
|
|
|
20213
20209
|
submitMapping = [];
|
|
20214
20210
|
}
|
|
20215
20211
|
if (autoSubmit && isAutoSubmittingRef.current) {
|
|
20216
|
-
console.log('[AUTOSUBMIT LOG] Заблокирован параллельный автосабмит');
|
|
20217
20212
|
finish && finish(false);
|
|
20218
20213
|
return;
|
|
20219
20214
|
}
|
|
20220
20215
|
if (autoSubmit) {
|
|
20221
|
-
console.log('[AUTOSUBMIT LOG] === НАЧАЛО АВТОСАБМИТА ===');
|
|
20222
|
-
console.log('[AUTOSUBMIT LOG] state ДО сабмита:', JSON.parse(JSON.stringify(stateRef.current)));
|
|
20223
|
-
console.log('[AUTOSUBMIT LOG] model:', JSON.parse(JSON.stringify(currentModel || modelRef.current)));
|
|
20224
20216
|
isAutoSubmittingRef.current = true;
|
|
20225
20217
|
}
|
|
20226
20218
|
newExtendedModel = newExtendedModel || extendedModelRef.current;
|
|
@@ -26340,6 +26332,7 @@ function Comments(props) {
|
|
|
26340
26332
|
}
|
|
26341
26333
|
const allowAttachment = _$1__default.includes(data.writeFields, _$1__default.get(data, "params._fileField"));
|
|
26342
26334
|
const allowSend = _$1__default.includes(data.writeFields, _$1__default.get(data, "params._textField"));
|
|
26335
|
+
const allowEdit = _$1__default.get(data, "params.general.allowEdit");
|
|
26343
26336
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
26344
26337
|
className: styles$N.comments + " FPS_COMMENTS"
|
|
26345
26338
|
}, /*#__PURE__*/React__default.createElement(CommentsHeader, _extends({
|
|
@@ -26360,6 +26353,7 @@ function Comments(props) {
|
|
|
26360
26353
|
sendComment: sendComment,
|
|
26361
26354
|
lang: lang,
|
|
26362
26355
|
allowSend: allowSend,
|
|
26356
|
+
allowEdit: allowEdit,
|
|
26363
26357
|
loading: loading,
|
|
26364
26358
|
allowAttachment: allowAttachment,
|
|
26365
26359
|
comments: comments,
|
|
@@ -26376,9 +26370,16 @@ function Comment(props) {
|
|
|
26376
26370
|
comments,
|
|
26377
26371
|
parent,
|
|
26378
26372
|
allowSend,
|
|
26373
|
+
allowEdit,
|
|
26379
26374
|
sendComment
|
|
26380
26375
|
} = props;
|
|
26381
26376
|
const [addReply, setAddReply] = React.useState(false);
|
|
26377
|
+
const [isEditing, setIsEditing] = React.useState(false);
|
|
26378
|
+
const [editText, setEditText] = React.useState("");
|
|
26379
|
+
React.useEffect(() => {
|
|
26380
|
+
const commentText = _$1__default.get(comment, _$1__default.get(data, "params._textField"));
|
|
26381
|
+
setEditText(commentText || "");
|
|
26382
|
+
}, [_$1__default.get(comment, _$1__default.get(data, "params._textField"))]);
|
|
26382
26383
|
const formatDate = (value, formatOptions) => {
|
|
26383
26384
|
if (!value) {
|
|
26384
26385
|
return null;
|
|
@@ -26412,6 +26413,7 @@ function Comment(props) {
|
|
|
26412
26413
|
}
|
|
26413
26414
|
const isTask = !!_$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_assignee"));
|
|
26414
26415
|
const isAssignedToMe = (_$1__default.get(auth, "user") == _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_assignee")) || _$1__default.get(auth, "user") == _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_assignee") + ".id")) && _$1__default.get(auth, "isAuth");
|
|
26416
|
+
const isAuthor = (_$1__default.get(auth, "user") == _$1__default.get(comment, _$1__default.get(data, "params._userField")) || _$1__default.get(auth, "user") == _$1__default.get(comment, _$1__default.get(data, "params._userField") + ".id")) && _$1__default.get(auth, "isAuth");
|
|
26415
26417
|
const assigneName = isTask ? _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_assignee") + ".firstName") ? _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_assignee") + ".firstName") + ' ' + _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_assignee") + ".lastName") : _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_assignee") + ".id") || _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_assignee")) : '';
|
|
26416
26418
|
const isResoled = isTask && _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_bool"));
|
|
26417
26419
|
const resolvedDate = _$1__default.get(comment, _$1__default.get(data, "params.assignmentOn_dateClosed"));
|
|
@@ -26428,6 +26430,22 @@ function Comment(props) {
|
|
|
26428
26430
|
_$1__default.get(data, "params.assignmentOn_dateClosed") && _$1__default.set(payload, _$1__default.get(data, "params.assignmentOn_dateClosed"), moment__default().toISOString());
|
|
26429
26431
|
sendComment(payload, () => setLocalLoading(false), true);
|
|
26430
26432
|
};
|
|
26433
|
+
const saveEdit = () => {
|
|
26434
|
+
if (!comment.id) return;
|
|
26435
|
+
setLocalLoading(true);
|
|
26436
|
+
let payload = {
|
|
26437
|
+
id: comment.id
|
|
26438
|
+
};
|
|
26439
|
+
_$1__default.set(payload, _$1__default.get(data, "params._textField"), editText);
|
|
26440
|
+
sendComment(payload, () => {
|
|
26441
|
+
setLocalLoading(false);
|
|
26442
|
+
setIsEditing(false);
|
|
26443
|
+
}, true);
|
|
26444
|
+
};
|
|
26445
|
+
const cancelEdit = () => {
|
|
26446
|
+
setEditText(commentText);
|
|
26447
|
+
setIsEditing(false);
|
|
26448
|
+
};
|
|
26431
26449
|
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", {
|
|
26432
26450
|
className: styles$N.commentWrapper + " FPS_COMMENT_WRAPPER"
|
|
26433
26451
|
}, isTask && /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -26459,7 +26477,31 @@ function Comment(props) {
|
|
|
26459
26477
|
}
|
|
26460
26478
|
}, dict[lang].comments.anon), /*#__PURE__*/React__default.createElement("div", {
|
|
26461
26479
|
className: styles$N.commentBodyHeaderDate
|
|
26462
|
-
}, formatDate(commentDate, formatCommentDate))), /*#__PURE__*/React__default.createElement("div", {
|
|
26480
|
+
}, formatDate(commentDate, formatCommentDate))), isEditing ? /*#__PURE__*/React__default.createElement("div", {
|
|
26481
|
+
className: styles$N.commentBodyText
|
|
26482
|
+
}, /*#__PURE__*/React__default.createElement(Input, {
|
|
26483
|
+
type: "textarea",
|
|
26484
|
+
defaultValue: editText,
|
|
26485
|
+
onChange: setEditText,
|
|
26486
|
+
rows: "auto"
|
|
26487
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
26488
|
+
style: {
|
|
26489
|
+
marginTop: '8px',
|
|
26490
|
+
display: 'flex',
|
|
26491
|
+
gap: '8px'
|
|
26492
|
+
}
|
|
26493
|
+
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
26494
|
+
loading: localLoading,
|
|
26495
|
+
onClick: saveEdit,
|
|
26496
|
+
small: true,
|
|
26497
|
+
height: 32,
|
|
26498
|
+
accent: true,
|
|
26499
|
+
disabled: !editText
|
|
26500
|
+
}, dict[lang].comments.save), /*#__PURE__*/React__default.createElement(Button, {
|
|
26501
|
+
onClick: cancelEdit,
|
|
26502
|
+
small: true,
|
|
26503
|
+
height: 32
|
|
26504
|
+
}, dict[lang].comments.cancel))) : /*#__PURE__*/React__default.createElement("div", {
|
|
26463
26505
|
className: styles$N.commentBodyText
|
|
26464
26506
|
}, commentText), commentAttachment && commentAttachment.length > 0 && commentAttachment.map(file => {
|
|
26465
26507
|
const fileName = file.split("/")[file.split("/").length - 1];
|
|
@@ -26470,12 +26512,15 @@ function Comment(props) {
|
|
|
26470
26512
|
href: file,
|
|
26471
26513
|
className: "icon icon-clip small " + styles$N.commentFileLink
|
|
26472
26514
|
}, fileName));
|
|
26473
|
-
}), _$1__default.includes(data.writeFields, _$1__default.get(data, "params._replyField")) && allowSend && /*#__PURE__*/React__default.createElement("div", {
|
|
26515
|
+
}), !isEditing && (_$1__default.includes(data.writeFields, _$1__default.get(data, "params._replyField")) && allowSend || allowEdit && isAuthor) && /*#__PURE__*/React__default.createElement("div", {
|
|
26474
26516
|
className: styles$N.commentBodyFooter
|
|
26475
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
|
26517
|
+
}, _$1__default.includes(data.writeFields, _$1__default.get(data, "params._replyField")) && allowSend && /*#__PURE__*/React__default.createElement("div", {
|
|
26476
26518
|
onClick: e => setAddReply(true),
|
|
26477
26519
|
className: "icon icon-bubble small " + styles$N.commentReplyButton
|
|
26478
|
-
}, dict[lang].comments.reply)
|
|
26520
|
+
}, dict[lang].comments.reply), allowEdit && isAuthor && /*#__PURE__*/React__default.createElement("div", {
|
|
26521
|
+
onClick: e => setIsEditing(true),
|
|
26522
|
+
className: "icon icon-edit small " + styles$N.commentReplyButton
|
|
26523
|
+
}, dict[lang].comments.edit)))), addReply && /*#__PURE__*/React__default.createElement("div", {
|
|
26479
26524
|
className: styles$N.childComments
|
|
26480
26525
|
}, /*#__PURE__*/React__default.createElement(AddComment, _extends({}, props, {
|
|
26481
26526
|
parentID: commentID,
|