diff --git a/webclient/src/Admin.js b/webclient/src/Admin.js index 32f64d3..5828818 100644 --- a/webclient/src/Admin.js +++ b/webclient/src/Admin.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState, useEffect, useReducer } from 'react'; import { BrowserRouter as Router, Switch, Route, Link, useParams, useHistory } from 'react-router-dom'; import './light.css'; import { Button, Container, Checkbox, Dimmer, Divider, Dropdown, Form, Grid, Header, Icon, Image, Menu, Message, Segment, Table } from 'semantic-ui-react'; @@ -6,10 +6,108 @@ import moment from 'moment-timezone'; import { apiUrl, statusColor, BasicTable, staticUrl, requester } from './utils.js'; import { NotFound } from './Misc.js'; +let vettingCache = false; let historyCache = false; let excludeSystemCache = true; let focusCache = false; + +export function AdminVet(props) { + const { token, user, member, refreshVetting } = props; + const [loading, setLoading] = useState(false); + const [yousure, setYousure] = useState(false); + + const handleVet = (e) => { + e.preventDefault(); + + if (yousure) { + setLoading(true); + const data = {vetted_date: moment.utc().tz('America/Edmonton').format('YYYY-MM-DD')} + requester('/members/' + member.id + '/', 'PATCH', token, data) + .then(res => { + refreshVetting(); + }) + .catch(err => { + console.log(err); + }); + } else { + setYousure(true); + } + }; + + return ( + + ); +} + +export function AdminVetting(props) { + const { token, user } = props; + const [vetting, setVetting] = useState(vettingCache); + const [refreshCount, refreshVetting] = useReducer(x => x + 1, 0); + const [error, setError] = useState(false); + + useEffect(() => { + requester('/vetting/', 'GET', token) + .then(res => { + setVetting(res.results); + vettingCache = res.results; + }) + .catch(err => { + console.log(err); + }); + }, [refreshCount]); + + return ( +
+ ↳ x.email).join(',')}>Email All +
+ > + : +Loading...
+ : +Error loading.
+ } +Members who are Current or Due, and past their probationary period.
+Spaceport backups are created daily. 14 days are kept on the server.