diff --git a/frontend/public/images/anchor BLUE.svg b/frontend/public/images/anchor BLUE.svg new file mode 100644 index 0000000..fce474a --- /dev/null +++ b/frontend/public/images/anchor BLUE.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/issues-list-board/issues-list-board.module.css b/frontend/src/issues-list-board/issues-list-board.module.css index 04006f5..37718b3 100644 --- a/frontend/src/issues-list-board/issues-list-board.module.css +++ b/frontend/src/issues-list-board/issues-list-board.module.css @@ -2,5 +2,41 @@ display: flex; flex-direction: column; width: 100%; - background-color: rgb(225, 225, 225); +} + +.boardName { + display: flex; + flex-direction: row; + padding-left: 10px; + padding-right: 10px; +} + +.anchorIcon { + width: 24px; + padding-left: 30px; +} + +.boardName a { + display: flex; +} + +.board { + line-height: 30px; + + background-color: rgb(255, 255, 255); + margin: 0; + padding: 0; + color: rgba(0, 0, 0, 0.8); + font-size: 24px; + font-family: 'Inter', sans-serif; + font-style: normal; + line-height: 40px; + font-weight: 600; + font-size: 24px; + line-height: 30px; +} + +.boardHeader { + color: #202020; + font-family: 'Source Code Pro'; } \ No newline at end of file diff --git a/frontend/src/issues-list-board/issues-list-board.tsx b/frontend/src/issues-list-board/issues-list-board.tsx index 5841192..eb51b8c 100644 --- a/frontend/src/issues-list-board/issues-list-board.tsx +++ b/frontend/src/issues-list-board/issues-list-board.tsx @@ -21,11 +21,16 @@ export const IssuesListBoard = observer((props: Props): JSX.Element => { title = <>{props.store.metainfo.title}; } return ( - <> -

{title} #

+
+
+

{title}

+ + anchor + +
{list}
- +
); }); \ No newline at end of file diff --git a/frontend/src/issues-list-board/issues-list-card.module.css b/frontend/src/issues-list-board/issues-list-card.module.css index 8a8963f..cda112d 100644 --- a/frontend/src/issues-list-board/issues-list-card.module.css +++ b/frontend/src/issues-list-board/issues-list-card.module.css @@ -5,7 +5,56 @@ flex-direction: column; } -.issueSubject {} +.relevanceColor { + width: 30px; +} + +.todoBlock { + display: flex; + flex-direction: row; + padding-left: 10px; + padding-right: 10px; +} + +.todoBlock:hover { + background-color: rgba(0, 0, 0, 0.1); +} + +.importantInformation { + width: 100%; +} + +.timeBox { + color: #393838; + font-weight: 400; + font-size: 11px; +} + +.positionInfo { + list-style-image: relative; + bottom: 3px; + right: 3px; + text-align: right; + float: right; +} + +.priorityBox { + background-color: #FFFFFF; + border-radius: 2px; + padding: 2px 2px 3px 2px; + font-size: 10px; + line-height: 12px; + /* border: 0.5px solid #393838; */ + color: #ffffff; +} + +.issueSubject { + color: #202020; + text-decoration: none; + font-weight: 400; + font-size: 15px; + line-height: 18px; +} .issueStatus {} diff --git a/frontend/src/issues-list-board/issues-list-card.tsx b/frontend/src/issues-list-board/issues-list-card.tsx index fd05210..a64350b 100644 --- a/frontend/src/issues-list-board/issues-list-card.tsx +++ b/frontend/src/issues-list-board/issues-list-card.tsx @@ -7,6 +7,7 @@ import * as TagsNs from '../misc-components/tags'; import * as IssueHrefNs from '../misc-components/issue-href'; import * as IssueDetailsDialogNs from '../misc-components/issue-details-dialog'; import * as UnreadedFlagNs from '../misc-components/unreaded-flag'; +import { SpentHoursToFixed } from '../utils/spent-hours-to-fixed'; export type Props = { store: IIssueStore @@ -19,12 +20,35 @@ export const IssuesListCard = observer((props: Props): JSX.Element => { visible: false, unreadedFlagStore: unreadedStore }); + // return ( + //
{e.stopPropagation(); detailsStore.show();}}> + // + //
+ // + // + // + // + // + // | {props.store.status.name} + // | {props.store.total_spent_hours} / {props.store.total_estimated_hours} + //
+ //
+ // + //
+ //
+ // ); return ( -
{e.stopPropagation(); detailsStore.show();}}> - -
- - +
{ e.stopPropagation(); detailsStore.show(); }}> + +
+ +
+
{ id={props.store.id} /> - | {props.store.status.name} - | {props.store.total_spent_hours} / {props.store.total_estimated_hours} -
-
- + + {SpentHoursToFixed(props.store.total_spent_hours)} / {SpentHoursToFixed(props.store.total_estimated_hours)} + {(props.store.styledTags && props.store.styledTags.hasOwnProperties()) ?
: null} + +
+ {props.store.status.name} + {props.store.priority.name} +
); diff --git a/frontend/src/misc-components/issue-details-dialog.module.css b/frontend/src/misc-components/issue-details-dialog.module.css index 2f24e96..3882587 100644 --- a/frontend/src/misc-components/issue-details-dialog.module.css +++ b/frontend/src/misc-components/issue-details-dialog.module.css @@ -1,3 +1,7 @@ +.reset { + all: initial; +} + .modal { z-index: 1000; position: fixed; diff --git a/frontend/src/misc-components/issue-details-dialog.tsx b/frontend/src/misc-components/issue-details-dialog.tsx index e30cecd..9e8a7a5 100644 --- a/frontend/src/misc-components/issue-details-dialog.tsx +++ b/frontend/src/misc-components/issue-details-dialog.tsx @@ -52,29 +52,31 @@ export const IssueDetailsDialog = observer((props: Props): JSX.Element => { props.store.hide(); }; return ( -
-
-

- - - -

-
-
-

Описание:

-
-						{props.store.issue.description}
-					
-
-
-
-

Комментарии:

- +
+
+
+

+ + + +

+
+
+

Описание:

+
+							{props.store.issue.description}
+						
+
+
+
+

Комментарии:

+ +
diff --git a/frontend/src/misc-components/tags.tsx b/frontend/src/misc-components/tags.tsx index 8852a1d..ae749ab 100644 --- a/frontend/src/misc-components/tags.tsx +++ b/frontend/src/misc-components/tags.tsx @@ -14,13 +14,14 @@ export const Tags = (props: Props): JSX.Element => { if (!props.params.tags) { return (<>); } - const label = props.params.label || 'Tags'; + let label = props.params.label || ''; + if (label) label = `${label}: `; const tags = props.params.tags.map((tag) => { return ; }) || []; return ( -
- {label}: {tags} -
+ <> + {label}{tags} + ); } \ No newline at end of file diff --git a/frontend/src/utils/spent-hours-to-fixed.ts b/frontend/src/utils/spent-hours-to-fixed.ts new file mode 100644 index 0000000..a7e8045 --- /dev/null +++ b/frontend/src/utils/spent-hours-to-fixed.ts @@ -0,0 +1,11 @@ +/** + * Форматирование чисел для вывода трудозатрат + * @param a + * @returns + */ +export const SpentHoursToFixed = (a: number|string|null|undefined): string => { + if (a === null || typeof a === 'undefined') return '-'; + const res = (typeof a === 'number') ? a : Number(a); + if (!Number.isFinite(res)) return '-'; + return `${parseFloat(res.toFixed(1))}`; +}; \ No newline at end of file