diff --git a/src/userTool.js b/src/userTool.js index 9f160b6c0edda19d36fca554f3b1e7c09adb1a06..bf573cf79a719ecfa388d6dc698dfe008c61abc5 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 61805ac0516ea22b6667d50b3eae18f5caed53e8..0ef3516d90eb2058b350fa1db47114b278344eb5 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(', ')}`);