inital commit

This commit is contained in:
Torsten Schulz
2024-06-15 23:01:46 +02:00
parent 1b7fefe381
commit 61653ff407
105 changed files with 7805 additions and 524 deletions

102
src/store/index.js Normal file
View File

@@ -0,0 +1,102 @@
import { createStore } from 'vuex';
import axios from 'axios';
import router from '../router'; // Importieren des Routers
let user = [];
try {
user = JSON.parse(localStorage.getItem('user')) || null;
} catch (e) {
user = [];
}
export default createStore({
state: {
isLoggedIn: !!localStorage.getItem('isLoggedIn'),
user: user,
token: localStorage.getItem('token') || '',
menuData: [],
pageContent: '',
},
mutations: {
setLogin(state, { user, token }) {
console.log(1);
state.isLoggedIn = true;
console.log(2);
state.user = user;
console.log(3);
state.token = token;
console.log(4);
localStorage.setItem('isLoggedIn', 'true');
console.log(5);
localStorage.setItem('user', JSON.stringify(user));
console.log(6);
localStorage.setItem('token', token);
console.log(7);
},
logout(state) {
state.isLoggedIn = false;
state.user = null;
state.token = '';
localStorage.removeItem('isLoggedIn');
localStorage.removeItem('user');
localStorage.removeItem('token');
router.push('/');
},
setMenuData(state, menuData) {
state.menuData = menuData;
},
SET_PAGE_CONTENT(state, content) {
state.pageContent = content;
},
UPDATE_PAGE_CONTENT(state, content) {
state.pageContent = content;
},
},
actions: {
async loadMenuData({ commit }) {
try {
const response = await fetch('http://localhost:3000/api/menu-data');
const menuData = await response.json();
commit('setMenuData', menuData);
} catch (error) {
console.error('Fehler beim Laden der Menü-Daten:', error);
}
},
async loadPageContent({ commit }, link) {
try {
const response = await axios.get(`http://localhost:3000/api/page-content?link=${link}`);
commit('SET_PAGE_CONTENT', response.data.content || '');
} catch (error) {
console.error('Fehler beim Laden des Seiteninhalts:', error);
}
},
async savePageContent({ state }, { link, name }) {
try {
const contentToSave = state.pageContent;
await axios.post('http://localhost:3000/api/page-content', {
link,
name,
content: contentToSave,
});
alert('Seiteninhalt gespeichert!');
} catch (error) {
console.error('Fehler beim Speichern des Seiteninhalts:', error);
}
},
login({ commit }, { user, token }) {
console.log('do login');
commit('setLogin', { user, token });
},
logout({ commit }) {
commit('logout');
}
},
getters: {
isLoggedIn: state => state.isLoggedIn,
user: state => state.user,
menuData: state => state.menuData,
pageContent: state => state.pageContent,
}
});