diff --git a/worklenz-backend/.env.template b/worklenz-backend/.env.template index 145f2411..e0bea264 100644 --- a/worklenz-backend/.env.template +++ b/worklenz-backend/.env.template @@ -47,12 +47,17 @@ FRONTEND_URL=http://localhost:5000 # STORAGE STORAGE_PROVIDER=s3 # values s3 or azure -# AWS +# AWS - SES AWS_REGION="your_aws_region" AWS_ACCESS_KEY_ID="your_aws_access_key_id" AWS_SECRET_ACCESS_KEY="your_aws_secret_access_key" -AWS_BUCKET="your_s3_bucket" + +# S3 +S3_REGION="S3_REGION" +S3_BUCKET="your_s3_bucket" S3_URL="your_s3_url" +S3_ACCESS_KEY_ID="S3_ACCESS_KEY_ID" +S3_SECRET_ACCESS_KEY="S3_SECRET_ACCESS_KEY" # Azure Storage AZURE_STORAGE_ACCOUNT_NAME="your_storage_account_name" diff --git a/worklenz-backend/src/shared/constants.ts b/worklenz-backend/src/shared/constants.ts index 28fc60fc..c814c603 100644 --- a/worklenz-backend/src/shared/constants.ts +++ b/worklenz-backend/src/shared/constants.ts @@ -117,11 +117,11 @@ export const TASK_DUE_NO_DUE_COLOR = "#a9a9a9"; export const DEFAULT_PAGE_SIZE = 20; // S3 Credentials -export const REGION = process.env.AWS_REGION || "us-east-1"; -export const BUCKET = process.env.AWS_BUCKET || "your-bucket-name"; +export const REGION = process.env.S3_REGION || "us-east-1"; +export const BUCKET = process.env.S3_BUCKET || "your-bucket-name"; export const S3_URL = process.env.S3_URL || "https://your-s3-url"; -export const S3_ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID || ""; -export const S3_SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY || ""; +export const S3_ACCESS_KEY_ID = process.env.S3_ACCESS_KEY_ID || ""; +export const S3_SECRET_ACCESS_KEY = process.env.S3_SECRET_ACCESS_KEY || ""; // Azure Blob Storage Credentials export const STORAGE_PROVIDER = process.env.STORAGE_PROVIDER || "s3"; diff --git a/worklenz-frontend/index.html b/worklenz-frontend/index.html index 7f1e3d71..57a2a1b0 100644 --- a/worklenz-frontend/index.html +++ b/worklenz-frontend/index.html @@ -1,26 +1,53 @@ - - - - - - - - - Worklenz - - - - - - - -
- - - + + + + + + + + + Worklenz + + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/worklenz-frontend/public/locales/en/settings/appearance.json b/worklenz-frontend/public/locales/en/settings/appearance.json new file mode 100644 index 00000000..76fb246f --- /dev/null +++ b/worklenz-frontend/public/locales/en/settings/appearance.json @@ -0,0 +1,5 @@ +{ + "title": "Appearance", + "darkMode": "Dark Mode", + "darkModeDescription": "Switch between light and dark mode to customize your viewing experience." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/en/settings/sidebar.json b/worklenz-frontend/public/locales/en/settings/sidebar.json index 41bc3e0f..d0b64829 100644 --- a/worklenz-frontend/public/locales/en/settings/sidebar.json +++ b/worklenz-frontend/public/locales/en/settings/sidebar.json @@ -10,5 +10,6 @@ "team-members": "Team Members", "teams": "Teams", "change-password": "Change Password", - "language-and-region": "Language and Region" + "language-and-region": "Language and Region", + "appearance": "Appearance" } diff --git a/worklenz-frontend/public/locales/es/settings/appearance.json b/worklenz-frontend/public/locales/es/settings/appearance.json new file mode 100644 index 00000000..a4c168a4 --- /dev/null +++ b/worklenz-frontend/public/locales/es/settings/appearance.json @@ -0,0 +1,5 @@ +{ + "title": "Apariencia", + "darkMode": "Modo Oscuro", + "darkModeDescription": "Cambia entre el modo claro y oscuro para personalizar tu experiencia visual." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/es/settings/sidebar.json b/worklenz-frontend/public/locales/es/settings/sidebar.json index 32d529ea..3793e77f 100644 --- a/worklenz-frontend/public/locales/es/settings/sidebar.json +++ b/worklenz-frontend/public/locales/es/settings/sidebar.json @@ -10,5 +10,6 @@ "team-members": "Miembros del equipo", "teams": "Equipos", "change-password": "Cambiar contraseña", - "language-and-region": "Idioma y región" + "language-and-region": "Idioma y región", + "appearance": "Apariencia" } diff --git a/worklenz-frontend/public/locales/pt/settings/appearance.json b/worklenz-frontend/public/locales/pt/settings/appearance.json new file mode 100644 index 00000000..eaffbb32 --- /dev/null +++ b/worklenz-frontend/public/locales/pt/settings/appearance.json @@ -0,0 +1,5 @@ +{ + "title": "Aparência", + "darkMode": "Modo Escuro", + "darkModeDescription": "Alterne entre o modo claro e escuro para personalizar sua experiência de visualização." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pt/settings/sidebar.json b/worklenz-frontend/public/locales/pt/settings/sidebar.json index b9047fae..67fac9dc 100644 --- a/worklenz-frontend/public/locales/pt/settings/sidebar.json +++ b/worklenz-frontend/public/locales/pt/settings/sidebar.json @@ -10,5 +10,6 @@ "team-members": "Membros da Equipe", "teams": "Equipes", "change-password": "Alterar Senha", - "language-and-region": "Idioma e Região" + "language-and-region": "Idioma e Região", + "appearance": "Aparência" } \ No newline at end of file diff --git a/worklenz-frontend/src/App.tsx b/worklenz-frontend/src/App.tsx index 13abc6f8..8b313508 100644 --- a/worklenz-frontend/src/App.tsx +++ b/worklenz-frontend/src/App.tsx @@ -39,7 +39,6 @@ const App: React.FC<{ children: React.ReactNode }> = ({ children }) => { }> - ); diff --git a/worklenz-frontend/src/app/routes/main-routes.tsx b/worklenz-frontend/src/app/routes/main-routes.tsx index 52826bf3..8647fac2 100644 --- a/worklenz-frontend/src/app/routes/main-routes.tsx +++ b/worklenz-frontend/src/app/routes/main-routes.tsx @@ -34,6 +34,7 @@ const mainRoutes: RouteObject[] = [ path: '/worklenz', element: , children: [ + { index: true, element: }, { path: 'home', element: }, { path: 'projects', element: }, { diff --git a/worklenz-frontend/src/assets/images/empty-box.webp b/worklenz-frontend/src/assets/images/empty-box.webp new file mode 100644 index 00000000..a23c97bd Binary files /dev/null and b/worklenz-frontend/src/assets/images/empty-box.webp differ diff --git a/worklenz-frontend/src/assets/images/worklenz-dark-mode.png b/worklenz-frontend/src/assets/images/worklenz-dark-mode.png new file mode 100644 index 00000000..3a22e238 Binary files /dev/null and b/worklenz-frontend/src/assets/images/worklenz-dark-mode.png differ diff --git a/worklenz-frontend/src/assets/images/worklenz-light-mode.png b/worklenz-frontend/src/assets/images/worklenz-light-mode.png new file mode 100644 index 00000000..cf0d3251 Binary files /dev/null and b/worklenz-frontend/src/assets/images/worklenz-light-mode.png differ diff --git a/worklenz-frontend/src/components/AuthPageHeader.tsx b/worklenz-frontend/src/components/AuthPageHeader.tsx index a94d5fa5..e48b8ce8 100644 --- a/worklenz-frontend/src/components/AuthPageHeader.tsx +++ b/worklenz-frontend/src/components/AuthPageHeader.tsx @@ -1,6 +1,6 @@ import { Flex, Typography } from 'antd'; -import logo from '../assets/images/logo.png'; -import logoDark from '@/assets/images/logo-dark-mode.png'; +import logo from '@/assets/images/worklenz-light-mode.png'; +import logoDark from '@/assets/images/worklenz-dark-mode.png'; import { useAppSelector } from '@/hooks/useAppSelector'; type AuthPageHeaderProp = { diff --git a/worklenz-frontend/src/components/EmptyListPlaceholder.tsx b/worklenz-frontend/src/components/EmptyListPlaceholder.tsx index 4953f202..372cd845 100644 --- a/worklenz-frontend/src/components/EmptyListPlaceholder.tsx +++ b/worklenz-frontend/src/components/EmptyListPlaceholder.tsx @@ -8,7 +8,7 @@ type EmptyListPlaceholderProps = { }; const EmptyListPlaceholder = ({ - imageSrc = '/assets/images/empty-box.webp', + imageSrc = '/src/assets/images/empty-box.webp', imageHeight = 60, text, }: EmptyListPlaceholderProps) => { diff --git a/worklenz-frontend/src/components/PreferenceSelector.tsx b/worklenz-frontend/src/components/PreferenceSelector.tsx index 9bf3c324..b908c247 100644 --- a/worklenz-frontend/src/components/PreferenceSelector.tsx +++ b/worklenz-frontend/src/components/PreferenceSelector.tsx @@ -1,7 +1,7 @@ import { FloatButton, Space, Tooltip } from 'antd'; import { FormatPainterOutlined } from '@ant-design/icons'; -import LanguageSelector from '../features/i18n/language-selector'; -import ThemeSelector from '../features/theme/ThemeSelector'; +// import LanguageSelector from '../features/i18n/language-selector'; +// import ThemeSelector from '../features/theme/ThemeSelector'; const PreferenceSelector = () => { return ( @@ -17,7 +17,7 @@ const PreferenceSelector = () => { justifyContent: 'center', }} > - + {/* */} diff --git a/worklenz-frontend/src/features/navbar/navbar-logo.tsx b/worklenz-frontend/src/features/navbar/navbar-logo.tsx index 273c3214..afa8b1c0 100644 --- a/worklenz-frontend/src/features/navbar/navbar-logo.tsx +++ b/worklenz-frontend/src/features/navbar/navbar-logo.tsx @@ -1,8 +1,8 @@ import { Link } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; -import logo from '@/assets/images/logo.png'; -import logoDark from '@/assets/images/logo-dark-mode.png'; +import logo from '@/assets/images/worklenz-light-mode.png'; +import logoDark from '@/assets/images/worklenz-dark-mode.png'; import { useAppSelector } from '@/hooks/useAppSelector'; import { useSelector } from 'react-redux'; @@ -20,23 +20,6 @@ const NavbarLogo = () => { alt={t('logoAlt')} style={{ width: '100%', maxWidth: 140 }} /> - - Beta - ); diff --git a/worklenz-frontend/src/features/theme/ThemeSelector.tsx b/worklenz-frontend/src/features/theme/ThemeSelector.tsx deleted file mode 100644 index ea26b286..00000000 --- a/worklenz-frontend/src/features/theme/ThemeSelector.tsx +++ /dev/null @@ -1,28 +0,0 @@ -// ThemeSelector.tsx -import { Button } from 'antd'; -import React from 'react'; -import { useAppDispatch } from '@/hooks/useAppDispatch'; -import { useAppSelector } from '@/hooks/useAppSelector'; -import { toggleTheme } from './themeSlice'; -import { MoonOutlined, SunOutlined } from '@ant-design/icons'; - -const ThemeSelector = () => { - const themeMode = useAppSelector(state => state.themeReducer.mode); - const dispatch = useAppDispatch(); - - const handleDarkModeToggle = () => { - dispatch(toggleTheme()); - }; - - return ( -