data: Added channel list/add/edit

This commit is contained in:
2018-10-11 21:55:15 +02:00
parent d380a47d8d
commit a5ac48e3d6
20 changed files with 329 additions and 11 deletions
@@ -0,0 +1,57 @@
const moment = require("moment")
const {channelApi} = require("../../../../../rpdata/api/Channel")
module.exports = class {
onCreate(input) {
this.state = {
error: null,
loading: false,
values: {
locationName: "",
eventName: "",
logged: false,
}
}
}
change(key, ev) {
this.state.values = Object.assign({}, this.state.values, {[key]: ev.target.value})
}
onInput(input) {
this.state.values = {
eventName: input.channel.eventName,
locationName: input.channel.locationName,
logged: input.channel.logged,
}
}
open() {
}
close() {
this.emit("close")
}
save() {
if (this.state.loading) {
return
}
const input = Object.assign({name: this.input.channel.name}, this.state.values)
this.state.loading = true
channelApi.edit(input).then((res) => {
this.emit("edited", res)
this.emit("close")
}).catch(errs => {
console.warn("Failed to edit:", errs)
this.state.error = "Failed to edit: " + errs[0].message
}).then(() => {
this.state.loading = false
})
}
}
@@ -0,0 +1,21 @@
<modal class="modal color-text nolabel" key="modal" enabled=(input.enabled) closable on-close("close") on-open("open") >
<h1>Edit ${input.channel.name}</h1>
<p class="color-error">${state.error}</p>
<label>Event Name</label>
<input key="eventName" placeholder="(None)" on-change("change", "eventName") value=state.values.eventName />
<label>Location Name</label>
<input key="locationName" placeholder="(None)" on-change("change", "locationName") value=state.values.locationName />
<label>Logged</label>
<toggle value=state.values.logged on="On" off="Off"
onDesc="Log new posts in this channel."
offDesc="The logbot will not monitor this channel."
on-change("change", "logged") />
<p class="color-danger" if(state.values.logged)>The logbot is not yet available, so this does nothing right now.</p>
<button disabled=state.loading on-click("save")>Save</button>
</modal>