Merge branch '29-view-for-a-single-time-track-entry' into 'master'
Resolve "View for a single time track entry" Closes #29 See merge request marcel.schwarz/2020ss-qbc-geofence-timetracking!21
This commit is contained in:
commit
37afc78824
@ -5,6 +5,8 @@ footer
|
|||||||
<u><router-link to="/">Home</router-link></u>
|
<u><router-link to="/">Home</router-link></u>
|
||||||
<br>
|
<br>
|
||||||
<u><router-link to="/about">About</router-link></u>
|
<u><router-link to="/about">About</router-link></u>
|
||||||
|
<br>
|
||||||
|
<u><router-link to="/timerecords">Time Records</router-link></u>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import Home from "../views/Home.vue";
|
|||||||
import Profile from "../views/profile.vue";
|
import Profile from "../views/profile.vue";
|
||||||
import missing from "../views/missing.vue";
|
import missing from "../views/missing.vue";
|
||||||
import Info from "../views/Info.vue";
|
import Info from "../views/Info.vue";
|
||||||
|
import TimeRecords from "../views/TimeRecords.vue";
|
||||||
Vue.use(VueRouter);
|
Vue.use(VueRouter);
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
@ -12,6 +13,11 @@ const routes = [
|
|||||||
name: "Home",
|
name: "Home",
|
||||||
component: Home
|
component: Home
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/timerecords",
|
||||||
|
name: "TimeRecords",
|
||||||
|
component: TimeRecords
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "/profile/:id",
|
path: "/profile/:id",
|
||||||
name: "Profile",
|
name: "Profile",
|
||||||
|
46
frontend/src/views/TimeRecordItem.vue
Normal file
46
frontend/src/views/TimeRecordItem.vue
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<template>
|
||||||
|
<div class="time-record-item">
|
||||||
|
<p>
|
||||||
|
<b>{{timeRecord.type}}</b>
|
||||||
|
<button @click="$emit('del-timeRecord', timeRecord.id)" class="del">X</button>
|
||||||
|
<button @click="$emit('edit-timeRecord', timeRecord.id)" class="edit">Edit Record</button>
|
||||||
|
</p>
|
||||||
|
<p>{{timeRecord.start}} - {{timeRecord.end}} ({{timeRecord.time}})</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "TimeRecordItem",
|
||||||
|
props: ["timeRecord"]
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.time-record-item {
|
||||||
|
background: #131313;
|
||||||
|
padding: 10px;
|
||||||
|
border-bottom: 3px #272727 solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.del {
|
||||||
|
background: #ff0000;
|
||||||
|
color: #fff;
|
||||||
|
border: none;
|
||||||
|
padding: 5px 9px;
|
||||||
|
border-radius: 0%;
|
||||||
|
cursor: pointer;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit {
|
||||||
|
background: #272727;
|
||||||
|
color: #fff;
|
||||||
|
border: none;
|
||||||
|
padding: 5px 9px;
|
||||||
|
border-radius: 0%;
|
||||||
|
cursor: pointer;
|
||||||
|
float: right;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
58
frontend/src/views/TimeRecords.vue
Normal file
58
frontend/src/views/TimeRecords.vue
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div v-bind:key="timeRecord.id" v-for="timeRecord in timeRecords">
|
||||||
|
<TimeRecordItem v-bind:timeRecord="timeRecord" v-on:del-timeRecord="deleteTimeRecord" v-on:edit-timeRecord="editTimeRecord"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import TimeRecordItem from './TimeRecordItem.vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "TimeRecords",
|
||||||
|
components: {
|
||||||
|
TimeRecordItem
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
timeRecords: [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
start: "25.04.2020 / 8:00",
|
||||||
|
end: "25.04.2020 / 13:00",
|
||||||
|
time: "5:00",
|
||||||
|
type: "Paid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
start: "25.04.2020 / 13:00",
|
||||||
|
end: "25.04.2020 / 14:00",
|
||||||
|
time: "1:00",
|
||||||
|
type: "Lunch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
start: "25.04.2020 / 14:00 ",
|
||||||
|
end: "25.04.2020 / 16:30",
|
||||||
|
time: "2:30",
|
||||||
|
type: "Paid"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
deleteTimeRecord(id) {
|
||||||
|
this.timeRecords = this.timeRecords.filter(timeRecord => timeRecord.id !==id);
|
||||||
|
},
|
||||||
|
editTimeRecord(id) {
|
||||||
|
alert("Not Implemented. TimeRecordId: " + id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user