From fd737fbbdbc2d50002db3b4fc07c4c0b9ba307ea Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Mon, 1 Oct 2018 21:02:03 +0200 Subject: [PATCH] logs-content: Added edit log form. --- .../components/edit-log-modal/component.js | 68 ++++++++++++++ .../components/edit-log-modal/index.marko | 25 +++++ .../components/logs-content-menu/index.marko | 2 +- .../logs-content/components/page/component.js | 6 +- .../logs-content/components/page/index.marko | 8 +- .../logs-content/components/page/style.less | 23 ++++- .../logs/components/logs-list/index.marko | 2 +- rpdata/api/Log.js | 94 ++++++++++++++++++- rpdata/api/LogHeader.js | 6 +- 9 files changed, 221 insertions(+), 13 deletions(-) create mode 100644 marko/page/logs-content/components/edit-log-modal/component.js create mode 100644 marko/page/logs-content/components/edit-log-modal/index.marko diff --git a/marko/page/logs-content/components/edit-log-modal/component.js b/marko/page/logs-content/components/edit-log-modal/component.js new file mode 100644 index 0000000..d88585f --- /dev/null +++ b/marko/page/logs-content/components/edit-log-modal/component.js @@ -0,0 +1,68 @@ +const moment = require("moment") + +const {logsApi} = require("../../../../../rpdata/api/Log") + +module.exports = class { + onCreate(input) { + this.state = { + error: null, + loading: false, + values: { + title: "", + event: "", + description: "", + open: false, + }, + } + + this.first = false + } + + onInput(input) { + if (input.log && !this.first) { + this.state.values = { + title: input.log.title, + event: input.log.eventName, + description: input.log.description, + open: input.log.open, + } + + this.first = true + } + } + + change(key, ev) { + this.state.values[key] = ev.target.value + this.state.values = Object.assign({}, this.state.values) + } + + open() { + this.state.loading = false + } + + close() { + this.first = false + this.emit("close") + } + + save() { + if (this.state.loading) { + return + } + + const input = Object.assign({id: this.input.log.id}, this.state.values) + console.log(input) + + this.state.loading = true + logsApi.edit(input).then(data => { + this.emit("edited", data) + 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 + }) + } +} \ No newline at end of file diff --git a/marko/page/logs-content/components/edit-log-modal/index.marko b/marko/page/logs-content/components/edit-log-modal/index.marko new file mode 100644 index 0000000..38bebc8 --- /dev/null +++ b/marko/page/logs-content/components/edit-log-modal/index.marko @@ -0,0 +1,25 @@ +import moment from "moment" + + +

Edit Log

+ +

${state.error}

+ + + + + + + + +