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 (
- <>
-
+
);
});
\ 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 (
-
-
-
- close
- force update
-
-
-
-
-
Описание:
-
- {props.store.issue.description}
-
-
-
-
-
Комментарии:
-
+
+
+
+
+ close
+ force update
+
+
+
+
+
Описание:
+
+ {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