SPA outside CRM
The CRM update 21.25.1 SPA settings introduces "Add to menu" item, allowing to show this section in the left menu. When enabled, this setting removes SPA from the main "CRM" section, becoming available via separate item in the left menu.
This feature uses the [link=13803656]customizable sections[/link] feature for Intranet module.
General
SPA routing is performed via \Bitrix\Crm\Service\Router
.
it generates links to grid, kanban and element details that later are included into the layout.
The routing resolves which component must be connected with specified parameters.
Upon including the SPA into separated section, router start generating links for it with new address. All links to this SPA replace the standard root /crm/
for the root generated by the Intranet
(see. \Bitrix\Crm\Integration\IntranetManager::getUrlForCustomSectionPage
).
Similar procedure is performed with JS router BX.Crm.Router
.
In case the SPA is separated into an individual section, it disappears from the main CRM section. i. e. its removed from the CRM top menu and all links to this process are hidden in the separate section.
Implementation details
Integration with customized Intranet sections is performed via \Bitrix\Crm\Integration\Intranet\CustomSectionProvider
.
Customized section page connects the component crm.router
with current root passed in parameters. Next, life cycle is not different from the standard CRM page in the new API
When current opened SPA is included into separate section, the CRM top panel is not connected (\Bitrix\Crm\Component\Base::addTopPanel
).