From 2db777ef0cdac9d17a36bf07d6b83b1578a4bd79 Mon Sep 17 00:00:00 2001 From: Hermann Blum <hermannsblum@yahoo.de> Date: Fri, 1 Dec 2017 16:43:44 +0100 Subject: [PATCH] fix callback after edit finished --- src/userTool.js | 9 +++++---- src/views/editView.js | 13 +++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/userTool.js b/src/userTool.js index 9f160b6..bf573cf 100644 --- a/src/userTool.js +++ b/src/userTool.js @@ -129,14 +129,15 @@ export class NewUser extends UserEdit { membership: 'regular', }; this.valid = false; + + // if the creation is finished, UI should switch to new User + this.callback = (response) => { m.route.set(`/users/${response.data._id}`); } } view() { // UPDATE button is inactive if form is not valid - const buttonArgs = this.createOnClick( - ['lastname', 'firstname', 'email', 'membership', 'gender'], - (response) => { m.route.set(`/users/${response.data._id}`); }, - ); + const buttonArgs = this.createOnClick([ + 'lastname', 'firstname', 'email', 'membership', 'gender']); const postButton = m( 'div.btn.btn-warning', this.valid ? buttonArgs : { disabled: 'disabled' }, diff --git a/src/views/editView.js b/src/views/editView.js index 61805ac..0ef3516 100644 --- a/src/views/editView.js +++ b/src/views/editView.js @@ -83,7 +83,7 @@ export class EditView extends ItemView { return boundFormelement; } - patchOnClick(patchableFields, callback) { + patchOnClick(patchableFields) { return { onclick: () => { if (this.changed) { @@ -97,16 +97,18 @@ export class EditView extends ItemView { apiSession.patch(`${this.resource}/${this.id}`, patchData, { headers: { 'If-Match': this.data._etag }, - }).then(() => { callback(); }); + }).then((response) => { + this.callback(response); + }); }); } else { - callback(); + this.callback(); } }, }; } - createOnClick(fields, callback) { + createOnClick(fields) { return { onclick: () => { getSession().then((apiSession) => { @@ -118,7 +120,7 @@ export class EditView extends ItemView { }); apiSession.post(this.resource, postData) - .then(response => { callback(response); }); + .then((response) => { this.callback(response); }); }); }, }; @@ -138,7 +140,6 @@ export class inputGroup { // set display-settings accoridng to error-state let errorField = null; let groupClasses = vnode.attrs.classes ? vnode.attrs.classes : ''; - console.log(groupClasses) const errors = this.getErrors(); if (errors.length > 0) { errorField = m('span.help-block', `Error: ${errors.join(', ')}`); -- GitLab