Добавлен вывод даты и времени комментариев в окне с подробностями о задаче
This commit is contained in:
parent
64f3528873
commit
2ea0a192c0
4 changed files with 41 additions and 3 deletions
29
frontend/package-lock.json
generated
29
frontend/package-lock.json
generated
|
|
@ -16,6 +16,7 @@
|
||||||
"@types/react": "^18.0.28",
|
"@types/react": "^18.0.28",
|
||||||
"@types/react-dom": "^18.0.11",
|
"@types/react-dom": "^18.0.11",
|
||||||
"axios": "^1.4.0",
|
"axios": "^1.4.0",
|
||||||
|
"luxon": "^3.3.0",
|
||||||
"mobx": "^6.9.0",
|
"mobx": "^6.9.0",
|
||||||
"mobx-react-lite": "^3.4.3",
|
"mobx-react-lite": "^3.4.3",
|
||||||
"mobx-state-tree": "^5.1.8",
|
"mobx-state-tree": "^5.1.8",
|
||||||
|
|
@ -25,6 +26,9 @@
|
||||||
"react-scripts": "5.0.1",
|
"react-scripts": "5.0.1",
|
||||||
"typescript": "^4.9.5",
|
"typescript": "^4.9.5",
|
||||||
"web-vitals": "^2.1.4"
|
"web-vitals": "^2.1.4"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/luxon": "^3.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@adobe/css-tools": {
|
"node_modules/@adobe/css-tools": {
|
||||||
|
|
@ -3890,6 +3894,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
|
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
|
||||||
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
|
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/luxon": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-uKRI5QORDnrGFYgcdAVnHvEIvEZ8noTpP/Bg+HeUzZghwinDlIS87DEenV5r1YoOF9G4x600YsUXLWZ19rmTmg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/@types/mime": {
|
"node_modules/@types/mime": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
|
||||||
|
|
@ -11629,6 +11639,14 @@
|
||||||
"yallist": "^3.0.2"
|
"yallist": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/luxon": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lz-string": {
|
"node_modules/lz-string": {
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
|
||||||
|
|
@ -19713,6 +19731,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
|
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
|
||||||
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
|
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
|
||||||
},
|
},
|
||||||
|
"@types/luxon": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-uKRI5QORDnrGFYgcdAVnHvEIvEZ8noTpP/Bg+HeUzZghwinDlIS87DEenV5r1YoOF9G4x600YsUXLWZ19rmTmg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"@types/mime": {
|
"@types/mime": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
|
||||||
|
|
@ -25368,6 +25392,11 @@
|
||||||
"yallist": "^3.0.2"
|
"yallist": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"luxon": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg=="
|
||||||
|
},
|
||||||
"lz-string": {
|
"lz-string": {
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
"@types/react": "^18.0.28",
|
"@types/react": "^18.0.28",
|
||||||
"@types/react-dom": "^18.0.11",
|
"@types/react-dom": "^18.0.11",
|
||||||
"axios": "^1.4.0",
|
"axios": "^1.4.0",
|
||||||
|
"luxon": "^3.3.0",
|
||||||
"mobx": "^6.9.0",
|
"mobx": "^6.9.0",
|
||||||
"mobx-react-lite": "^3.4.3",
|
"mobx-react-lite": "^3.4.3",
|
||||||
"mobx-state-tree": "^5.1.8",
|
"mobx-state-tree": "^5.1.8",
|
||||||
|
|
@ -44,5 +45,8 @@
|
||||||
"last 1 firefox version",
|
"last 1 firefox version",
|
||||||
"last 1 safari version"
|
"last 1 safari version"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/luxon": "^3.3.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,3 +36,8 @@
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
/* Internet Explorer 5.5+ */
|
/* Internet Explorer 5.5+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dateField {
|
||||||
|
font-size: 7pt;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
@ -7,6 +7,7 @@ import Css from './issue-details-dialog.module.css';
|
||||||
import * as UnreadedFlagNs from '../misc-components/unreaded-flag';
|
import * as UnreadedFlagNs from '../misc-components/unreaded-flag';
|
||||||
import { SetIssueReadingTimestamp } from '../utils/unreaded-provider';
|
import { SetIssueReadingTimestamp } from '../utils/unreaded-provider';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
import * as Luxon from 'luxon';
|
||||||
|
|
||||||
export const Store = types.model({
|
export const Store = types.model({
|
||||||
visible: types.boolean,
|
visible: types.boolean,
|
||||||
|
|
@ -87,7 +88,6 @@ export const Comments = (props: {details?: RedmineTypes.Journal[], issue: Redmin
|
||||||
if (!comments) {
|
if (!comments) {
|
||||||
return <>No comments</>
|
return <>No comments</>
|
||||||
}
|
}
|
||||||
console.debug(`Comments: details=${JSON.stringify(props.details)}`); // DEBUG
|
|
||||||
const list = comments.map((detail) => {
|
const list = comments.map((detail) => {
|
||||||
const key = `issueid_${props.issue.id}_commentid_${detail.id}`;
|
const key = `issueid_${props.issue.id}_commentid_${detail.id}`;
|
||||||
return <Comment data={detail} key={key}/>
|
return <Comment data={detail} key={key}/>
|
||||||
|
|
@ -98,10 +98,10 @@ export const Comments = (props: {details?: RedmineTypes.Journal[], issue: Redmin
|
||||||
}
|
}
|
||||||
|
|
||||||
export const Comment = (props: {data: RedmineTypes.Journal}): JSX.Element => {
|
export const Comment = (props: {data: RedmineTypes.Journal}): JSX.Element => {
|
||||||
console.debug(`Comment: data=${JSON.stringify(props.data)}`); // DEBUG
|
const date = Luxon.DateTime.fromISO(props.data.created_on).toFormat("dd.MM.yyyy HH:mm");
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<h3>{props.data.user.name}:</h3>
|
<h3><span className={Css.dateField}>{date}</span> {props.data.user.name}:</h3>
|
||||||
<div>
|
<div>
|
||||||
<pre>
|
<pre>
|
||||||
{props.data.notes || '-'}
|
{props.data.notes || '-'}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue