feat: Implement blog and blog post models, routes, and services

- Added Blog and BlogPost models with necessary fields and relationships.
- Created blogRouter for handling blog-related API endpoints including CRUD operations.
- Developed BlogService for business logic related to blogs and posts, including sharing functionality.
- Implemented API client methods for frontend to interact with blog-related endpoints.
- Added internationalization support for blog-related text in English and German.
- Created Vue components for blog editing, listing, and viewing, including a rich text editor for post content.
- Enhanced user experience with form validations and dynamic visibility settings based on user input.
This commit is contained in:
Torsten Schulz (local)
2025-08-18 13:41:37 +02:00
parent 19ee6ba0a1
commit 53c748a074
27 changed files with 1342 additions and 19 deletions

View File

@@ -15,6 +15,7 @@ import enSocialNetwork from './locales/en/socialnetwork.json';
import enFriends from './locales/en/friends.json';
import enFalukant from './locales/en/falukant.json';
import enPasswordReset from './locales/en/passwordReset.json';
import enBlog from './locales/en/blog.json';
import deGeneral from './locales/de/general.json';
import deHeader from './locales/de/header.json';
@@ -30,6 +31,7 @@ import deSocialNetwork from './locales/de/socialnetwork.json';
import deFriends from './locales/de/friends.json';
import deFalukant from './locales/de/falukant.json';
import dePasswordReset from './locales/de/passwordReset.json';
import deBlog from './locales/de/blog.json';
const messages = {
en: {
@@ -47,6 +49,7 @@ const messages = {
...enSocialNetwork,
...enFriends,
...enFalukant,
...enBlog,
},
de: {
'Ok': 'Ok',
@@ -64,6 +67,7 @@ const messages = {
...deSocialNetwork,
...deFriends,
...deFalukant,
...deBlog,
}
};

View File

@@ -0,0 +1,11 @@
{
"blog": {
"posts": "Beiträge",
"noPosts": "Keine Beiträge.",
"newPost": "Neuen Beitrag verfassen",
"title": "Titel",
"publish": "Veröffentlichen",
"pickImage": "Bild auswählen",
"uploadImage": "Bild hochladen"
}
}

View File

@@ -16,6 +16,7 @@
},
"m-socialnetwork": {
"guestbook": "Gästebuch",
"blog": "Blog",
"usersearch": "Benutzersuche",
"forum": "Forum",
"gallery": "Galerie",

View File

@@ -0,0 +1,11 @@
{
"blog": {
"posts": "Posts",
"noPosts": "No posts.",
"newPost": "Write new post",
"title": "Title",
"publish": "Publish",
"pickImage": "Pick an image",
"uploadImage": "Upload image"
}
}

View File

@@ -1,11 +1,79 @@
{
"home": "Home",
"about": "About",
"services": "Services",
"team": "Team",
"company": "Company",
"consulting": "Consulting",
"development": "Development",
"mailbox": "Mailbox",
"logout": "Logout"
"navigation": {
"home": "Home",
"logout": "Logout",
"friends": "Friends",
"socialnetwork": "Meeting point",
"chats": "Chats",
"falukant": "Falukant",
"minigames": "Mini games",
"settings": "Settings",
"administration": "Administration",
"m-chats": {
"multiChat": "Multiuser chat",
"randomChat": "Random single chat",
"eroticChat": "Erotic chat"
},
"m-socialnetwork": {
"guestbook": "Guestbook",
"blog": "Blog",
"usersearch": "User search",
"forum": "Forum",
"gallery": "Gallery",
"blockedUsers": "Blocked users",
"oneTimeInvitation": "One-time invitations",
"diary": "Diary",
"erotic": "Erotic",
"m-erotic": {
"pictures": "Pictures",
"videos": "Videos"
}
},
"m-settings": {
"homepage": "Homepage",
"account": "Account",
"personal": "Personal",
"view": "Appearance",
"flirt": "Flirt",
"interests": "Interests",
"notifications": "Notifications",
"sexuality": "Sexuality"
},
"m-administration": {
"contactrequests": "Contact requests",
"useradministration": "User administration",
"forum": "Forum",
"userrights": "User rights",
"interests": "Interests",
"falukant": "Falukant",
"m-falukant": {
"logentries": "Log entries",
"edituser": "Edit user",
"database": "Database"
}
},
"m-friends": {
"manageFriends": "Manage friends",
"chat": "Chat",
"profile": "Profile"
},
"m-falukant": {
"create": "Create",
"overview": "Overview",
"towns": "Towns",
"directors": "Directors",
"factory": "Factory",
"family": "Family",
"house": "House",
"darknet": "Underground",
"reputation": "Reputation",
"moneyhistory": "Money flow",
"nobility": "Social status",
"politics": "Politics",
"education": "Education",
"health": "Health",
"bank": "Bank",
"church": "Church"
}
}
}