X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=ext%2Fafform%2Fcore%2FCivi%2FApi4%2FUtils%2FAfformSaveTrait.php;h=bee09ea6261107bb4b1a1428fcd0cbc30159c9f8;hb=a19c781aa7ccd2c19e701044873575ea67fa0f7a;hp=d35689ce8a4ab8d4ab11fe440bfcbfbf6aeb4264;hpb=ee398454bfd8879af13c3d1eef659f20b186f751;p=civicrm-core.git diff --git a/ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php b/ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php index d35689ce8a..bee09ea626 100644 --- a/ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php +++ b/ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php @@ -16,7 +16,7 @@ trait AfformSaveTrait { // If no name given, create a unique name based on the title if (empty($item['name'])) { - $prefix = !empty($item['join']) ? "afjoin-{$item['join']}" : !empty($item['block']) ? 'afblock-' . str_replace('*', 'all', $item['block']) : 'afform'; + $prefix = !empty($item['join']) ? "afjoin-{$item['join']}" : (!empty($item['block']) ? ('afblock-' . str_replace('*', 'all', $item['block'])) : 'afform'); $item['name'] = _afform_angular_module_name($prefix . '-' . \CRM_Utils_String::munge($item['title'], '-')); $suffix = ''; while ( @@ -64,12 +64,21 @@ trait AfformSaveTrait { $isChanged = function($field) use ($item, $orig) { return ($item[$field] ?? NULL) !== ($orig[$field] ?? NULL); }; + + if ($isChanged('is_dashlet')) { + // FIXME: more targetted reconciliation + \CRM_Core_ManagedEntities::singleton()->reconcile(); + } + elseif (array_key_exists('is_dashlet', (array) $orig) && $orig['is_dashlet'] && $isChanged('title')) { + // FIXME: more targetted reconciliation + \CRM_Core_ManagedEntities::singleton()->reconcile(); + } + // Right now, permission-checks are completely on-demand. if ($isChanged('server_route') /* || $isChanged('permission') */) { \CRM_Core_Menu::store(); \CRM_Core_BAO_Navigation::resetNavigation(); } - // FIXME if asset-caching is enabled, then flush the asset cache. $item['module_name'] = _afform_angular_module_name($item['name'], 'camel'); $item['directive_name'] = _afform_angular_module_name($item['name'], 'dash');