Fixed Event overview page to properly modify events
This commit is contained in:
parent
d049e524d5
commit
60024dc915
3 changed files with 110 additions and 54 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import {eventStore} from 'EventStore'
|
||||
import { alertStore } from 'AlertStore'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
|
|
@ -11,25 +12,38 @@ export default {
|
|||
checkboxChecked: internalEvent.data?.valueStr == 'ON',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
changeState(changeEvent) {
|
||||
fetch('/api/event?' + new URLSearchParams({
|
||||
id: this.event.id,
|
||||
action: "modify",
|
||||
data: changeEvent.target.type == "checkbox" ? this.checkboxChecked : changeEvent.target.value
|
||||
}).toString(), {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
},
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(json => {
|
||||
if (json['error'] != null) {
|
||||
alertStore.alertError(json['error']);
|
||||
return;
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
template: `
|
||||
<form method="POST">
|
||||
<input type="hidden" name="action" value="modify">
|
||||
<input type="hidden" name="action-id" :value="event.id">
|
||||
|
||||
<div class="btn-toolbar pull-right">
|
||||
<template v-if="event.dataType === 'ColorEventData'">
|
||||
<input type="hidden" name="type" value="color">
|
||||
<input type="color" name="data" onchange="this.form.submit()" :value="event.data?.valueStr">
|
||||
</template>
|
||||
<template v-else-if="event.dataType === 'LevelEventData'">
|
||||
<input type="hidden" name="type" value="level">
|
||||
<input class="styled-slider slider-progress" type="range" name="data" min="0" max="100" step="10" onchange="this.form.submit()" :value="event.data?.value * 100">
|
||||
</template>
|
||||
<template v-else-if="event.dataType === 'OnOffEventData'">
|
||||
<input type="hidden" name="type" value="on-off">
|
||||
<input class="switch" type="checkbox" name="data" onchange="this.form.submit()" v-model="checkboxChecked">
|
||||
</template>
|
||||
</div>
|
||||
</form>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<template v-if="event.dataType === 'ColorEventData'">
|
||||
<input type="color" @change="changeState" :value="event.data?.valueStr">
|
||||
</template>
|
||||
<template v-else-if="event.dataType === 'LevelEventData'">
|
||||
<input class="styled-slider slider-progress" type="range" min="0.0" max="1.0" step="0.1" @change="changeState" :value="event.data?.value">
|
||||
</template>
|
||||
<template v-else-if="event.dataType === 'OnOffEventData'">
|
||||
<input class="switch" type="checkbox" @change="changeState" v-model="checkboxChecked">
|
||||
</template>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue