Skip to content

Conversation

@mvolkmann
Copy link
Collaborator

@mvolkmann mvolkmann commented Jun 4, 2024

This PR is for the issue at #2446.

@@ -36,15 +36,15 @@ export default function DatePickerField({
<div className="date-picker-field">
<LocalizationProvider dateAdapter={AdapterDayjs}>
<DatePicker
label={label}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I alphabetized these props.

@@ -0,0 +1,61 @@
import PropTypes from 'prop-types';
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several components implemented their own confirmation dialog.
I created this reusable component and changed some components to use this instead of their own.

links.push(['/birthday-reports', 'Birthdays']);
}

links.push(['/certification-reports', 'Certifications']);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new menu item for the new report.

margin-left: 2rem;
}

.date-picker-field {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These CSS properties were moved to here from the DatePickerField component.

CardContent,
CardHeader,
Chip,
Dialog,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I factored out the confirmation dialog used in this component and changed it to use the new ConfirmationDialog component.


import AnniversaryReportPage from '../../pages/AnniversaryReportPage';
import BirthdayReportPage from '../../pages/BirthdayReportPage';
import CertificationReportPage from '../../pages/CertificationReportPage';
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added this new report page.


const SkillSelector = () => (
<Autocomplete
blurOnSelect
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I alphabetized the props.

@@ -0,0 +1,31 @@
import React, { useReducer, useState } from 'react';
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This implements the new Certifications report page which provides three things:

  • A button to open the "Manage Certifications" dialog.
  • An "Earned Certifications table.
  • The "Managed Certifications" dialog.

import { getGuildsForMember } from '../api/guild';
import { getAvatarURL } from '../api/api.js';
import ProfilePage from './ProfilePage';
import CertificationBadges from '../components/certifications/CertificationBadges';
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added display of badges for earned certifications to member profile pages.

import { addGuildMember, deleteGuildMember } from '../api/guild';
import { updateMember } from '../api/member';
import { getEmployeeHours } from '../api/hours';
import EarnedCertificationsTable from '../components/certifications/EarnedCertificationsTable';
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added an earned certifications table to the profile page for the logged in user.
They can add, edit, and delete only their own certifications.
They can also create new certifications and then use those to create their earned certifications.
They cannot however manage certifications like admins can from the Certifications report page.
This means they cannot edit, delete, or merge certifications. Only admins can do those things.

Copy link
Collaborator

@jackkeller jackkeller left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work!


import './CertificationBadges.css';

const certificationBaseUrl = 'http://localhost:3000/certification';
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently this will only work for me because it relies on endpoints that I implemented in a mock server that I run locally. I need to work with a Micronaut developer to get them ported over.


import './Certifications.css';

const certificationBaseUrl = 'http://localhost:3000/certification';
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently this will only work for me because it relies on endpoints that I implemented in a mock server that I run locally. I need to work with a Micronaut developer to get them ported over.

Copy link
Contributor

@vhscom vhscom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mvolkmann mvolkmann marked this pull request as ready for review June 11, 2024 19:14
@mvolkmann mvolkmann merged commit 02af97f into develop Jun 11, 2024
@timyates timyates deleted the feature-certifications-ui branch June 12, 2024 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants