tracker-tasks
This commit is contained in:
parent
4180cb5858
commit
e58a576be9
@ -78,8 +78,22 @@
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
max-width: 340px;
|
||||
padding: 5px;
|
||||
outline: none;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgb(204, 206, 209);
|
||||
}
|
||||
|
||||
.ck-toolbar {
|
||||
border-radius: 8px 8px 0 0 !important;
|
||||
}
|
||||
|
||||
.ck-content {
|
||||
font-size: 14px;
|
||||
min-height: 100px;
|
||||
border: 1px solid rgb(204, 206, 209) !important;
|
||||
border-radius: 0 0 8px 8px !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
button {
|
||||
@ -228,7 +242,7 @@
|
||||
margin-left: 34px;
|
||||
text-decoration-line: underline;
|
||||
font-weight: 400;
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
line-height: 32px;
|
||||
cursor: pointer;
|
||||
|
||||
@ -381,9 +395,9 @@
|
||||
margin-right: 18px;
|
||||
}
|
||||
|
||||
&:focus-within {
|
||||
border: 1px solid #0000004d;
|
||||
}
|
||||
//&:focus-within {
|
||||
// border: 1px solid #0000004d;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@ -467,6 +481,11 @@
|
||||
border: none;
|
||||
color: white;
|
||||
font-size: 17px;
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
background: #6cc933;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -479,6 +498,11 @@
|
||||
color: white;
|
||||
background: #1458dd;
|
||||
border-radius: 44px;
|
||||
transition: all 0.15s ease;
|
||||
|
||||
&:hover {
|
||||
background: #0255ff;
|
||||
}
|
||||
|
||||
img {
|
||||
margin-left: 10px;
|
||||
@ -499,6 +523,11 @@
|
||||
color: white;
|
||||
background: red;
|
||||
border-radius: 44px;
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
background: #f5693d;
|
||||
}
|
||||
}
|
||||
|
||||
.time {
|
||||
|
@ -8,7 +8,6 @@ import {
|
||||
deletePersonOnProject,
|
||||
getBoarderLoader,
|
||||
modalToggle,
|
||||
setProjectBoardFetch,
|
||||
setToggleTab,
|
||||
} from "@redux/projectsTrackerSlice";
|
||||
|
||||
|
@ -94,6 +94,22 @@
|
||||
max-width: 320px;
|
||||
}
|
||||
|
||||
.ck-editor__editable.ck-rounded-corners {
|
||||
min-height: 100px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.ck-toolbar {
|
||||
border: none !important;
|
||||
border-radius: 8px 8px 0 0 !important;
|
||||
}
|
||||
|
||||
.ck-content {
|
||||
border: none !important;
|
||||
border-radius: 0 0 8px 8px !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.select__executor {
|
||||
width: 320px;
|
||||
background: white;
|
||||
@ -229,6 +245,12 @@
|
||||
.worker {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
&:hover {
|
||||
p {
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ import TrackerTaskSubComment from "@components/TrackerTaskComment/TrackerTaskCom
|
||||
import del from "assets/icons/delete.svg";
|
||||
import edit from "assets/icons/edit.svg";
|
||||
import accept from "assets/images/accept.png";
|
||||
import avatarMok from "assets/images/avatarMok.png";
|
||||
|
||||
export const TrackerTaskComment = ({
|
||||
taskId,
|
||||
@ -84,7 +85,11 @@ export const TrackerTaskComment = ({
|
||||
>
|
||||
<div className="comments__list__item__info">
|
||||
<div className="comments__list__item__fio">
|
||||
<img src={urlForLocal(comment.user.avatar)} alt="avatar" />
|
||||
<img
|
||||
src={
|
||||
comment.user?.avatar ? urlForLocal(comment.user.avatar) : avatarMok
|
||||
}
|
||||
alt="avatar" />
|
||||
<p>{comment.user.fio}</p>
|
||||
</div>
|
||||
<div className="comments__list__item__date">
|
||||
|
@ -28,7 +28,6 @@ import { Footer } from "@components/Common/Footer/Footer";
|
||||
import { Loader } from "@components/Common/Loader/Loader";
|
||||
import ModalTicket from "@components/Modal/Tracker/ModalTicket/ModalTicket";
|
||||
import TrackerModal from "@components/Modal/Tracker/TrackerModal/TrackerModal";
|
||||
// import TrackerModal from "@components/Modal/TrackerModal/TrackerModal";
|
||||
import { Navigation } from "@components/Navigation/Navigation";
|
||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
||||
@ -44,6 +43,7 @@ import project from "assets/icons/trackerProject.svg";
|
||||
import tasks from "assets/icons/trackerTasks.svg";
|
||||
import accept from "assets/images/accept.png";
|
||||
import avatarMok from "assets/images/avatarMok.png";
|
||||
import { caseOfNum } from "@utils/helper";
|
||||
|
||||
export const ProjectTracker = () => {
|
||||
const dispatch = useDispatch();
|
||||
@ -563,11 +563,11 @@ export const ProjectTracker = () => {
|
||||
<div className="tasks__board__item__info">
|
||||
<div className="tasks__board__item__info__more">
|
||||
<img src={commentsBoard} alt="commentsImg" />
|
||||
<span>{task.comment_count} коментариев</span>
|
||||
<span>{task.comment_count} {caseOfNum(task.comment_count, 'comments')}</span>
|
||||
</div>
|
||||
<div className="tasks__board__item__info__more">
|
||||
<img src={filesBoard} alt="filesImg" />
|
||||
<span>{task.files} файлов</span>
|
||||
<span>{task.files ? task.files : 0} {caseOfNum(0, 'files')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -30,6 +30,7 @@ import tasks from "assets/icons/trackerTasks.svg";
|
||||
import noProjects from "assets/images/noProjects.png";
|
||||
|
||||
import "./tracker.scss";
|
||||
import avatarMok from "assets/images/avatarMok.png";
|
||||
|
||||
export const Tracker = () => {
|
||||
const dispatch = useDispatch();
|
||||
@ -253,11 +254,13 @@ export const Tracker = () => {
|
||||
<div className="task" key={task.id}>
|
||||
<div className="task__info">
|
||||
<h5>{task.title}</h5>
|
||||
<p>{task.description}</p>
|
||||
<p dangerouslySetInnerHTML={{ __html: task.description }} />
|
||||
</div>
|
||||
<div className="task__person">
|
||||
<img
|
||||
src={urlForLocal(task.user.avatar)}
|
||||
src={
|
||||
task.user?.avatar ? urlForLocal(task.user.avatar) : avatarMok
|
||||
}
|
||||
alt="avatar"
|
||||
/>
|
||||
<div className="task__project">
|
||||
@ -301,11 +304,13 @@ export const Tracker = () => {
|
||||
<div className="archive__completeTask" key={index}>
|
||||
<div className="archive__completeTask__description">
|
||||
<p>{task.title}</p>
|
||||
<p className="date">{task.description}</p>
|
||||
<p className="date" dangerouslySetInnerHTML={{ __html: task.description }} />
|
||||
</div>
|
||||
<div className="archive__completeTask__info">
|
||||
<img
|
||||
src={urlForLocal(task.user.avatar)}
|
||||
src={
|
||||
task.user?.avatar ? urlForLocal(task.user.avatar) : avatarMok
|
||||
}
|
||||
alt="avatar"
|
||||
/>
|
||||
<div className="archive__completeTask__info__project">
|
||||
|
@ -252,7 +252,6 @@
|
||||
&__persons {
|
||||
position: relative;
|
||||
display: flex;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
|
||||
.projectPersons {
|
||||
@ -302,8 +301,14 @@
|
||||
background: #00c5a8;
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
transition: all 0.15s ease;
|
||||
left: -28px;
|
||||
z-index: 2;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background: #10d5bb;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
@ -466,6 +471,8 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: black;
|
||||
max-width: 180px;
|
||||
width: 100%;
|
||||
|
||||
p {
|
||||
font-weight: 400;
|
||||
@ -477,6 +484,12 @@
|
||||
margin-left: 10px;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
p {
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -738,12 +751,20 @@
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
cursor: pointer;
|
||||
max-width: 250px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.add {
|
||||
color: #6f6f6f;
|
||||
font-size: 19px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.more {
|
||||
@ -751,6 +772,11 @@
|
||||
position: relative;
|
||||
bottom: 4px;
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.done {
|
||||
|
@ -61,3 +61,23 @@ export function getCorrectRequestDate(date) {
|
||||
const sec = String(date.getUTCSeconds());
|
||||
return `${yyyy}-${mm}-${dd} ${hh}:${min}:${sec}`;
|
||||
}
|
||||
|
||||
export function caseOfNum(number, type) {
|
||||
const comments = ["коментарий", "комментария", " коментариев"];
|
||||
const files = ["файлов", "файла", "файлов"]
|
||||
const cases = [2, 0, 1, 1, 1, 2];
|
||||
if (type === 'comments') {
|
||||
return comments[
|
||||
number % 100 > 4 && number % 100 < 20
|
||||
? 2
|
||||
: cases[number % 10 < 5 ? number % 10 : 5]
|
||||
];
|
||||
}
|
||||
if (type === 'files') {
|
||||
return files[
|
||||
number % 100 > 4 && number % 100 < 20
|
||||
? 2
|
||||
: cases[number % 10 < 5 ? number % 10 : 5]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user