Chris@0: menuParentSelector = $menu_parent_form; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public static function create(ContainerInterface $container) { Chris@0: return new static($container->get('menu.parent_form_selector')); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Gets all the available menus and menu items as a JavaScript array. Chris@0: * Chris@0: * @param \Symfony\Component\HttpFoundation\Request $request Chris@0: * The request of the page. Chris@0: * Chris@0: * @return \Symfony\Component\HttpFoundation\JsonResponse Chris@0: * The available menu and menu items. Chris@0: */ Chris@0: public function getParentOptions(Request $request) { Chris@0: $available_menus = []; Chris@0: if ($menus = $request->request->get('menus')) { Chris@0: foreach ($menus as $menu) { Chris@0: $available_menus[$menu] = $menu; Chris@0: } Chris@0: } Chris@0: // @todo Update this to use the optional $cacheability parameter, so that Chris@0: // a cacheable JSON response can be sent. Chris@0: $options = $this->menuParentSelector->getParentSelectOptions('', $available_menus); Chris@0: Chris@0: return new JsonResponse($options); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Route title callback. Chris@0: * Chris@0: * @param \Drupal\system\MenuInterface $menu Chris@0: * The menu entity. Chris@0: * Chris@0: * @return array Chris@0: * The menu label as a render array. Chris@0: */ Chris@0: public function menuTitle(MenuInterface $menu) { Chris@0: return ['#markup' => $menu->label(), '#allowed_tags' => Xss::getHtmlTagList()]; Chris@0: } Chris@0: Chris@0: }