SetPanelVisibility action, defined in
./include/Expressions/Actions/PanelVisibilityAction.php, is used to determine the visibility of a record view panel based on a formula.
While the dependency metadata for your module can be defined in
./custom/modules/<module>/metadata/dependencydef.php, it is recommended to use the extension framework when customizing stock modules to prevent third-party plugins from conflicting with your customizations. The following section will demonstrate how to implement a read-only dependency.
|target||String||The id of the panel to hide|
|value||String||Formula used to determine if the panel should be visible.|
For more information on the various parameters in the dependency definitions, please refer to the dependency actions documentation.
For our example, we will create a dependency on the Cases module that will hide a specific panel if the
status field on a case is set to "Closed". Our example extension definition is shown below:
<?php $dependencies['Cases']['panel_2_visibility'] = array( 'hooks' => array("edit","view"), 'trigger' => 'equal($status, "Closed")', 'triggerFields' => array('status'), 'onload' => true, //Actions is a list of actions to fire when the trigger is true 'actions' => array( array( 'name' => 'SetPanelVisibility', 'params' => array( 'target' => 'detailpanel_2', 'value' => 'true', ), ) ), //notActions is a list of actions to fire when the trigger is false 'notActions' => array( array( 'name' => 'SetPanelVisibility', 'params' => array( 'target' => 'detailpanel_2', 'value' => 'false', ), ), ), );
Once you have the file in place, you will need to navigate to Admin > Repairs > and run a Quick Repair and Rebuild.
Note: It is important that the module name is plural ('Cases' vs. 'Case') and that the name of the dependency, "panel_2_visibility" in this example, is unique.
Last modified: 2020-09-18 18:09:20