Skip to content

Commit 019eeaa

Browse files
pulls endpoints
Update user pulls' statuses
1 parent cfbe2ec commit 019eeaa

File tree

4 files changed

+113
-105
lines changed

4 files changed

+113
-105
lines changed

src/styles/views/admin-page.css

+24
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,28 @@ color: #FFFFFF !important;
4141

4242
.MuiPickersYear-yearSelected {
4343
color: #FFFFFF !important;
44+
}
45+
46+
.pr_pending {
47+
background-color: white;
48+
color: #B70569;
49+
width:fit-content;
50+
padding: 6px 10px;
51+
border-radius: 10px;
52+
}
53+
54+
.pr_accepted {
55+
background-color: white;
56+
color: green;
57+
width:fit-content;
58+
padding: 6px 10px;
59+
border-radius: 10px;
60+
}
61+
62+
.pr_declined {
63+
background-color: red;
64+
color: white;
65+
width:fit-content;
66+
padding: 6px 10px;
67+
border-radius: 10px;
4468
}

src/views/admin/adminService.js

+8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ export const prs = () => {
55
return http.get('/pulls/');
66
}
77

8+
export const update_prs = (s, e) => {
9+
return http.put(`/pulls/${s}`, e);
10+
}
11+
812
// EVENTS
913
export const _all_events = () => {
1014
return http.get('/events/');
@@ -29,4 +33,8 @@ export const _all_programs = () => {
2933

3034
export const _add_programs = p => {
3135
return http.post(`/programs/`, p)
36+
}
37+
38+
export const _update_programs = (p, e) => {
39+
return http.put(`/programs/${p}`, e)
3240
}

src/views/admin/programs.js

+38-44
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import Alert from '@material-ui/lab/Alert';
2222

2323
import { forwardRef } from 'react';
2424
import MaterialTable from "material-table";
25-
import { _all_programs, _add_programs } from './adminService';
25+
import { _all_programs, _add_programs, _update_programs } from './adminService';
2626

2727
const tableIcons = {
2828
Add: forwardRef((props, ref) => <AddBox {...props} ref={ref} />),
@@ -87,16 +87,15 @@ function Programs() {
8787
console.log(newData)
8888
let errorList = []
8989
if (newData.name === undefined || newData.name === '') {
90-
errorList.push("Please enter event name")
90+
errorList.push("Please enter program name")
9191
}
9292
if (newData.description === undefined || newData.description === '') {
93-
errorList.push("Please enter event description")
93+
errorList.push("Please enter program description")
9494
}
9595
if (errorList.length < 1) {
9696
console.log(newData)
9797
_add_programs(newData)
9898
.then(res => {
99-
console.log(res)
10099
let dataToAdd = [...data];
101100
dataToAdd.push(newData);
102101
setData(dataToAdd);
@@ -105,7 +104,7 @@ function Programs() {
105104
setIserror(false)
106105
})
107106
.catch(error => {
108-
setErrorMessages(["Cannot add data. Server error!"])
107+
setErrorMessages(["Cannot add data. Error!"])
109108
setIserror(true)
110109
resolve()
111110
})
@@ -116,45 +115,36 @@ function Programs() {
116115
}
117116
}
118117

119-
// const handleRowUpdate = (newData, oldData, resolve) => {
120-
// let errorList = []
121-
// if (newData.name === undefined || newData.name === ''){
122-
// errorList.push("Please enter event name")
123-
// }
124-
// if(newData.location === undefined || newData.location === ''){
125-
// errorList.push("Please enter event location")
126-
// }
127-
// if(newData.startTime === undefined || newData.startTime === ''){
128-
// errorList.push("Please enter the start time")
129-
// }
130-
// if(newData.endTime === undefined || newData.endTime === ''){
131-
// errorList.push("Please enter the end time")
132-
// }
133-
// if(newData.description === undefined || newData.description === ''){
134-
// errorList.push("Please enter event description")
135-
// }
136-
// if(errorList.length < 1) {
137-
// _update_event(newData._id, newData)
138-
// .then(res => {
139-
// const dataUpdate = [...data];
140-
// const index = oldData.tableData._id;
141-
// dataUpdate[index] = newData;
142-
// setData([...dataUpdate]);
143-
// resolve()
144-
// setIserror(false)
145-
// setErrorMessages([])
146-
// })
147-
// .catch(error => {
148-
// setErrorMessages(["Update failed! Server error"])
149-
// setIserror(true)
150-
// resolve()
151-
// })
152-
// }else{
153-
// setErrorMessages(errorList)
154-
// setIserror(true)
155-
// resolve()
156-
// }
157-
// }
118+
const handleRowUpdate = (newData, oldData, resolve) => {
119+
let errorList = []
120+
if (newData.name === undefined || newData.name === '') {
121+
errorList.push("Please enter program name")
122+
}
123+
if (newData.description === undefined || newData.description === '') {
124+
errorList.push("Please enter program description")
125+
}
126+
if(errorList.length < 1) {
127+
_update_programs(newData._id, newData)
128+
.then(res => {
129+
const dataUpdate = [...data];
130+
const index = oldData.tableData._id;
131+
dataUpdate[index] = newData;
132+
setData([...dataUpdate]);
133+
resolve()
134+
setIserror(false)
135+
setErrorMessages([])
136+
})
137+
.catch(error => {
138+
setErrorMessages(["Update failed! Server error"])
139+
setIserror(true)
140+
resolve()
141+
})
142+
}else{
143+
setErrorMessages(errorList)
144+
setIserror(true)
145+
resolve()
146+
}
147+
}
158148

159149
// const handleRowDelete = (oldData, resolve) => {
160150
// _delete_event(oldData._id)
@@ -219,6 +209,10 @@ function Programs() {
219209
new Promise((resolve) => {
220210
handleRowAdd(newData, resolve)
221211
}),
212+
onRowUpdate: (newData, oldData) =>
213+
new Promise((resolve) => {
214+
handleRowUpdate(newData, oldData, resolve);
215+
}),
222216
}}
223217
/>
224218
</div>

src/views/admin/repos.js

+43-61
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ import Alert from '@material-ui/lab/Alert';
2222

2323
import { forwardRef } from 'react';
2424
import MaterialTable from "material-table";
25-
import { prs } from './adminService';
25+
import { prs, update_prs } from './adminService';
26+
import { withTheme } from '@material-ui/core';
2627

2728
const tableIcons = {
2829
Add: forwardRef((props, ref) => <AddBox {...props} ref={ref} />),
@@ -58,20 +59,16 @@ function Pulls() {
5859
</a>
5960
) },
6061
{title: "Submitted by", field: "username", editable: false },
61-
{title: "Status", field: "status", lookup: {pending: "Pending", approved: "Approved", declined: "Declined"},
62-
cellStyle: (e, rowData) => {
63-
if (rowData.status === "pending") {
64-
return { color: "red" };
65-
}
66-
}
62+
{title: "Status", field: "status", lookup: {pending: "Pending", accepted: "Accepted", declined: "Declined"},
6763
},
68-
{title: "Status", field: "status",
69-
render: rowData => {
70-
return
71-
rowData.status === "pending" ? <p style={{ color: "#E87722", fontWeight: "bold" }}>Pending</p> :
72-
rowData.status === "approved" ? <p style={{ color: "#008240", fontWeight: "bold" }}>Accepted</p> :
73-
<p style={{ color: "#B0B700", fontWeight: "bold" }}>Rejected</p>
74-
}}
64+
{field: "status", editable: false,
65+
render: (rowData) =><div
66+
className={rowData.status === 'pending' ? 'pr_pending' :
67+
rowData.status === 'accepted' ? 'pr_accepted' : 'pr_declined' }>
68+
{rowData.status === 'pending' ? 'Pending' : rowData.status === 'accepted' ? 'Accepted' : 'Declined' }
69+
70+
</div>
71+
}
7572
]
7673

7774
const [data, setData] = useState([]);
@@ -91,7 +88,6 @@ function Pulls() {
9188
prs()
9289
.then(res => {
9390
var resp = res.data.data[0].data;
94-
console.log(resp);
9591
setData(resp);
9692
})
9793
.catch(error=>{
@@ -100,45 +96,31 @@ function Pulls() {
10096
})
10197
}, [])
10298

103-
// const handleRowUpdate = (newData, oldData, resolve) => {
104-
// let errorList = []
105-
// if (newData.name === undefined || newData.name === ''){
106-
// errorList.push("Please enter event name")
107-
// }
108-
// if(newData.location === undefined || newData.location === ''){
109-
// errorList.push("Please enter event location")
110-
// }
111-
// if(newData.startTime === undefined || newData.startTime === ''){
112-
// errorList.push("Please enter the start time")
113-
// }
114-
// if(newData.endTime === undefined || newData.endTime === ''){
115-
// errorList.push("Please enter the end time")
116-
// }
117-
// if(newData.description === undefined || newData.description === ''){
118-
// errorList.push("Please enter event description")
119-
// }
120-
// if(errorList.length < 1) {
121-
// _update_event(newData._id, newData)
122-
// .then(res => {
123-
// const dataUpdate = [...data];
124-
// const index = oldData.tableData._id;
125-
// dataUpdate[index] = newData;
126-
// setData([...dataUpdate]);
127-
// resolve()
128-
// setIserror(false)
129-
// setErrorMessages([])
130-
// })
131-
// .catch(error => {
132-
// setErrorMessages(["Update failed! Server error"])
133-
// setIserror(true)
134-
// resolve()
135-
// })
136-
// }else{
137-
// setErrorMessages(errorList)
138-
// setIserror(true)
139-
// resolve()
140-
// }
141-
// }
99+
const handleRowUpdate = (newData, oldData, resolve) => {
100+
let errorList = []
101+
if(errorList.length < 1) {
102+
update_prs(newData.id, newData)
103+
.then(res => {
104+
console.log(res);
105+
const dataUpdate = [...data];
106+
const index = oldData.tableData._id;
107+
dataUpdate[index] = newData;
108+
setData([...dataUpdate]);
109+
resolve()
110+
setIserror(false)
111+
setErrorMessages([])
112+
})
113+
.catch(error => {
114+
setErrorMessages(["Update failed!"])
115+
setIserror(true)
116+
resolve()
117+
})
118+
}else{
119+
setErrorMessages(errorList)
120+
setIserror(true)
121+
resolve()
122+
}
123+
}
142124

143125
return (
144126
<React.Fragment>
@@ -178,14 +160,14 @@ function Pulls() {
178160
fontSize: '14px',
179161
fontFamily: 'Axiforma',
180162
fontWeight: 'bolder',
181-
}
163+
},
182164
}}
183-
// editable={{
184-
// onRowAdd: (newData) =>
185-
// new Promise((resolve) => {
186-
// handleRowAdd(newData, resolve)
187-
// }),
188-
// }}
165+
editable={{
166+
onRowUpdate: (newData, oldData) =>
167+
new Promise((resolve) => {
168+
handleRowUpdate(newData, oldData, resolve);
169+
}),
170+
}}
189171
/>
190172
</div>
191173
</div>

0 commit comments

Comments
 (0)