Skip to content
Snippets Groups Projects
Commit 5fe5a627 authored by Richard Githuba's avatar Richard Githuba
Browse files

done with translating the home page

parent a07e15e6
No related branches found
No related tags found
No related merge requests found
...@@ -50,15 +50,18 @@ public class FeedApisController { ...@@ -50,15 +50,18 @@ public class FeedApisController {
List<FeedImpl> posts = feedRepository.getAllPosts(); List<FeedImpl> posts = feedRepository.getAllPosts();
// set isEditable flag for each post depedant on whether they are an admin or own the post
for (FeedImpl post : posts) { if (currentUser != null){
log.info("Role ID: " + currentUser.getRoleId()); // set isEditable flag for each post depedant on whether they are an admin or own the post
boolean isSuperAdmin = currentUser != null && currentUser.getRoleId() == 1; for (FeedImpl post : posts) {
log.info("IsSuperAdmin: " + isSuperAdmin); log.info("Role ID: " + currentUser.getRoleId());
boolean isOwner = currentUser != null && post.getUserId() == currentUser.getId(); boolean isSuperAdmin = currentUser != null && currentUser.getRoleId() == 1;
log.info("IsPostOwner: " + isOwner); log.info("IsSuperAdmin: " + isSuperAdmin);
post.setIsDeletable(isSuperAdmin || isOwner); boolean isOwner = currentUser != null && post.getUserId() == currentUser.getId();
log.info("PostIsEditable: " + post.getIsDeletable()); log.info("IsPostOwner: " + isOwner);
post.setIsDeletable(isSuperAdmin || isOwner);
log.info("PostIsEditable: " + post.getIsDeletable());
}
} }
return posts; return posts;
......
...@@ -53,8 +53,8 @@ public class WebSecurityConfig { ...@@ -53,8 +53,8 @@ public class WebSecurityConfig {
// require authentication for events only // require authentication for events only
//update in future when more protected resources are available //update in future when more protected resources are available
.authorizeHttpRequests((requests) -> requests .authorizeHttpRequests((requests) -> requests
.requestMatchers("/api/translations/**").permitAll() // .requestMatchers("/api/translations/**","/api/feed/**").permitAll()
.requestMatchers("/api/feed/**").permitAll() // .requestMatchers().permitAll()
.requestMatchers(whiteListingPath).authenticated() .requestMatchers(whiteListingPath).authenticated()
.anyRequest().permitAll() .anyRequest().permitAll()
) )
......
...@@ -10,60 +10,60 @@ ...@@ -10,60 +10,60 @@
</head> </head>
<section layout:fragment="content"> <section layout:fragment="content">
<h1>Welcome to our Community</h1> <h1 data-translate-key="home.header">Welcome to our Community</h1>
<p>Connect, Share, and Grow Together</p> <p data-translate-key="home.smallheader">Connect, Share, and Grow Together</p>
<section class="tiles"> <section class="tiles">
<div class="tile" id="feedTile"> <div class="tile" id="feedTile">
<a th:href="@{/feed}" class="tileLink"> <a th:href="@{/feed}" class="tileLink">
<div class="topTile"> <div class="topTile">
<img src="/assets/navbarImages/feed.png" class="tile-logo"><span class="tile-title">Feed</span> <img src="/assets/navbarImages/feed.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.feed">Feed</span>
</div> </div>
<p class="tile-description">Stay updated with the latest posts</p> <p class="tile-description" data-translate-key="home.latest_posts">Stay updated with the latest posts</p>
</a> </a>
</div> </div>
<div class="tile" id="newsTile"> <div class="tile" id="newsTile">
<a th:href="@{/news}" class="tileLink"> <a th:href="@{/news}" class="tileLink">
<div class="topTile"> <div class="topTile">
<img src="/assets/navbarImages/news.png" class="tile-logo"><span class="tile-title">News</span> <img src="/assets/navbarImages/news.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.news">News</span>
</div> </div>
<p class="tile-description">Discover the latest community news</p> <p class="tile-description" data-translate-key="home.news">Discover the latest community news</p>
</a> </a>
</div> </div>
<div class="tile" id="eventsTile"> <div class="tile" id="eventsTile">
<a th:href="@{/event}" class="tileLink"> <a th:href="@{/event}" class="tileLink">
<div class="topTile"> <div class="topTile">
<img src="/assets/navbarImages/events.png" class="tile-logo"><span class="tile-title">Events</span> <img src="/assets/navbarImages/events.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.events">Events</span>
</div> </div>
<p class="tile-description">Join our upcoming community events</p> <p class="tile-description" data-translate-key="home.events">Join our upcoming community events</p>
</a> </a>
</div> </div>
<div class="tile" id="infoTile"> <div class="tile" id="infoTile">
<a th:href="@{/categories}" class="tileLink"> <a th:href="@{/categories}" class="tileLink">
<div class="topTile"> <div class="topTile">
<img src="/assets/navbarImages/info.png" class="tile-logo"><span class="tile-title">Info Database</span> <img src="/assets/navbarImages/info.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.db_info">Info Database</span>
</div> </div>
<p class="tile-description">Access our community information database</p> <p class="tile-description" data-translate-key="home.db_info">Access our community information database</p>
</a> </a>
</div> </div>
<div class="tile" id="aboutTile"> <div class="tile" id="aboutTile">
<a th:href="@{/aboutUs}" class="tileLink"> <a th:href="@{/aboutUs}" class="tileLink">
<div class="topTile"> <div class="topTile">
<img src="/assets/navbarImages/about.png" class="tile-logo"><span class="tile-title">About Us</span> <img src="/assets/navbarImages/about.png" class="tile-logo"><span class="tile-title" data-translate-key="navbar.about_us">About Us</span>
</div> </div>
<p class="tile-description">Learn about our mission and values</p> <p class="tile-description" data-translate-key="home.about_us">Learn about our mission and values</p>
</a> </a>
</div> </div>
</section> </section>
<h1>Join Our Thriving Community Today!</h1> <h1 data-translate-key="home.join_community">Join Our Thriving Community Today!</h1>
<p>Connect with like-minded individuals, share your ideas, and be part of something amazing</p> <p data-translate-key="home.tagline">Connect with like-minded individuals, share your ideas, and be part of something amazing</p>
<button>Get Started</button> <button data-translate-key="home.get_started">Get Started</button>
</section> </section>
......
...@@ -8,102 +8,112 @@ ...@@ -8,102 +8,112 @@
<title>Ludek Polonia Wajiska</title> <title>Ludek Polonia Wajiska</title>
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/css/comments/comments.css"> <link rel="stylesheet" href="/css/comments/comments.css">
<link rel="stylesheet" href="/css/layout/layout.css"> <link rel="stylesheet" href="/css/layout/layout.css">
</head> </head>
<body> <body>
<header class="header"> <header class="header">
<section class="sidebar"> <section class="sidebar">
<nav class="sidebar"> <nav class="sidebar">
<div class="navLeft"> <div class="navLeft">
<a th:href="@{/}" class="logoLink"> <a th:href="@{/}" class="logoLink">
<img src="/assets/navbarImages/logo.png" class="logoImage"><span class="navText">Ludek Polonia Wajiska</span> <img src="/assets/navbarImages/logo.png" class="logoImage"><span class="navText">Ludek Polonia Wajiska</span>
</a> </a>
</div> </div>
<div class="navMiddle">
<a th:href="@{/}" class="navLink">
<img src="/assets/navbarImages/home.png" class="navIcons" ><span class="navText" data-translate-key="navbar.home"></span>
</a>
<a th:href="@{/feed}" class="navLink">
<img src="/assets/navbarImages/feed.png" class="navIcons"><span class="navText">Feed</span>
</a>
<a th:href="@{/news}" class="navLink">
<img src="/assets/navbarImages/news.png" class="navIcons"><span class="navText">News</span>
</a>
<a th:href="@{/event}" class="navLink">
<img src="/assets/navbarImages/events.png" class="navIcons"><span class="navText">Events</span>
</a>
<a th:href="@{/categories}" class="navLink">
<img src="/assets/navbarImages/info.png" class="navIcons"><span class="navText">Info Database</span>
</a>
<a th:href="@{/aboutUs}" class="navLink">
<img src="/assets/navbarImages/about.png" class="navIcons"><span class="navText">About Us</span>
</a>
<a th:href="@{/contactus}" class="navLink">
<img src="/assets/navbarImages/contact.png" class="navIcons"><span class="navText">Contact Us</span>
</a>
</div>
<!-- Right Section: Language Selector and Profile --> <div class="navMiddle">
<div class="navRight"> <a th:href="@{/}" class="navLink">
<!-- Language Selector --> <img src="/assets/navbarImages/home.png" class="navIcons"><span class="navText"
<div class="languageSelector"> data-translate-key="navbar.home">Home</span>
<img src="/assets/navbarImages/globe.png" class="navIcons"> </a>
<select name="language"> <a th:href="@{/feed}" class="navLink">
<option value="en">English</option> <img src="/assets/navbarImages/feed.png" class="navIcons"><span class="navText"
<option value="pl">Polish</option> data-translate-key="navbar.feed">Feed</span>
</select> </a>
</div> <a th:href="@{/news}" class="navLink">
<img src="/assets/navbarImages/news.png" class="navIcons"><span class="navText"
data-translate-key="navbar.news">News</span>
</a>
<a th:href="@{/event}" class="navLink">
<img src="/assets/navbarImages/events.png" class="navIcons"><span class="navText"
data-translate-key="navbar.events">Events</span>
</a>
<a th:href="@{/categories}" class="navLink">
<img src="/assets/navbarImages/info.png" class="navIcons"><span class="navText"
data-translate-key="navbar.db_info">Info Database</span>
</a>
<a th:href="@{/aboutUs}" class="navLink">
<img src="/assets/navbarImages/about.png" class="navIcons"><span class="navText"
data-translate-key="navbar.about_us">About Us</span>
</a>
<a th:href="@{/contactus}" class="navLink">
<img src="/assets/navbarImages/contact.png" class="navIcons"><span class="navText"
data-translate-key="navbar.contact_us">Contact Us</span>
</a>
</div>
<!-- Profile --> <!-- Right Section: Language Selector and Profile -->
<a th:href="@{/profile}" class="navLink"> <div class="navRight">
<img src="/assets/navbarImages/profile.png" class="navIcons"><span class="navText">Profile</span> <!-- Language Selector -->
</a> <div class="languageSelector">
<img src="/assets/navbarImages/globe.png" class="navIcons">
<select name="language">
<option value="en">English</option>
<option value="pl">Polish</option>
</select>
</div> </div>
</nav>
</section>
</header>
<div class="mainBody">
<main layout:fragment="content" class="content"></main>
</div>
<!-- Profile -->
<a th:href="@{/profile}" class="navLink">
<img src="/assets/navbarImages/profile.png" class="navIcons"><span class="navText"
data-translate-key="navbar.profile">Profile</span>
</a>
</div>
</nav>
</section>
</header>
<div class="mainBody">
<main layout:fragment="content" class="content"></main>
</div>
<footer class="footer"> <footer class="footer">
<div class="footer-section about"> <div class="footer-section about">
<h3 class="footerTitle">Polish Community Website</h3> <h3 class="footerTitle">Ludek Polonia Wajiska</h3>
<p class="footerText">Connecting people, sharing ideas, and building a better future together.</p> <p class="footerText" data-translate-key="footer.tagline">Connecting people, sharing ideas, and building a
</div> better future together.</p>
</div>
<div class="footer-section links"> <div class="footer-section links">
<h3 class="footerTitle">Quick Links</h3> <h3 class="footerTitle" data-translate-key="footer.quick_links">Quick Links</h3>
<ul class="footerLinks"> <ul class="footerLinks">
<li><a th:href="@{/aboutus}" class="footerLink">About Us</a></li> <li><a th:href="@{/aboutus}" class="footerLink" data-translate-key="navbar.about_us">About Us</a></li>
<li><a th:href="@{/contact}" class="footerLink">Contact</a></li> <li><a th:href="@{/contact}" class="footerLink" data-translate-key="navbar.contact">Contact</a></li>
<li><a th:href="@{/}" class="footerLink">Privacy Policy</a></li> <li><a th:href="@{/}" class="footerLink" data-translate-key="footer.privacy_policy">Privacy Policy</a></li>
<li><a th:href="@{/}" class="footerLink">Terms of Service</a></li> <li><a th:href="@{/}" class="footerLink" data-translate-key="footer.terms_of_service">Terms of Service</a>
</ul> </li>
</div> </ul>
</div>
<div class="footer-section connect"> <div class="footer-section connect">
<h3 class="footerTitle">Connect with us</h3> <h3 class="footerTitle" data-translate-key="footer.connect_with_us">Connect with us</h3>
<div class="social-icons"> <div class="social-icons">
<a href="https://www.facebook.com/LudekPCG" class="social-icon"><img src="/assets/navbarImages/facebook.png" alt="Facebook"></a> <a href="https://www.facebook.com/LudekPCG" class="social-icon"><img src="/assets/navbarImages/facebook.png"
<a href="#" class="social-icon"><img src="/assets/navbarImages/twitter.png" alt="Twitter"></a> alt="Facebook"></a>
<a href="#" class="social-icon"><img src="/assets/navbarImages/instagram.png" alt="Instagram"></a> <a href="#" class="social-icon"><img src="/assets/navbarImages/twitter.png" alt="Twitter"></a>
</div> <a href="#" class="social-icon"><img src="/assets/navbarImages/instagram.png" alt="Instagram"></a>
</div> </div>
</div>
<div class="footer-section copyright"> <div class="footer-section copyright">
<p class="footerCompanyName">&copy; LUDEK PCG ltd. All rights reserved.</p> <p class="footerCompanyName">&copy; LUDEK PCG ltd. <span data-translate-key="footer.all_rights_reserved" >All rights reserved.</span></p>
</div> </div>
</footer> </footer>
<script src="/js/layout/layout.js" defer></script> <script src="/js/layout/layout.js" defer></script>
<script th:replace="~{comments/commentFragment::commentScript}"></script> <script th:replace="~{comments/commentFragment::commentScript}"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -8,6 +8,22 @@ INSERT INTO translations (translation_key, language, value) VALUES ...@@ -8,6 +8,22 @@ INSERT INTO translations (translation_key, language, value) VALUES
('navbar.feed', 'en', 'Feed'), ('navbar.feed', 'en', 'Feed'),
('navbar.about_us', 'en', 'About Us'), ('navbar.about_us', 'en', 'About Us'),
('navbar.profile', 'en', 'Profile'), ('navbar.profile', 'en', 'Profile'),
('home.header', 'en', 'Welcome to our Community'),
('home.smallheader', 'en', 'Connect, Share, and Grow Together'),
('home.latest_posts', 'en', 'Stay updated with the latest posts'),
('home.news', 'en', 'Discover the latest community news'),
('home.events', 'en', 'Join our upcoming community events'),
('home.db_info', 'en', 'Access our community information database'),
('home.about_us', 'en', 'Learn about our mission and values'),
('home.join_community', 'en', 'Join Our Thriving Community Today!'),
('home.tagline', 'en', 'Connect with like-minded individuals, share your ideas, and be part of something amazing'),
('home.get_started', 'en', 'Get Started'),
('footer.tagline', 'en', 'Connecting people, sharing ideas, and building a better future together.'),
('footer.quick_links', 'en', 'Quick Links'),
('footer.connect_with_us', 'en', 'Connect with us'),
('footer.privacy_policy', 'en', 'Privacy Policy'),
('footer.terms_of_service', 'en', 'Terms of Service'),
('footer.all_rights_reserved', 'en', 'All rights reserved.'),
-- Polish translations -- Polish translations
('navbar.home', 'pl', 'Strona główna'), ('navbar.home', 'pl', 'Strona główna'),
...@@ -17,4 +33,22 @@ INSERT INTO translations (translation_key, language, value) VALUES ...@@ -17,4 +33,22 @@ INSERT INTO translations (translation_key, language, value) VALUES
('navbar.contact_us', 'pl', 'Skontaktuj się z nami'), ('navbar.contact_us', 'pl', 'Skontaktuj się z nami'),
('navbar.feed', 'pl', 'Kanał'), ('navbar.feed', 'pl', 'Kanał'),
('navbar.about_us', 'pl', 'O nas'), ('navbar.about_us', 'pl', 'O nas'),
('navbar.profile', 'pl', 'Profil'); ('navbar.profile', 'pl', 'Profil'),
('home.header', 'pl', 'Witamy w naszej społeczności'),
('home.smallheader', 'pl', 'Łącz się, dziel i rozwijaj razem'),
('home.latest_posts', 'pl', 'Bądź na bieżąco z najnowszymi postami'),
('home.news', 'pl', 'Odkryj najnowsze wiadomości społecznościowe'),
('home.events', 'pl', 'Dołącz do nadchodzących wydarzeń społecznościowych'),
('home.db_info', 'pl', 'Uzyskaj dostęp do naszej bazy informacji społecznościowych'),
('home.about_us', 'pl', 'Dowiedz się o naszej misji i wartościach'),
('home.join_community', 'pl', 'Dołącz do naszej rozwijającej się społeczności już dziś!'),
('home.tagline', 'pl', 'Łącz się z podobnie myślącymi ludźmi, dziel się pomysłami i bądź częścią czegoś niesamowitego'),
('home.get_started', 'pl', 'Zacznij teraz'),
('footer.tagline', 'pl', 'Łącząc ludzi, dzieląc się pomysłami i budując lepszą przyszłość razem.'),
('footer.quick_links', 'pl', 'Szybkie linki'),
('footer.connect_with_us', 'pl', 'Połącz się z nami'),
('footer.privacy_policy', 'pl', 'Polityka prywatności'),
('footer.terms_of_service', 'pl', 'Warunki korzystania z usługi'),
('footer.all_rights_reserved', 'pl', 'Wszelkie prawa zastrzeżone.');
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment