Skip to content
Snippets Groups Projects
Commit 2db777ef authored by Hermann's avatar Hermann
Browse files

fix callback after edit finished

parent f6a85873
No related branches found
No related tags found
No related merge requests found
...@@ -129,14 +129,15 @@ export class NewUser extends UserEdit { ...@@ -129,14 +129,15 @@ export class NewUser extends UserEdit {
membership: 'regular', membership: 'regular',
}; };
this.valid = false; 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() { view() {
// UPDATE button is inactive if form is not valid // UPDATE button is inactive if form is not valid
const buttonArgs = this.createOnClick( const buttonArgs = this.createOnClick([
['lastname', 'firstname', 'email', 'membership', 'gender'], 'lastname', 'firstname', 'email', 'membership', 'gender']);
(response) => { m.route.set(`/users/${response.data._id}`); },
);
const postButton = m( const postButton = m(
'div.btn.btn-warning', 'div.btn.btn-warning',
this.valid ? buttonArgs : { disabled: 'disabled' }, this.valid ? buttonArgs : { disabled: 'disabled' },
......
...@@ -83,7 +83,7 @@ export class EditView extends ItemView { ...@@ -83,7 +83,7 @@ export class EditView extends ItemView {
return boundFormelement; return boundFormelement;
} }
patchOnClick(patchableFields, callback) { patchOnClick(patchableFields) {
return { return {
onclick: () => { onclick: () => {
if (this.changed) { if (this.changed) {
...@@ -97,16 +97,18 @@ export class EditView extends ItemView { ...@@ -97,16 +97,18 @@ export class EditView extends ItemView {
apiSession.patch(`${this.resource}/${this.id}`, patchData, { apiSession.patch(`${this.resource}/${this.id}`, patchData, {
headers: { 'If-Match': this.data._etag }, headers: { 'If-Match': this.data._etag },
}).then(() => { callback(); }); }).then((response) => {
this.callback(response);
});
}); });
} else { } else {
callback(); this.callback();
} }
}, },
}; };
} }
createOnClick(fields, callback) { createOnClick(fields) {
return { return {
onclick: () => { onclick: () => {
getSession().then((apiSession) => { getSession().then((apiSession) => {
...@@ -118,7 +120,7 @@ export class EditView extends ItemView { ...@@ -118,7 +120,7 @@ export class EditView extends ItemView {
}); });
apiSession.post(this.resource, postData) apiSession.post(this.resource, postData)
.then(response => { callback(response); }); .then((response) => { this.callback(response); });
}); });
}, },
}; };
...@@ -138,7 +140,6 @@ export class inputGroup { ...@@ -138,7 +140,6 @@ export class inputGroup {
// set display-settings accoridng to error-state // set display-settings accoridng to error-state
let errorField = null; let errorField = null;
let groupClasses = vnode.attrs.classes ? vnode.attrs.classes : ''; let groupClasses = vnode.attrs.classes ? vnode.attrs.classes : '';
console.log(groupClasses)
const errors = this.getErrors(); const errors = this.getErrors();
if (errors.length > 0) { if (errors.length > 0) {
errorField = m('span.help-block', `Error: ${errors.join(', ')}`); errorField = m('span.help-block', `Error: ${errors.join(', ')}`);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment