Forced merge: merge ai-dev into master
This commit is contained in:
commit
19d2eef9fb
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,3 +1,8 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
*/node_modules/
|
*/node_modules/
|
||||||
*/build/
|
*/build/
|
||||||
|
|
||||||
|
**/node_modules/
|
||||||
|
**/build/
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
File diff suppressed because one or more lines are too long
1
frontend/json/runtimeError.json
Normal file
1
frontend/json/runtimeError.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@ -15,7 +15,7 @@ export const colorsBgLight = {
|
|||||||
'bg-emerald-500 border-emerald-500 dark:bg-pavitra-blue dark:border-pavitra-blue text-white',
|
'bg-emerald-500 border-emerald-500 dark:bg-pavitra-blue dark:border-pavitra-blue text-white',
|
||||||
danger: 'bg-red-500 border-red-500 text-white',
|
danger: 'bg-red-500 border-red-500 text-white',
|
||||||
warning: 'bg-yellow-500 border-yellow-500 text-white',
|
warning: 'bg-yellow-500 border-yellow-500 text-white',
|
||||||
info: 'bg-blue-500 border-blue-500 dark:bg-pavitra-blue dark:border-pavitra-blue text-white',
|
info: 'bg-sky-600 border-sky-600 dark:bg-sky-600 dark:border-sky-600 text-white',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const colorsText = {
|
export const colorsText = {
|
||||||
@ -25,7 +25,7 @@ export const colorsText = {
|
|||||||
success: 'text-emerald-500',
|
success: 'text-emerald-500',
|
||||||
danger: 'text-red-500',
|
danger: 'text-red-500',
|
||||||
warning: 'text-yellow-500',
|
warning: 'text-yellow-500',
|
||||||
info: 'text-blue-500',
|
info: 'text-sky-600 dark:text-sky-400',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const colorsOutline = {
|
export const colorsOutline = {
|
||||||
@ -37,7 +37,7 @@ export const colorsOutline = {
|
|||||||
success: [colorsText.success, 'border-emerald-500'].join(' '),
|
success: [colorsText.success, 'border-emerald-500'].join(' '),
|
||||||
danger: [colorsText.danger, 'border-red-500'].join(' '),
|
danger: [colorsText.danger, 'border-red-500'].join(' '),
|
||||||
warning: [colorsText.warning, 'border-yellow-500'].join(' '),
|
warning: [colorsText.warning, 'border-yellow-500'].join(' '),
|
||||||
info: [colorsText.info, 'border-blue-500'].join(' '),
|
info: [colorsText.info, 'border-sky-600'].join(' '),
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getButtonColor = (
|
export const getButtonColor = (
|
||||||
@ -59,7 +59,7 @@ export const getButtonColor = (
|
|||||||
success: 'ring-emerald-300 dark:ring-pavitra-blue',
|
success: 'ring-emerald-300 dark:ring-pavitra-blue',
|
||||||
danger: 'ring-red-300 dark:ring-red-700',
|
danger: 'ring-red-300 dark:ring-red-700',
|
||||||
warning: 'ring-yellow-300 dark:ring-yellow-700',
|
warning: 'ring-yellow-300 dark:ring-yellow-700',
|
||||||
info: 'ring-blue-300 dark:ring-pavitra-blue',
|
info: 'ring-sky-300 dark:ring-sky-700',
|
||||||
},
|
},
|
||||||
active: {
|
active: {
|
||||||
white: 'bg-gray-100',
|
white: 'bg-gray-100',
|
||||||
@ -69,7 +69,7 @@ export const getButtonColor = (
|
|||||||
success: 'bg-emerald-700 dark:bg-pavitra-blue',
|
success: 'bg-emerald-700 dark:bg-pavitra-blue',
|
||||||
danger: 'bg-red-700 dark:bg-red-600',
|
danger: 'bg-red-700 dark:bg-red-600',
|
||||||
warning: 'bg-yellow-700 dark:bg-yellow-600',
|
warning: 'bg-yellow-700 dark:bg-yellow-600',
|
||||||
info: 'bg-blue-700 dark:bg-pavitra-blue',
|
info: 'bg-sky-700 dark:bg-sky-600',
|
||||||
},
|
},
|
||||||
bg: {
|
bg: {
|
||||||
white: 'bg-white text-black',
|
white: 'bg-white text-black',
|
||||||
@ -79,7 +79,7 @@ export const getButtonColor = (
|
|||||||
success: 'bg-emerald-600 dark:bg-pavitra-blue text-white',
|
success: 'bg-emerald-600 dark:bg-pavitra-blue text-white',
|
||||||
danger: 'bg-red-600 text-white dark:bg-red-500 ',
|
danger: 'bg-red-600 text-white dark:bg-red-500 ',
|
||||||
warning: 'bg-yellow-600 dark:bg-yellow-500 text-white',
|
warning: 'bg-yellow-600 dark:bg-yellow-500 text-white',
|
||||||
info: ' bg-blue-600 dark:bg-pavitra-blue text-white ',
|
info: 'bg-sky-600 dark:bg-sky-600 text-white',
|
||||||
},
|
},
|
||||||
bgHover: {
|
bgHover: {
|
||||||
white: 'hover:bg-gray-100',
|
white: 'hover:bg-gray-100',
|
||||||
@ -92,7 +92,7 @@ export const getButtonColor = (
|
|||||||
'hover:bg-red-700 hover:border-red-700 hover:dark:bg-red-600 hover:dark:border-red-600',
|
'hover:bg-red-700 hover:border-red-700 hover:dark:bg-red-600 hover:dark:border-red-600',
|
||||||
warning:
|
warning:
|
||||||
'hover:bg-yellow-700 hover:border-yellow-700 hover:dark:bg-yellow-600 hover:dark:border-yellow-600',
|
'hover:bg-yellow-700 hover:border-yellow-700 hover:dark:bg-yellow-600 hover:dark:border-yellow-600',
|
||||||
info: 'hover:bg-blue-700 hover:border-blue-700 hover:dark:bg-pavitra-blue/80 hover:dark:border-pavitra-blue/80',
|
info: 'hover:bg-sky-700 hover:border-sky-700 hover:dark:bg-sky-600 hover:dark:border-sky-600',
|
||||||
},
|
},
|
||||||
borders: {
|
borders: {
|
||||||
white: 'border-white',
|
white: 'border-white',
|
||||||
@ -102,14 +102,14 @@ export const getButtonColor = (
|
|||||||
success: 'border-emerald-600 dark:border-pavitra-blue',
|
success: 'border-emerald-600 dark:border-pavitra-blue',
|
||||||
danger: 'border-red-600 dark:border-red-500',
|
danger: 'border-red-600 dark:border-red-500',
|
||||||
warning: 'border-yellow-600 dark:border-yellow-500',
|
warning: 'border-yellow-600 dark:border-yellow-500',
|
||||||
info: 'border-blue-600 border-blue-600 dark:border-pavitra-blue',
|
info: 'border-sky-600 dark:border-sky-600',
|
||||||
},
|
},
|
||||||
text: {
|
text: {
|
||||||
contrast: 'dark:text-slate-100',
|
contrast: 'dark:text-slate-100',
|
||||||
success: 'text-emerald-600 dark:text-pavitra-blue',
|
success: 'text-emerald-600 dark:text-pavitra-blue',
|
||||||
danger: 'text-red-600 dark:text-red-500',
|
danger: 'text-red-600 dark:text-red-500',
|
||||||
warning: 'text-yellow-600 dark:text-yellow-500',
|
warning: 'text-yellow-600 dark:text-yellow-500',
|
||||||
info: 'text-blue-600 dark:text-pavitra-blue',
|
info: 'text-sky-600 dark:text-sky-400',
|
||||||
},
|
},
|
||||||
outlineHover: {
|
outlineHover: {
|
||||||
contrast:
|
contrast:
|
||||||
@ -120,7 +120,7 @@ export const getButtonColor = (
|
|||||||
'hover:bg-red-600 hover:text-white hover:text-white hover:dark:text-white hover:dark:border-red-600',
|
'hover:bg-red-600 hover:text-white hover:text-white hover:dark:text-white hover:dark:border-red-600',
|
||||||
warning:
|
warning:
|
||||||
'hover:bg-yellow-600 hover:text-white hover:text-white hover:dark:text-white hover:dark:border-yellow-600',
|
'hover:bg-yellow-600 hover:text-white hover:text-white hover:dark:text-white hover:dark:border-yellow-600',
|
||||||
info: 'hover:bg-blue-600 hover:bg-blue-600 hover:text-white hover:dark:text-white hover:dark:border-pavitra-blue',
|
info: 'hover:bg-sky-600 hover:border-sky-600 hover:text-white hover:dark:bg-sky-600 hover:dark:border-sky-600',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,7 @@ export default function BaseButton({
|
|||||||
} else if (small) {
|
} else if (small) {
|
||||||
componentClass.push('text-sm', roundedFull ? 'px-3 py-1' : 'p-1');
|
componentClass.push('text-sm', roundedFull ? 'px-3 py-1' : 'p-1');
|
||||||
} else {
|
} else {
|
||||||
componentClass.push('py-2', roundedFull ? 'px-6' : 'px-3');
|
componentClass.push('py-1.5', roundedFull ? 'px-4' : 'px-2');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (disabled) {
|
if (disabled) {
|
||||||
|
|||||||
@ -32,3 +32,9 @@
|
|||||||
.introjs-prevbutton {
|
.introjs-prevbutton {
|
||||||
@apply bg-transparent border border-blue-600 text-blue-600 !important;
|
@apply bg-transparent border border-blue-600 text-blue-600 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Compact UI overrides */
|
||||||
|
html { font-size: 14px; }
|
||||||
|
.container { padding-left: 1rem; padding-right: 1rem; }
|
||||||
|
td, th { padding: 0.5rem !important; }
|
||||||
|
.gap-4 { gap: 0.75rem !important; }
|
||||||
|
|||||||
@ -67,6 +67,11 @@ export const webPagesNavBar = [
|
|||||||
href: '/about',
|
href: '/about',
|
||||||
label: 'about',
|
label: 'about',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
href: '/web_pages/cources',
|
||||||
|
label: 'Cources',
|
||||||
|
},
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
export default menuNavBar;
|
export default menuNavBar;
|
||||||
|
|||||||
43
frontend/src/pages/web_pages/cources.tsx
Normal file
43
frontend/src/pages/web_pages/cources.tsx
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import Head from 'next/head';
|
||||||
|
import axios from 'axios';
|
||||||
|
import LayoutGuest from '../../layouts/Guest';
|
||||||
|
import WebSiteHeader from '../../components/WebPageComponents/Header';
|
||||||
|
import WebSiteFooter from '../../components/WebPageComponents/Footer';
|
||||||
|
|
||||||
|
const Cources = () => {
|
||||||
|
const [courses, setCourses] = useState([]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
axios.get('/courses')
|
||||||
|
.then(response => {
|
||||||
|
const dataList = Array.isArray(response.data.rows) ? response.data.rows : [];
|
||||||
|
setCourses(dataList);
|
||||||
|
})
|
||||||
|
.catch(error => console.error(error));
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Head>
|
||||||
|
<title>Cources</title>
|
||||||
|
</Head>
|
||||||
|
<WebSiteHeader />
|
||||||
|
<main className="container mx-auto py-8">
|
||||||
|
<div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
|
{courses.map(course => (
|
||||||
|
<div key={course.id} className="bg-white rounded shadow p-4">
|
||||||
|
<h2 className="text-lg font-semibold mb-2">{course.title}</h2>
|
||||||
|
<p className="text-gray-600">{course.description}</p>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<WebSiteFooter />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
Cources.getLayout = page => <LayoutGuest>{page}</LayoutGuest>;
|
||||||
|
|
||||||
|
export default Cources;
|
||||||
@ -32,24 +32,24 @@ export const white: StyleObject = {
|
|||||||
'text-gray-700 hover:bg-gray-100/70 dark:text-dark-500 dark:hover:text-white dark:hover:bg-dark-800',
|
'text-gray-700 hover:bg-gray-100/70 dark:text-dark-500 dark:hover:text-white dark:hover:bg-dark-800',
|
||||||
asideMenuItemActive: 'font-bold text-black dark:text-white',
|
asideMenuItemActive: 'font-bold text-black dark:text-white',
|
||||||
asideMenuDropdown: 'bg-gray-100/75',
|
asideMenuDropdown: 'bg-gray-100/75',
|
||||||
navBarItemLabel: 'text-blue-600',
|
navBarItemLabel: 'text-sky-600',
|
||||||
navBarItemLabelHover: 'hover:text-black',
|
navBarItemLabelHover: 'hover:text-black',
|
||||||
navBarItemLabelActiveColor: 'text-black',
|
navBarItemLabelActiveColor: 'text-black',
|
||||||
overlay: 'from-white via-gray-100 to-white',
|
overlay: 'from-white via-sky-100 to-white',
|
||||||
activeLinkColor: 'bg-gray-100/70',
|
activeLinkColor: 'bg-sky-100/70',
|
||||||
bgLayoutColor: 'bg-gray-50',
|
bgLayoutColor: 'bg-sky-50',
|
||||||
iconsColor: 'text-blue-500',
|
iconsColor: 'text-sky-500',
|
||||||
cardsColor: 'bg-white',
|
cardsColor: 'bg-white',
|
||||||
focusRingColor:
|
focusRingColor:
|
||||||
'focus:ring focus:ring-blue-600 focus:border-blue-600 focus:outline-none border-gray-300 dark:focus:ring-blue-600 dark:focus:border-blue-600',
|
'focus:ring focus:ring-sky-600 focus:border-sky-600 focus:outline-none border-sky-200 dark:focus:ring-sky-600 dark:focus:border-sky-600',
|
||||||
corners: 'rounded',
|
corners: 'rounded',
|
||||||
cardsStyle: 'bg-white border border-pavitra-400',
|
cardsStyle: 'bg-white border border-sky-200',
|
||||||
linkColor: 'text-blue-600',
|
linkColor: 'text-sky-600',
|
||||||
websiteHeder: 'border-b border-gray-200',
|
websiteHeder: 'border-b border-sky-200',
|
||||||
borders: 'border-gray-200',
|
borders: 'border-sky-200',
|
||||||
shadow: '',
|
shadow: '',
|
||||||
websiteSectionStyle: '',
|
websiteSectionStyle: '',
|
||||||
textSecondary: 'text-gray-500',
|
textSecondary: 'text-sky-500',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const dataGridStyles = {
|
export const dataGridStyles = {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user