Skip to content
Merged
4 changes: 2 additions & 2 deletions src/components/StandardNav.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ export function StandardNav() {
<Menu.Item>
{({ active }) => (
<a
href={`../../users/${username}`}
href={`${process.env.NEXT_PUBLIC_FRONTEND_URL}/users/${username}`}
className={classNames(
active ? '-100' : '',
'block flex px-4 py-2 text-sm text-white hover:bg-neutral-800'
Expand Down Expand Up @@ -435,7 +435,7 @@ export function StandardNav() {
<div className="space-y-1">
<Disclosure.Button
as="a"
href="#"
href={`${process.env.NEXT_PUBLIC_FRONTEND_URL}/users/${username}`}
className="hover-bg-neutral-900 block px-4 py-2 text-base font-medium text-gray-300 hover:text-gray-800 sm:px-6"
>
Your Profile
Expand Down
234 changes: 118 additions & 116 deletions src/components/dashboard/QuickSetttings.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,11 @@ export function QuickSettings() {
CTF solves. But, it does require you to solve
several problems first.
</p>
<a href="/practice/community">
<div onClick={() => window.location.href = "/practice/community"}>
<p className='flex tracking-loose text-blue-500 mt-2 hover:underline'>
Let's get hacking<ArrowRightIcon className='ml-1.5 h-5 mt-0.5'/>
</p>
</a>
</div>
</div>
</div>
</div>
Expand All @@ -163,141 +163,143 @@ export function QuickSettings() {

<h1 className="text-xl text-gray-300 mt-10"> SITE FEED</h1>


<div className="mx-auto mb-4 mt-1 w-full gap-4 gap-y-6 rounded-lg">
<div
style={{ backgroundColor: '#212121', borderColor: '#3b3a3a' }}
className=" mx-auto w-full rounded-lg px-4 py-2 pt-2 pb-5 text-white "
>
<h1 className="mt-2 text-xl font-semibold text-white">
{' '}
v.1.2 Patch Notes
</h1>
<div
style={{ backgroundColor: '#212121', borderColor: '#3b3a3a' }}
className=" mx-auto w-full rounded-lg px-4 py-2 pt-2 pb-5 text-white "
>
<h1 className="mt-2 text-xl font-semibold text-white">
{' '}
v.1.2 Patch Notes
</h1>

<p>
{' '}
A lot of changes in this one!
</p>
<p
id="feed1readmore"
className=" mt-4 cursor-pointer italic text-blue-500 hover:text-blue-500 hover:underline"
onClick={() => {
document.getElementById('feed1rest').classList.remove('hidden');
document.getElementById('feed1readmore').classList.add('hidden');
}}
>
Read More
</p>
<p>
{' '}
A lot of changes in this one!
</p>
<p
id="feed1readmore"
className=" mt-4 cursor-pointer italic text-blue-500 hover:text-blue-500 hover:underline"
onClick={() => {
document.getElementById('feed1rest').classList.remove('hidden');
document.getElementById('feed1readmore').classList.add('hidden');
}}
>
Read More
</p>

<div id="feed1rest" className="mt-2 hidden">
<div id="feed1rest" className="mt-2 hidden">

<p className="mt-1">
<div className="mt-1">

<span className='font-semibold text-blue-500'> CTFGuide Education</span><br></br>
<div className='grid grid-cols-6 gap-x-4'>
<div className='col-span-4'>
We're excited to introduce CTFGuide EDU, the world's first cybersecurity LMS powered by AI. We've been working on this for a while and we're super excited to finally release it.
<span className='font-semibold text-blue-500'> CTFGuide Education</span><br></br>
<div className='grid grid-cols-6 gap-x-4'>
<div className='col-span-4'>
We're excited to introduce CTFGuide EDU, the world's first cybersecurity LMS powered by AI. We've been working on this for a while and we're super excited to finally release it.

<br></br>
<br></br>
<br></br>
<br></br>

CTFGuide EDU allows for teachers to create custom lab environments for students. Student submissions can be played back in real-time, allowing for teachers to see exactly how a student solved a problem. Submissions are also automatically graded by our AI, allowing for teachers to focus on teaching, rather than grading.
CTFGuide EDU allows for teachers to create custom lab environments for students. Student submissions can be played back in real-time, allowing for teachers to see exactly how a student solved a problem. Submissions are also automatically graded by our AI, allowing for teachers to focus on teaching, rather than grading.

</div>
<div className='col-span-2'>
<iframe height="200" src="https://www.youtube-nocookie.com/embed/m0I__kMTziU?si=fI-qPfCgP3LAPAZ0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; auto-play;"
className="mx-auto w-full max-w-4xl rounded-md bg-white/5 shadow-2xl ring-1 ring-white/10"
allowfullscreen autoplay></iframe>
</div>
<div className='col-span-2'>
<iframe height="200" src="https://www.youtube-nocookie.com/embed/m0I__kMTziU?si=fI-qPfCgP3LAPAZ0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; auto-play;"
className="mx-auto w-full max-w-4xl rounded-md bg-white/5 shadow-2xl ring-1 ring-white/10"
allowfullscreen autoplay></iframe>
</div>
</div>
<br></br>
<br></br>

This feature required us to rework a lot of our internal API's meaning we've temporarily disabled some features. We're working on getting these features back up and running as soon as possible.
<br></br>
<br></br>
<span className='text-yellow-500 font-semibold'>Temporarily Disabled Features:</span> <br></br>
• Hints <br></br>
• Terminals on challenges <br></br>
• Comments <br></br>
• Likes <br></br>
• Create <br></br>
<br></br>
<span className='text-yellow-500 font-semibold'>The following features are not working and will be fixed in the next patch:</span> <br></br>
• Saving Progress on Learn <br></br>
• Hub feature on Practice
<br></br><br></br>
<span className='font-semibold text-blue-500'> A word about Learn...</span><br></br>
This entire feature is being replaced. We're partnering with The Pennsylvania State University to bring you a new and improved learning experience. We're excited to share more about this in the coming months.
<br></br> <br></br>
</div>
<p
id="feed1readless"
className=" mt-4 cursor-pointer italic text-blue-500 hover:text-blue-500 hover:underline"
onClick={() => {
document.getElementById('feed1rest').classList.add('hidden');
document
.getElementById('feed1readmore')
.classList.remove('hidden');
}}
>
See Less
</p>
</div>
</div>
<br></br>
<br></br>
<Transition.Root show={open} as={Fragment}>
<Dialog as="div" className="relative z-10" onClose={setOpen}>
<Transition.Child
as={Fragment}
enter="ease-out duration-300"
enterFrom="opacity-0"
enterTo="opacity-100"
leave="ease-in duration-200"
leaveFrom="opacity-100"
leaveTo="opacity-0"
>
<div className="fixed inset-0 bg-black bg-opacity-75 transition-opacity" />
</Transition.Child>

This feature required us to rework a lot of our internal API's meaning we've temporarily disabled some features. We're working on getting these features back up and running as soon as possible.
<br></br>
<br></br>
<span className='text-yellow-500 font-semibold'>Temporarily Disabled Features:</span> <br></br>
• Hints <br></br>
• Terminals on challenges <br></br>
• Comments <br></br>
• Likes <br></br>
• Create <br></br>
<br></br>
<span className='text-yellow-500 font-semibold'>The following features are not working and will be fixed in the next patch:</span> <br></br>
• Saving Progress on Learn <br></br>
• Hub feature on Practice
<br></br><br></br>
<span className='font-semibold text-blue-500'> A word about Learn...</span><br></br>
This entire feature is being replaced. We're partnering with The Pennsylvania State University to bring you a new and improved learning experience. We're excited to share more about this in the coming months.
<br></br> <br></br>
</p>
<p
id="feed1readless"
className=" mt-4 cursor-pointer italic text-blue-500 hover:text-blue-500 hover:underline"
onClick={() => {
document.getElementById('feed1rest').classList.add('hidden');
document
.getElementById('feed1readmore')
.classList.remove('hidden');
}}
>
See Less
</p>
</div>
</div>
<Transition.Root show={open} as={Fragment}>
<Dialog as="div" className="relative z-10" onClose={setOpen}>
<Transition.Child
as={Fragment}
enter="ease-out duration-300"
enterFrom="opacity-0"
enterTo="opacity-100"
leave="ease-in duration-200"
leaveFrom="opacity-100"
leaveTo="opacity-0"
>
<div className="fixed inset-0 bg-black bg-opacity-75 transition-opacity" />
</Transition.Child>
<div className="fixed inset-0 z-10 w-screen overflow-y-auto">
<div className="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0" >

<div className="fixed inset-0 z-10 w-screen overflow-y-auto">
<div className="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0" >
<Transition.Child
as={Fragment}
enter="ease-out duration-300"
enterFrom="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
enterTo="opacity-100 translate-y-0 sm:scale-100"
leave="ease-in duration-200"
leaveFrom="opacity-100 translate-y-0 sm:scale-100"
leaveTo="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
>

<Transition.Child
as={Fragment}
enter="ease-out duration-300"
enterFrom="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
enterTo="opacity-100 translate-y-0 sm:scale-100"
leave="ease-in duration-200"
leaveFrom="opacity-100 translate-y-0 sm:scale-100"
leaveTo="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
>
<Dialog.Panel className="w-full max-w-6xl relative transform overflow-hidden rounded-lg shadow-lg shadow-neutral-800 bg-gradient-to-r from-neutral-900 to-black px-4 text-left transition-all ">
<div>

<Dialog.Panel className="w-full max-w-6xl relative transform overflow-hidden rounded-lg shadow-lg shadow-neutral-800 bg-gradient-to-r from-neutral-900 to-black px-4 text-left transition-all ">
<div>

<div className="mt-3 sm:mt-5 w-full">
<h1 className='text-6xl mb-2 text-white text-center mt-12'>Introducing <span className="font-semibold rainbow_text_animated">CTFGuide AI</span> </h1>
<h2 className='text-2xl mb-8 text-white text-center'>The world's first <b>AI powered</b> teaching tool for cybersecurity.</h2>
<iframe width="auto" height="500" src="https://www.youtube-nocookie.com/embed/m0I__kMTziU?si=fI-qPfCgP3LAPAZ0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; auto-play;"
className="mx-auto mt-4 w-full max-w-4xl rounded-md bg-white/5 shadow-2xl ring-1 ring-white/10"
allowfullscreen autoplay></iframe>

<div className="mt-3 sm:mt-5 w-full">
<h1 className='text-6xl mb-2 text-white text-center mt-12'>Introducing <span className="font-semibold rainbow_text_animated">CTFGuide AI</span> </h1>
<h2 className='text-2xl mb-8 text-white text-center'>The world's first <b>AI powered</b> teaching tool for cybersecurity.</h2>
<iframe width="auto" height="500" src="https://www.youtube-nocookie.com/embed/m0I__kMTziU?si=fI-qPfCgP3LAPAZ0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; auto-play;"
className="mx-auto mt-4 w-full max-w-4xl rounded-md bg-white/5 shadow-2xl ring-1 ring-white/10"
allowfullscreen autoplay></iframe>

</div>
<div className='text-center mt-10 mb-10'>
<a href="../groups" className='text-xl px-4 py-2 text-center cursor-pointer font-semibold bg-blue-800 hover:bg-blue-800/50 rounded-lg text-white w-40'>Try the Demo</a>
<a onClick={() => { setOpen(false) }} className='ml-4 text-xl cursor-pointer text-center px-4 py-2 text-white w-40' >Maybe later...</a>

</div>
<div className='text-center mt-10 mb-10'>
<a href="../groups" className='text-xl px-4 py-2 text-center cursor-pointer font-semibold bg-blue-800 hover:bg-blue-800/50 rounded-lg text-white w-40'>Try the Demo</a>
<a onClick={() => { setOpen(false) }} className='ml-4 text-xl cursor-pointer text-center px-4 py-2 text-white w-40' >Maybe later...</a>
</div>
</div>

</div>
</Dialog.Panel>
</Transition.Child>
</div>

</Dialog.Panel>
</Transition.Child>
</div>
</div>
</Dialog>
</Transition.Root>
</div>
</Dialog>
</Transition.Root>
</div>


</>
);
Expand Down
5 changes: 4 additions & 1 deletion src/components/groups/announcements.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,16 @@ const Announcement = ({
{new Date(
announcementObj.createdAt
).toLocaleTimeString()}{' '}
{
/*
<span
className="bg-green-900 ml-4 text-sm text-white px-2 py-1 rounded-md"
style={{ marginRight: '5px' }}
>
{`${announcementObj.type}`}
</span>
* */
}
<br></br> <span style={{whiteSpace: 'pre-wrap'}}> {announcementObj.message}</span>
</span>{' '}
</li>
Expand Down Expand Up @@ -317,7 +321,6 @@ const Announcement = ({
{new Date(
announcementObj.createdAt
).toLocaleTimeString()}{' '}
{`(${announcementObj.type}) `}
<br></br>
<textarea
value={announcementObj.message}
Expand Down
Loading