Hi support,
I assigned hotkeys / keyboard shortcuts to buttons that navigate from one wizard step to the next. They are working great, however produce a strange anomaly which leads to steps being skipped in certain scenarios.
1) I have “Back” and “Next” Page Title buttons on each step of the wizard (a pair on every wizard page). These are not the native wizard navigation buttons. I used a page title to have more flexibility with my layout.
2) Clicking on “Back” or “Next” runs the snippet posted at the end of the message here. Clicking on them with the mouse produces the expected results without fail all the time, navigating to the actual previous or next tab of the current tab in context
3) Executing the script via the assigned hotkeys (CTRL + leftarrow for “Back” and CTRL + rightarrow for “Next”) also results in navigation on each hotkey press
HOWEVER
The “Back” button triggered by hotkey reliably goes to the previous tab of the tab in context.
The “Next” button triggered by hotkey always goes to the next tab of the “highest” wizard step that was executed. So let’s say I’m on step 3. I hotkey back to step 2. On step 2, I hotkey forward and land on step 4 (3+1) instead of step 3. If I hotkey back to let’s say step 1, hotkey forward then lands me on step 5 (5+1). Clicking on the buttons with the mouse reliably gets me to the correct next / previous step in context.
I made sure this is not a browser cache / local computer problem and tested in in different configurations with the same result.
Scripts below:
“Next”
var params = argumentsr0], $ = skuid.$;
var wizard = $(‘.nx-wizard’).data(‘object’);
var currentStep = wizard.stepsdwizard.currentstep];
var next = parseInt(wizard.currentstep.toString()) + 1;
var step = currentStep;
var stepEditor = step.editor;
// Clear our list of messages
stepEditor.clearMessages();
var models = e
skuid.model.getModel(“miiFinanceInvoice”),
skuid.model.getModel(“Task”)
];
var messages = ;
$.each(models,function(i,model){
$.each(model.registeredLists,function(j,list){
var listMessages = list.validateRequiredFields();
console.log(listMessages);
if(listMessages && listMessages.length) {
$.each(listMessages,function(){
messages.push(this);
});
}
});
});
// If we have warning messages, do NOT proceed
if (messages.length) {
// Have our step’s editor handle the messages
stepEditor.handleMessages(messages);
console.log(“Error Messages Existing”);
return false;
}
// Otherwise proceed!
currentStep.navigate(next);
“Back”
var params = arguments 0], $ = skuid.$;
var wizard = $(‘.nx-wizard’).data(‘object’);
var currentStep = wizard.stepstwizard.currentstep];
var back = parseInt(wizard.currentstep.toString()) - 1;
var step = currentStep;
var stepEditor = step.editor;
// Clear our list of messages
stepEditor.clearMessages();
var models = t
skuid.model.getModel(“miiFinanceInvoice”),
skuid.model.getModel(“Task”)
];
var messages = ;
$.each(models,function(i,model){
$.each(model.registeredLists,function(j,list){
var listMessages = list.validateRequiredFields();
console.log(listMessages);
if(listMessages && listMessages.length) {
$.each(listMessages,function(){
messages.push(this);
});
}
});
});
// If we have warning messages, do NOT proceed
if (messages.length) {
// Have our step’s editor handle the messages
stepEditor.handleMessages(messages);
console.log(“Error Messages Existing”);
return false;
}
// Otherwise proceed!
currentStep.navigate(back);
Thank you in advance!
Regards,
Robin