mirror of
https://github.com/rjNemo/ticket_manager
synced 2026-06-11 19:26:40 +00:00
added validateTicket Method, UserModal updates memberslist
This commit is contained in:
parent
e4fe81a45c
commit
97b45fcd2d
6 changed files with 28 additions and 16 deletions
|
|
@ -50,3 +50,4 @@
|
||||||
- [ ] think about public/private DTO's constructor, getters and setters
|
- [ ] think about public/private DTO's constructor, getters and setters
|
||||||
- [x] write dtos without circular dependencies
|
- [x] write dtos without circular dependencies
|
||||||
- [ ] use dtoRequest for PutProjects
|
- [ ] use dtoRequest for PutProjects
|
||||||
|
- [ ] render avatarlist after UserModal Update
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,13 @@ interface IProps {
|
||||||
title: string;
|
title: string;
|
||||||
remainingDays: string;
|
remainingDays: string;
|
||||||
validateTicket: (event: MouseEvent) => void;
|
validateTicket: (event: MouseEvent) => void;
|
||||||
archiveTicket: (event: MouseEvent) => void;
|
// archiveTicket: (event: MouseEvent) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const HorizontalCard: FC<IProps> = ({
|
export const HorizontalCard: FC<IProps> = ({
|
||||||
title,
|
title,
|
||||||
remainingDays,
|
remainingDays,
|
||||||
archiveTicket,
|
// archiveTicket,
|
||||||
validateTicket
|
validateTicket
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
|
|
@ -34,11 +34,11 @@ export const HorizontalCard: FC<IProps> = ({
|
||||||
check
|
check
|
||||||
</i>
|
</i>
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="#">
|
{/* <Link to="#">
|
||||||
<i className="material-icons" onClick={archiveTicket}>
|
<i className="material-icons" onClick={archiveTicket}>
|
||||||
archive
|
archive
|
||||||
</i>
|
</i>
|
||||||
</Link>
|
</Link> */}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import { AppFile } from "../types/AppFile";
|
||||||
import { Route, useRouteMatch, Redirect } from "react-router-dom";
|
import { Route, useRouteMatch, Redirect } from "react-router-dom";
|
||||||
import { ActivityList } from "./ActivityList";
|
import { ActivityList } from "./ActivityList";
|
||||||
import { Activity } from "../types/Activity";
|
import { Activity } from "../types/Activity";
|
||||||
|
import { NewTicketModal } from "./NewTicketModal";
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
tickets: Ticket[];
|
tickets: Ticket[];
|
||||||
|
|
@ -26,6 +27,7 @@ export const TabRouter: FC<IProps> = ({
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
|
<NewTicketModal handleClose={() => {}} show={true} />
|
||||||
<TabRouterHeader tabNames={tabNames} />
|
<TabRouterHeader tabNames={tabNames} />
|
||||||
|
|
||||||
<Redirect from={url} to={`${url}/tickets`} />
|
<Redirect from={url} to={`${url}/tickets`} />
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ import { Ticket } from "../types/Ticket";
|
||||||
import { FloatingButton } from "./FloatingButton";
|
import { FloatingButton } from "./FloatingButton";
|
||||||
import { HorizontalCard } from "./HorizontalCard";
|
import { HorizontalCard } from "./HorizontalCard";
|
||||||
import { FilterBar } from "./FilterBar";
|
import { FilterBar } from "./FilterBar";
|
||||||
|
import { put } from "../utils/http";
|
||||||
|
import { HttpResponse } from "../types/HttpResponse";
|
||||||
|
import { Constants } from "../utils/Constants";
|
||||||
|
|
||||||
type TicketListProps = {
|
type TicketListProps = {
|
||||||
tickets: Ticket[];
|
tickets: Ticket[];
|
||||||
|
|
@ -13,8 +16,8 @@ export const TicketList: FC<TicketListProps> = ({ tickets }) => {
|
||||||
const clearFilterText: (e: MouseEvent) => void = (e: MouseEvent) => {
|
const clearFilterText: (e: MouseEvent) => void = (e: MouseEvent) => {
|
||||||
setFilterText("");
|
setFilterText("");
|
||||||
};
|
};
|
||||||
const archiveTicket = () => {};
|
// const archiveTicket = () => {};
|
||||||
const validateTicket = () => {};
|
|
||||||
const onClick: (e: MouseEvent) => void = (e: MouseEvent) => {
|
const onClick: (e: MouseEvent) => void = (e: MouseEvent) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
};
|
};
|
||||||
|
|
@ -42,16 +45,24 @@ export const TicketList: FC<TicketListProps> = ({ tickets }) => {
|
||||||
<div className="col s12 grey">
|
<div className="col s12 grey">
|
||||||
<ul>
|
<ul>
|
||||||
{tickets
|
{tickets
|
||||||
.filter(t =>
|
.filter(
|
||||||
t.title.toLowerCase().includes(filterText.toLowerCase())
|
t =>
|
||||||
|
t.status !== "Done" &&
|
||||||
|
t.title.toLowerCase().includes(filterText.toLowerCase())
|
||||||
)
|
)
|
||||||
.map((t: Ticket) => (
|
.map((t: Ticket) => (
|
||||||
<li key={t.id}>
|
<li key={t.id}>
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title={t.title}
|
title={t.title}
|
||||||
remainingDays={t.plannedEnding}
|
remainingDays={t.plannedEnding}
|
||||||
validateTicket={validateTicket}
|
validateTicket={async (e: MouseEvent) => {
|
||||||
archiveTicket={archiveTicket}
|
e.preventDefault();
|
||||||
|
await put<HttpResponse<Ticket>>(
|
||||||
|
`${Constants.ticketsURI}/${t.id}/closed`,
|
||||||
|
{}
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
// archiveTicket={archiveTicket}
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
))}
|
))}
|
||||||
|
|
|
||||||
|
|
@ -37,15 +37,14 @@ export const UsersModal: FC<IProps> = ({
|
||||||
e: FormEvent
|
e: FormEvent
|
||||||
) => {
|
) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
await patch<User[]>(
|
||||||
const response: HttpResponse<User[]> = await patch<User[]>(
|
|
||||||
`${Constants.projectsURI}/${id}/members`,
|
`${Constants.projectsURI}/${id}/members`,
|
||||||
members
|
members.map(m => m.id)
|
||||||
);
|
);
|
||||||
console.log(response);
|
handleClose();
|
||||||
};
|
};
|
||||||
console.log(allUsers);
|
|
||||||
|
|
||||||
|
useEffect(() => {});
|
||||||
return (
|
return (
|
||||||
<Modal show={show} handleClose={handleClose}>
|
<Modal show={show} handleClose={handleClose}>
|
||||||
<div className="row valign-wrapper blue">
|
<div className="row valign-wrapper blue">
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ interface IProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const UsersModalEntry: FC<IProps> = ({ user, setMembers, members }) => {
|
export const UsersModalEntry: FC<IProps> = ({ user, setMembers, members }) => {
|
||||||
console.log(members);
|
|
||||||
const match: (id: string) => boolean = (id: string) => {
|
const match: (id: string) => boolean = (id: string) => {
|
||||||
return Boolean(members.find(m => m.id === id));
|
return Boolean(members.find(m => m.id === id));
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue