Skip to content
Snippets Groups Projects
Commit 5493c23c authored by oetrb's avatar oetrb
Browse files

added course insert

parent 2cdddda3
Branches
No related tags found
No related merge requests found
<template>
<div>
<div class="row col-md-12">
<div id="content" class="content col-md-12">
<form @submit="validateBeforeSubmit" class="col-md-10" style="margin-bottom: 20px">
{{message}}
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 30px">Angebotsnummer</h1>
<div class="input_container">
<input v-model="course.coursenumber" type="text" class="form-control inputField" placeholder="Angebotsnummer" aria-label="angebotsnummer" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle">Angebot</h1>
<div class="input_container">
<input v-model="course.courseoffer" type="text" class="form-control inputField" placeholder="Angebot" aria-label="courseoffer" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Kursname</h1>
<div class="input_container">
<input v-model="course.coursename" type="text" class="form-control inputField" placeholder="Kursname" aria-label="coursename" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 30px">Veranstaltungsart</h1>
<div class="input_container">
<input v-model="course.eventtype" type="text" class="form-control inputField" placeholder="Veranstaltungsart" aria-label="eventtype" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Kursdatum (yyyy-mm-dd)</h1>
<div class="input_container">
<input name="coursedate" v-model="course.coursedate" class="form-control inputField" placeholder="Kursdatum" aria-label="coursedate" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Thema</h1>
<div class="input_container">
<input name="topic" v-model="course.topic" class="form-control inputField" placeholder="Thema" aria-label="topic" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Kursort</h1>
<div class="input_container">
<input name="courselocation" v-model="course.courselocation" class="form-control inputField" placeholder="Kursort" aria-label="courselocation" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Begleitende Lehrkraft</h1>
<div class="input_container">
<input name="accompanyingteacher" v-model="course.accompanyingteacher" class="form-control inputField" placeholder="Begleitende Lehrkraft" aria-label="accompanyingteacher" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Betreuende Studenten</h1>
<div class="input_container">
<input name="supervisingstudents" v-model="course.supervisingstudents" class="form-control inputField" placeholder="Betreuende Studenten" aria-label="supervisingstudents" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Anzahl der Anwesenden</h1>
<div class="input_container">
<input name="presentstudents" v-model="course.presentstudents" class="form-control inputField" placeholder="Anzahl der Anwesenden" aria-label="presentstudents" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Anzahl der Angemeldeten</h1>
<div class="input_container">
<input name="registeredstudents" v-model="course.registeredstudents" class="form-control inputField" placeholder="Anzahl der Angemeldeten" aria-label="registeredstudents" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Kursleiter</h1>
<div class="input_container">
<input name="instructor" v-model="course.instructor" class="form-control inputField" placeholder="Kursleiter" aria-label="instructor" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<h1 class="formTitle" style="margin-top: 10px">Notiz</h1>
<div class="input_container">
<input name="notefield" v-model="course.notefield" class="form-control inputField" placeholder="Notiz" aria-label="notefield" required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-11 mb-3">
<button class="btn btn-primary btn-lg btn-block" style="margin-top: 20px; border-radius: 10px" type="button" @click="validateBeforeSubmit">Eintrag hinzufügen</button>
</div>
</div> h
<div class="row">
<div class="col-md-12 mb-3">
</div>
</div>
</form>
</div>
</div>
</div>
</template>
<script>
import Course from "@/models/course";
export default {
name: "CreateCourse.vue",
data(){
return {
message: "",
course: new Course('', '', '', '', '', '', '', '', '', '', '', '', ''),
}
},
methods: {
validateBeforeSubmit() {
this.$validator.validate().then(isValid => {
if (isValid) {
console.log("isvalid")
this.$store.dispatch('course/insert', this.course).then(
data => {
this.message = data.message;
this.successful = true;
},
error => {
this.message = (error.response && error.response.data) || error.message || error.toString();
this.successful = false;
}
);
} else {
console.log("not isvalid")
}
});
}
}
}
</script>
<style scoped>
div.content {
background-color: whitesmoke;
position: fixed;
padding: 1px 16px;
height: 1000px;
overflow-y: auto;
}
.formTitle {
font-size: 14px;
font-weight: 500;
color: #6B6C6F;
}
.inputField {
height: 44px;
margin-top: 10px;
padding-left: 70px;
padding-right: 70px;
border-color: #DFE2E6;
border-width: 2px;
border-radius: 10px;
}
.input_container {
position:relative;
}
.btn {
margin-bottom: 200px;
}
</style>
This diff is collapsed.
<template> <template>
<div id="content" class="content col-md-12"> <div id="content" class="content col-md-12">
<DynamicTable></DynamicTable> <CreateCourse></CreateCourse>
</div> </div>
</template> </template>
<script> <script>
import DynamicTable from '../components/DynamicTable.vue' import CreateCourse from '../components/CreateEditComponents/CreateCourse.vue'
export default { export default {
name: "Home", name: "Home",
components: { components: {
DynamicTable CreateCourse
}, },
created() { created() {
......
export default class Course {
constructor(coursenumber, courseoffer, coursename, eventtype, coursedate, topic, courselocation, accompanyingteacher, supervisingstudents, presentstudents, registeredstudents, instructor, notefield) {
this.coursenumber = coursenumber;
this.courseoffer = courseoffer;
this.coursename = coursename;
this.eventtype = eventtype;
this.coursedate = coursedate;
this.topic = topic;
this.courselocation = courselocation;
this.accompanyingteacher = accompanyingteacher;
this.supervisingstudents = supervisingstudents;
this.presentstudents = presentstudents;
this.registeredstudents = registeredstudents;
this.instructor = instructor;
this.notefield = notefield;
}
}
\ No newline at end of file
import axios from 'axios';
import authHeader from "@/services/auth-header";
const API_URL = 'http://localhost:9192/';
class CourseService {
insert(course) {
return axios
.post(API_URL + 'insertCourse', {
angebotsnummer: course.coursenumber,
angebot: course.courseoffer,
kursname: course.coursename,
veranstaltungsart: course.eventtype,
kursdatum: course.coursedate,
thema: course.topic,
kursort: course.courselocation,
begleitendeLehrkraft: course.accompanyingteacher,
betreuendeStudenten: course.supervisingstudents,
anzahlderAnwesenden:course.presentstudents,
anzahlderAngemeldeten:course.registeredstudents,
kursleiter: course.instructor,
notiz: course.notefield
}
,{headers: authHeader() })
.then(response => {
return response.data;
});
}
}
export default new CourseService();
\ No newline at end of file
import CourseService from '../services/course.service';
const initialState = null;
export const course = {
namespaced: true,
state: initialState,
actions: {
insert({ commit }, course) {
return CourseService.insert(course).then(
response => {
commit('insertSuccess', response);
return Promise.resolve(response);
},
error => {
commit('insertFailure');
return Promise.reject(error);
}
);
}
},
mutations: {
insertSuccess(state, response) {
state.response = response;
},
insertFailure(state, response) {
state.response = response;
}
}
};
\ No newline at end of file
...@@ -3,12 +3,14 @@ import Vuex from 'vuex'; ...@@ -3,12 +3,14 @@ import Vuex from 'vuex';
import { auth } from './auth.module'; import { auth } from './auth.module';
import { user } from './user.module'; import { user } from './user.module';
import { course } from './course.module';
Vue.use(Vuex); Vue.use(Vuex);
export default new Vuex.Store({ export default new Vuex.Store({
modules: { modules: {
auth, auth,
user user,
course
} }
}); });
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment