Skip to content

Commit e76d77a

Browse files
fixes
many more fixes
1 parent a060957 commit e76d77a

File tree

9 files changed

+76
-88
lines changed

9 files changed

+76
-88
lines changed

src/components/admin-head.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class Header extends Component {
1818
}
1919

2020
render() {
21-
const { token, user } = this.context
21+
// const { token, user } = this.context
2222
return (
2323
<React.Fragment>
2424
<nav className="navbar navbar-expand-md navbar-lighter bg-lighter">

src/components/dash-header.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Header extends Component {
2323

2424

2525
render() {
26-
const { token, user } = this.context
26+
// const { token, user } = this.context
2727
return (
2828
<React.Fragment>
2929
<nav className="navbar navbar-expand-md navbar-lighter bg-lighter">

src/views/Dashboard/Dashboard.jsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react";
22
import Header from '../../components/dash-header';
33
import { Card, BigCard } from "../../components/Card";
44
import { AiOutlineLink } from 'react-icons/ai';
5-
import { BsCheckAll, BsX, BsBackspaceReverse } from 'react-icons/bs';
5+
import { BsCheckAll, BsX } from 'react-icons/bs';
66
import { useUserContext } from "../../context/AuthContext";
77

88
import { useHistory } from "react-router-dom";
@@ -65,6 +65,7 @@ function Dashboard() {
6565
<a
6666
href={rowData.pr_link}
6767
target="_blank"
68+
rel="noreferrer"
6869
style={{ textDecoration: 'none' }}
6970
>
7071
{rowData.pr_link}

src/views/admin/adminService.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,7 @@ export const delete_programs = (e) => {
5151
export const _all_users = () => {
5252
return http.get(`/user/`)
5353
}
54-
// update user role
54+
// update user role _update_user
55+
export const _update_user = (e, p) => {
56+
return http.put(`/auth/role/${e}`, p)
57+
}

src/views/admin/custom.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class Dashboard extends Component {
1717
}
1818

1919
render() {
20-
const { token, user } = this.context
20+
const { user } = this.context
2121
return (
2222
<React.Fragment>
2323
<div className="admin-greeting"> <p>Welcome Here, {user?.username}</p></div>
@@ -45,7 +45,7 @@ class Dashboard extends Component {
4545
this.setState({ pr: count })
4646
let accept = 0
4747
for(let i=0; i<count; i++) {
48-
if (resp[i]["status"] == "accepted") {
48+
if (resp[i]["status"] === "accepted") {
4949
accept += 1
5050
}
5151
}

src/views/admin/events.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import Alert from '@material-ui/lab/Alert';
2323
import { forwardRef } from 'react';
2424
import MaterialTable from "material-table";
2525
import { _all_events, _add_event, _update_event, _delete_event } from './adminService';
26-
import { relativeTimeRounding } from 'moment';
26+
// import { relativeTimeRounding } from 'moment';
2727

2828
const tableIcons = {
2929
Add: forwardRef((props, ref) => <AddBox {...props} ref={ref} />),
@@ -79,7 +79,7 @@ function Events() {
7979
return true
8080
}},
8181
{title: "Link", field: "event_link", type: "url", emptyValue:()=><em>No Event Link</em>, validate: rowData => {
82-
if (rowData.editing == "delete"){
82+
if (rowData.editing === "delete"){
8383
return true
8484
}
8585
if (rowData.event_link === undefined || rowData.event_link === "") {

src/views/admin/joints.js

+2-73
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
11
import React, { Component } from "react";
2-
// import Logo from "../../assets/icons/Logo.png";
32
import Dashboard from "./custom";
4-
// import Events from './events';
5-
// import Programs from './programs';
6-
// import User from './users';
7-
// import Repos from './repos';
83
import '../../styles/views/admin.css';
94
import Header from '../../components/admin-head';
10-
// import { FiBell } from 'react-icons/fi';
11-
// import { MdKeyboardArrowDown } from 'react-icons/md';
125

136
class Admin extends Component {
147
constructor(props) {
@@ -18,79 +11,15 @@ class Admin extends Component {
1811
// subMenu: false
1912
};
2013
}
21-
// showDashboard = () => {
22-
// this.setState({ value: 0 });
23-
// }
24-
// showUsers = () => {
25-
// this.setState({ value: 1 });
26-
// }
27-
// showRepos = () => {
28-
// this.setState({ value: 2 });
29-
// }
30-
// showEvents = () => {
31-
// this.setState({ value: 3 });
32-
// }
33-
// showPrograms = () => {
34-
// this.setState({ value: 4 });
35-
// }
36-
// showsubmenu = () => {
37-
// this.setState(prevState => ({
38-
// subMenu: !prevState.subMenu
39-
// }));
40-
// }
41-
14+
4215
render() {
43-
const { value, subMenu } = this.state;
4416
return (
4517
<>
4618
<Header />
4719
<div className="container">
4820
<Dashboard />
4921
</div>
50-
{/* <div className="dashboard">
51-
<div className="">
52-
<div className="logo-box a-box">
53-
<img src={Logo} alt="Logo" className="logo" />
54-
<ul>
55-
<li className={value === 0 ? "admin-active" : ""} onClick={() => { this.showDashboard(); }} >Dashboard</li>
56-
<li className={value === 1 ? "admin-active" : ""} onClick={() => { this.showUsers(); }} >My Users</li>
57-
<li className={value === 3 ? "admin-active" : ""} onClick={() => { this.showEvents(); }} >All Events</li>
58-
<li className={value === 4 ? "admin-active" : ""} onClick={() => { this.showPrograms(); }} >All Programs</li>
59-
<li className={value === 2 ? "admin-active" : ""} onClick={() => { this.showRepos(); }} >All PRs</li>
60-
</ul>
61-
<div className="right-bar">
62-
<div>
63-
<FiBell className="belln" />
64-
<span className="far-right" onClick={() => { this.showsubmenu(); }} >
65-
<icon>LK</icon>
66-
<text>
67-
Lola
68-
</text>
69-
< MdKeyboardArrowDown />
70-
</span>
71-
</div>
72-
{
73-
subMenu ?
74-
<div className="below">
75-
<ol>
76-
<li><a href="/">Main Site</a></li>
77-
<li><a href="/">My Profile</a></li>
78-
<li><a href="/">Log Out</a></li>
79-
</ol>
80-
</div>
81-
:
82-
<></>
83-
}
84-
85-
</div>
86-
</div>
87-
<div className="dashboard-body admin-body">
88-
{
89-
this.state.value === 4 ? (<Programs />) : this.state.value === 3 ? (<Events />) : this.state.value === 2 ? (<Repos />) : this.state.value === 1 ? (<User />) : (<Dashboard />)
90-
}
91-
</div>
92-
</div>
93-
</div> */}
22+
9423
</>
9524
)
9625
}

src/views/admin/repos.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import Alert from '@material-ui/lab/Alert';
2323
import { forwardRef } from 'react';
2424
import MaterialTable from "material-table";
2525
import { prs, update_prs } from './adminService';
26-
import { withTheme } from '@material-ui/core';
2726

2827

2928
const tableIcons = {
@@ -54,6 +53,7 @@ function Pulls() {
5453
<a
5554
href={rowData.pr_link}
5655
target="_blank"
56+
rel="noreferrer"
5757
style={{ textDecoration: 'none' }}
5858
>
5959
{rowData.pr_link}

src/views/admin/users.js

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

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

2827

2928
const tableIcons = {
@@ -54,36 +53,76 @@ function Users() {
5453
{title: "Username", field: "username", editable: false },
5554
{title: "Email", field: "email", editable: false },
5655
{title: "Joined", field: "created_at", type: "datetime", editable: false },
57-
{title: "Role", field: "role", editable: false,
56+
// {title: "PRs Submitted", field: "role", editable: false },
57+
{title: "Role", field: "role", editable: false,
5858
render: (rowData) => <div
5959
className={rowData.role === 'user' ? 'user_styled' : 'admin_styled' } >
6060
{rowData.role === 'user' ? ' User' : 'Admin' }
6161
</div>
6262

6363
},
64-
// {title: "PR Submitted", field: "role", editable: false },
64+
{title: "Admin Access", field: "role", lookup: {user: "Not Granted", admin: "Granted"} },
6565

6666
]
6767

6868
const [data, setData] = useState([]);
6969
const [iserror, setIserror] = useState(false);
70+
const [issuccess, setIssuccess] = useState(false);
7071
const [errorMessages, setErrorMessages] = useState([]);
72+
const [successMessages, setSuccessErrorMessages] = useState([]);
7173

7274

7375

7476
useEffect(() => {
7577
_all_users()
7678
.then(res => {
77-
console.log(res)
79+
// console.log(res)
7880
var resp = res.data.data[0].data;
7981
setData(resp);
8082
})
8183
.catch(error=>{
82-
console.log(error)
84+
// console.log(error)
8385
setErrorMessages(["Cannot load users data"])
8486
setIserror(true)
8587
})
8688
}, [])
89+
90+
const handleRowUpdate = (newData, oldData, resolve) => {
91+
let errorList = []
92+
// console.log('we here')
93+
if (errorList.length < 1) {
94+
// console.log(newData._id)
95+
_update_user(newData._id, newData)
96+
// console.log('00000', newData._id)
97+
.then(res => {
98+
// console.log('went')
99+
// console.log(res)
100+
const dataUpdate = [...data]
101+
const index = oldData.tableData._id;
102+
dataUpdate[index] = newData;
103+
setData([...dataUpdate]);
104+
resolve()
105+
setSuccessErrorMessages([`${newData.username}'s role updated sucessfully`])
106+
setIssuccess(true)
107+
setIserror(false)
108+
setErrorMessages([])
109+
window.location.reload(false);
110+
})
111+
.catch(error => {
112+
console.log('didnt went')
113+
console.log(error)
114+
setErrorMessages(["Update failed!"])
115+
setIserror(true)
116+
setIssuccess(false)
117+
resolve()
118+
})
119+
} else {
120+
// console.log('ok')
121+
setErrorMessages(errorList)
122+
setIserror(true)
123+
resolve()
124+
}
125+
}
87126

88127

89128
return (
@@ -100,6 +139,16 @@ function Users() {
100139
</Alert>
101140
}
102141
</div>
142+
<div>
143+
{issuccess &&
144+
<Alert severity="success">
145+
{successMessages}
146+
{/* {errorMessages.map((msg, i) => {
147+
return <div key={i}>{msg}</div>
148+
})} */}
149+
</Alert>
150+
}
151+
</div>
103152
<div className="contribution-cards admin-cards">
104153
<MaterialTable
105154
title="Registered users"
@@ -126,6 +175,12 @@ function Users() {
126175
fontWeight: 'bolder',
127176
}
128177
}}
178+
editable={{
179+
onRowUpdate: (newData, oldData) =>
180+
new Promise((resolve) => {
181+
handleRowUpdate(newData, oldData, resolve);
182+
}),
183+
}}
129184
/>
130185

131186
</div>

0 commit comments

Comments
 (0)