Saving Form Data
⚠️ The annual cost of maintaining the server where this website is hosted, the domain, and keeping it up-to-date is approximately €3,000 per year. Help us with a small donation to cover these expenses. Support Now!
0 / 10000 €
The route:BeforeComplete
event is used to store form data. Different
APIs are used to save data, depending on the type of form.
Example: saving password data
This example constructs an object that contains the relevant information from the form
and saves it to the ViewData
object, so it can be passed. This example
can be seen in the Account.js
SavePassword
function.
var profileForm = server.forms.getForm('profile'); //gets the profile form object
var newPasswords = profileForm.login.newpasswords;
...
var result = { //constructs an object containing the form result
currentPassword: profileForm.login.currentpassword.value,
newPassword: newPasswords.newpassword.value,
newPasswordConfirm: newPasswords.newpasswordconfirm.value,
profileForm: profileForm
};
if (profileForm.valid) {
res.setViewData(result); // adds form result to the ViewData object
this.on('route:BeforeComplete', function () { // creates the function to run before middleware completion
var formInfo = res.getViewData(); // creates object with data to save
var customer = CustomerMgr.getCustomerByCustomerNumber( //gets current customer
req.currentCustomer.profile.customerNo
);
var status;
Transaction.wrap(function () { //saves the new customer password and returns status
status = customer.profile.credentials.setPassword(
formInfo.newPassword,
formInfo.currentPassword,
true
);
});