Details
-
Type: Improvement
-
Status: Done/Fixed
-
Priority: Minor
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.7
-
Fix Version/s: 4.7.13
-
Component/s: Core CiviCRM
-
Labels:
-
Documentation Required?:None
-
Funding Source:Contributed Code
Description
This issue is to address one bug and a couple of enhancements for the angular wizard widget
Bug: Destroying a Wizard Step Lags
When destroying a wizard step, via ng-if for instance the code that alerts the wizard to remove the step from the progress bar/nav uses element.on("$destory").
That element event is outside of the angular digest and so the removal of the step for the nav doesn't happen until some other event (user interaction) triggers a new digest cycle.
I have tested using the angular directive scope destroy event instead: scope.$on("$destroy")
This remains inside the digest cycle and causes an immediate removal of the step from the nav.
Enhancements: Custom Wizard Classes
It would be nice (read as needed for my current project) to add custom classes to the wizard nav items, and the wizard step templates. This can be used for customizing individual steps, interfacing with additional class triggered directives, or for interfacing with ngAnimate.
I'm adding a scope variable to each directive so that classes may be passed in as needed.
The crmUiWizard directive gets crmUiWizardNavClass which adds the included classes to the li element of the wizard step.
The crmUiWizardStep directive gets crmUiWizardStepClass which adds the included classes to the .crm-wizard-step div