Misc fixes
This commit is contained in:
parent
9f91cca187
commit
497883fcce
|
@ -6,7 +6,6 @@ import moment from 'moment-timezone';
|
||||||
import { apiUrl, isAdmin, isInstructor, getInstructor, BasicTable, requester, useIsMobile } from './utils.js';
|
import { apiUrl, isAdmin, isInstructor, getInstructor, BasicTable, requester, useIsMobile } from './utils.js';
|
||||||
import { NotFound, PleaseLogin } from './Misc.js';
|
import { NotFound, PleaseLogin } from './Misc.js';
|
||||||
import { InstructorClassDetail, InstructorClassAttendance } from './InstructorClasses.js';
|
import { InstructorClassDetail, InstructorClassAttendance } from './InstructorClasses.js';
|
||||||
import { courseCache } from './Courses.js';
|
|
||||||
import { PayPalPayNow } from './PayPal.js';
|
import { PayPalPayNow } from './PayPal.js';
|
||||||
import { tags } from './Courses.js';
|
import { tags } from './Courses.js';
|
||||||
|
|
||||||
|
@ -131,7 +130,7 @@ function NewClassTableCourse(props) {
|
||||||
<div className='byline'>
|
<div className='byline'>
|
||||||
<div className='tags'>
|
<div className='tags'>
|
||||||
{!!course.tags && course.tags.split(',').map(name =>
|
{!!course.tags && course.tags.split(',').map(name =>
|
||||||
<Label color={tags[name]} tag size='small'>
|
<Label key={name} color={tags[name]} tag size='small'>
|
||||||
{name}
|
{name}
|
||||||
</Label>
|
</Label>
|
||||||
)}
|
)}
|
||||||
|
@ -230,11 +229,25 @@ function NewClassTable(props) {
|
||||||
<>
|
<>
|
||||||
<div className='newclasstable'>
|
<div className='newclasstable'>
|
||||||
{sortedClasses.map(x =>
|
{sortedClasses.map(x =>
|
||||||
<NewClassTableCourse course={x.course} classes={x.classes} token={token} user={user} refreshUser={refreshUser} />
|
<NewClassTableCourse
|
||||||
|
key={x.course.id}
|
||||||
|
course={x.course}
|
||||||
|
classes={x.classes}
|
||||||
|
token={token}
|
||||||
|
user={user}
|
||||||
|
refreshUser={refreshUser}
|
||||||
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{courses.filter(x => !seenCourseIds.includes(x.id)).map(x =>
|
{courses.filter(x => !seenCourseIds.includes(x.id)).map(x =>
|
||||||
<NewClassTableCourse course={x} classes={false} token={token} user={user} refreshUser={refreshUser} />
|
<NewClassTableCourse
|
||||||
|
key={x.id}
|
||||||
|
course={x}
|
||||||
|
classes={false}
|
||||||
|
token={token}
|
||||||
|
user={user}
|
||||||
|
refreshUser={refreshUser}
|
||||||
|
/>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
@ -284,7 +297,7 @@ export function ClassFeed(props) {
|
||||||
|
|
||||||
export function Classes(props) {
|
export function Classes(props) {
|
||||||
const [classes, setClasses] = useState(classesCache);
|
const [classes, setClasses] = useState(classesCache);
|
||||||
const [courses, setCourses] = useState(courseCache);
|
const [courses, setCourses] = useState(false);
|
||||||
const [sortByCourse, setSortByCourse] = useState(sortCache);
|
const [sortByCourse, setSortByCourse] = useState(sortCache);
|
||||||
const [tagFilter, setTagFilter] = useState(tagFilterCache);
|
const [tagFilter, setTagFilter] = useState(tagFilterCache);
|
||||||
const { token, user, refreshUser } = props;
|
const { token, user, refreshUser } = props;
|
||||||
|
@ -293,7 +306,6 @@ export function Classes(props) {
|
||||||
requester('/courses/', 'GET', token)
|
requester('/courses/', 'GET', token)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
setCourses(res.results);
|
setCourses(res.results);
|
||||||
courseCache = res.results;
|
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
|
@ -351,45 +363,45 @@ export function Classes(props) {
|
||||||
</Button>
|
</Button>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>Filter by tag:</p>
|
||||||
Filter by tag:
|
|
||||||
<div className='coursetags'>
|
<div className='coursetags'>
|
||||||
|
<div
|
||||||
|
className='labelbox'
|
||||||
|
style={{borderColor: tagFilter === false ? 'black' : 'transparent'}}
|
||||||
|
>
|
||||||
|
<Label
|
||||||
|
onClick={() => {
|
||||||
|
setTagFilter(false);
|
||||||
|
tagFilterCache = false;
|
||||||
|
}}
|
||||||
|
as='a'
|
||||||
|
tag
|
||||||
|
>
|
||||||
|
No Filter
|
||||||
|
</Label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{Object.entries(tags).map(([name, color]) =>
|
||||||
<div
|
<div
|
||||||
|
key={name}
|
||||||
className='labelbox'
|
className='labelbox'
|
||||||
style={{borderColor: tagFilter === false ? 'black' : 'transparent'}}
|
style={{borderColor: tagFilter === name ? 'black' : 'transparent'}}
|
||||||
>
|
>
|
||||||
<Label
|
<Label
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setTagFilter(false);
|
setTagFilter(name);
|
||||||
tagFilterCache = false;
|
tagFilterCache = name;
|
||||||
}}
|
}}
|
||||||
as='a'
|
as='a'
|
||||||
|
color={color}
|
||||||
tag
|
tag
|
||||||
>
|
>
|
||||||
No Filter
|
{name}
|
||||||
</Label>
|
</Label>
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
{Object.entries(tags).map(([name, color]) =>
|
</div>
|
||||||
<div
|
|
||||||
className='labelbox'
|
|
||||||
style={{borderColor: tagFilter === name ? 'black' : 'transparent'}}
|
|
||||||
>
|
|
||||||
<Label
|
|
||||||
onClick={() => {
|
|
||||||
setTagFilter(name);
|
|
||||||
tagFilterCache = name;
|
|
||||||
}}
|
|
||||||
as='a'
|
|
||||||
color={color}
|
|
||||||
tag
|
|
||||||
>
|
|
||||||
{name}
|
|
||||||
</Label>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{classes.length && courses.length ?
|
{classes.length && courses.length ?
|
||||||
sortByCourse ?
|
sortByCourse ?
|
||||||
|
|
|
@ -24,7 +24,7 @@ export const tags = {
|
||||||
Misc: 'grey',
|
Misc: 'grey',
|
||||||
};
|
};
|
||||||
|
|
||||||
export let courseCache = false;
|
let courseCache = false;
|
||||||
let tagFilterCache = false;
|
let tagFilterCache = false;
|
||||||
|
|
||||||
export function Courses(props) {
|
export function Courses(props) {
|
||||||
|
@ -53,45 +53,45 @@ export function Courses(props) {
|
||||||
<InstructorCourseList courses={courses} setCourses={setCourses} {...props} />
|
<InstructorCourseList courses={courses} setCourses={setCourses} {...props} />
|
||||||
</Segment>}
|
</Segment>}
|
||||||
|
|
||||||
<p>
|
<p>Filter by tag:</p>
|
||||||
Filter by tag:
|
|
||||||
<div className='coursetags'>
|
<div className='coursetags'>
|
||||||
|
<div
|
||||||
|
className='labelbox'
|
||||||
|
style={{borderColor: tagFilter === false ? 'black' : 'transparent'}}
|
||||||
|
>
|
||||||
|
<Label
|
||||||
|
onClick={() => {
|
||||||
|
setTagFilter(false);
|
||||||
|
tagFilterCache = false;
|
||||||
|
}}
|
||||||
|
as='a'
|
||||||
|
tag
|
||||||
|
>
|
||||||
|
No Filter
|
||||||
|
</Label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{Object.entries(tags).map(([name, color]) =>
|
||||||
<div
|
<div
|
||||||
|
key={name}
|
||||||
className='labelbox'
|
className='labelbox'
|
||||||
style={{borderColor: tagFilter === false ? 'black' : 'transparent'}}
|
style={{borderColor: tagFilter === name ? 'black' : 'transparent'}}
|
||||||
>
|
>
|
||||||
<Label
|
<Label
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setTagFilter(false);
|
setTagFilter(name);
|
||||||
tagFilterCache = false;
|
tagFilterCache = name;
|
||||||
}}
|
}}
|
||||||
as='a'
|
as='a'
|
||||||
|
color={color}
|
||||||
tag
|
tag
|
||||||
>
|
>
|
||||||
No Filter
|
{name}
|
||||||
</Label>
|
</Label>
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
{Object.entries(tags).map(([name, color]) =>
|
</div>
|
||||||
<div
|
|
||||||
className='labelbox'
|
|
||||||
style={{borderColor: tagFilter === name ? 'black' : 'transparent'}}
|
|
||||||
>
|
|
||||||
<Label
|
|
||||||
onClick={() => {
|
|
||||||
setTagFilter(name);
|
|
||||||
tagFilterCache = name;
|
|
||||||
}}
|
|
||||||
as='a'
|
|
||||||
color={color}
|
|
||||||
tag
|
|
||||||
>
|
|
||||||
{name}
|
|
||||||
</Label>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{courses ?
|
{courses ?
|
||||||
<Table basic='very'>
|
<Table basic='very'>
|
||||||
|
@ -117,7 +117,7 @@ export function Courses(props) {
|
||||||
</Table.Cell>
|
</Table.Cell>
|
||||||
<Table.Cell>
|
<Table.Cell>
|
||||||
{!!x.tags && x.tags.split(',').map(name =>
|
{!!x.tags && x.tags.split(',').map(name =>
|
||||||
<Label color={tags[name]} tag>
|
<Label key={name} color={tags[name]} tag>
|
||||||
{name}
|
{name}
|
||||||
</Label>
|
</Label>
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -108,7 +108,11 @@ function MemberInfo(props) {
|
||||||
:
|
:
|
||||||
<Table.Row><Table.Cell>None, please sign up for an <Link to={'/courses/249/'}>Orientation</Link></Table.Cell></Table.Row>
|
<Table.Row><Table.Cell>None, please sign up for an <Link to={'/courses/249/'}>Orientation</Link></Table.Cell></Table.Row>
|
||||||
}
|
}
|
||||||
{user.training.length > 3 && <Link to='/training'>[more]</Link>}
|
{user.training.length > 3 &&
|
||||||
|
<Table.Row><Table.Cell>
|
||||||
|
<Link to='/training'>[more]</Link>
|
||||||
|
</Table.Cell></Table.Row>
|
||||||
|
}
|
||||||
</Table.Body>
|
</Table.Body>
|
||||||
</BasicTable>
|
</BasicTable>
|
||||||
|
|
||||||
|
@ -128,7 +132,11 @@ function MemberInfo(props) {
|
||||||
:
|
:
|
||||||
<Table.Row><Table.Cell>None</Table.Cell></Table.Row>
|
<Table.Row><Table.Cell>None</Table.Cell></Table.Row>
|
||||||
}
|
}
|
||||||
{user.transactions.length > 3 && <Link to='/transactions'>[more]</Link>}
|
{user.transactions.length > 3 &&
|
||||||
|
<Table.Row><Table.Cell>
|
||||||
|
<Link to='/transactions'>[more]</Link>
|
||||||
|
</Table.Cell></Table.Row>
|
||||||
|
}
|
||||||
</Table.Body>
|
</Table.Body>
|
||||||
</BasicTable>
|
</BasicTable>
|
||||||
|
|
||||||
|
|
|
@ -194,10 +194,10 @@ export function Members(props) {
|
||||||
<p>
|
<p>
|
||||||
Sort by{' '}
|
Sort by{' '}
|
||||||
{Object.entries(memberSorts).map((x, i) =>
|
{Object.entries(memberSorts).map((x, i) =>
|
||||||
<>
|
<React.Fragment key={x[0]}>
|
||||||
<a href='javascript:void(0)' onClick={() => doSort(x[0])}>{x[1]}</a>
|
<a href='javascript:void(0)' onClick={() => doSort(x[0])}>{x[1]}</a>
|
||||||
{i < Object.keys(memberSorts).length - 1 && ', '}
|
{i < Object.keys(memberSorts).length - 1 && ', '}
|
||||||
</>
|
</React.Fragment>
|
||||||
)}.
|
)}.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
.coursetags .ui.tag.label {
|
.coursetags .ui.tag.label {
|
||||||
margin-top: 1rem;
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.newclasstable {
|
.newclasstable {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user