/** * Constructor. */ public function __construct(HomeTab $homeTab, WidgetHomeTabConfig $whtc, WidgetDisplayConfig $wdc = null) { $widgetInstance = $whtc->getWidgetInstance(); $widget = $widgetInstance->getWidget(); $details = []; $details['tabId'] = $homeTab->getId(); $details['tabName'] = $homeTab->getName(); $details['tabType'] = $homeTab->getType(); $details['tabIcon'] = $homeTab->getIcon(); $details['widgetId'] = $widget->getId(); $details['widgetName'] = $widget->getName(); $details['widgetIsConfigurable'] = $widget->isConfigurable(); $details['widgetIsExportable'] = $widget->isExportable(); $details['widgetIsDisplayableInWorkspace'] = $widget->isDisplayableInWorkspace(); $details['widgetIsDisplayableInDesktop'] = $widget->isDisplayableInDesktop(); $details['id'] = $widgetInstance->getId(); $details['name'] = $widgetInstance->getName(); $details['icon'] = $widgetInstance->getIcon(); $details['isAdmin'] = $widgetInstance->isAdmin(); $details['isDesktop'] = $widgetInstance->isDesktop(); $details['widgetHomeTabConfigId'] = $whtc->getId(); $details['order'] = $whtc->getWidgetOrder(); $details['type'] = $whtc->getType(); $details['visible'] = $whtc->isVisible(); $details['locked'] = $whtc->isLocked(); if (!is_null($wdc)) { $details['widgetDisplayConfigId'] = $wdc->getId(); $details['row'] = $wdc->getRow(); $details['column'] = $wdc->getColumn(); $details['width'] = $wdc->getWidth(); $details['height'] = $wdc->getHeight(); $details['color'] = $wdc->getColor(); } parent::__construct(self::ACTION, $details); }
public function changeVisibilityWidgetHomeTabConfig(WidgetHomeTabConfig $widgetHomeTabConfig) { $isVisible = !$widgetHomeTabConfig->isVisible(); $widgetHomeTabConfig->setVisible($isVisible); $this->om->flush(); }
/** * @EXT\Route( * "/api/workspace/home/tab/widget/config/{whtc}/display/{wdc}/edit", * name="api_put_workspace_widget_instance_edition", * options = {"expose"=true} * ) * * Edits widget instance config */ public function putWorkspaceWidgetInstanceEditionAction(WidgetHomeTabConfig $whtc, WidgetDisplayConfig $wdc) { $workspace = $whtc->getWorkspace(); $this->checkToolEditionAccess($workspace); $widgetInstance = $wdc->getWidgetInstance(); $this->checkWorkspaceWidgetInstance($workspace, $widgetInstance); $this->checkWorkspaceWidgetDisplayConfig($workspace, $wdc); $widget = $widgetInstance->getWidget(); $color = $wdc->getColor(); $details = $wdc->getDetails(); $visible = $whtc->isVisible(); $locked = $whtc->isLocked(); $textTitleColor = isset($details['textTitleColor']) ? $details['textTitleColor'] : null; $formType = new WidgetInstanceConfigType('workspace', $this->bundles, false, [], $color, $textTitleColor, $locked, $visible, false); $formType->enableApi(); $form = $this->createForm($formType, $widgetInstance); $form->submit($this->request); if ($form->isValid()) { $instance = $form->getData(); $name = $instance->getName(); $color = $form->get('color')->getData(); $textTitleColor = $form->get('textTitleColor')->getData(); $visible = $form->get('visible')->getData(); $widgetInstance->setName($name); $whtc->setVisible($visible); $wdc->setColor($color); $details = $wdc->getDetails(); if (is_null($details)) { $details = []; } $details['textTitleColor'] = $textTitleColor; $wdc->setDetails($details); $this->widgetManager->persistWidgetConfigs($widgetInstance, null, $wdc); $event = new LogWidgetWorkspaceEditEvent($widgetInstance, $whtc, $wdc); $this->eventDispatcher->dispatch('log', $event); $widgetDatas = ['config' => $this->serializer->serialize($whtc, 'json', SerializationContext::create()->setGroups(['api_widget'])), 'display' => $this->serializer->serialize($wdc, 'json', SerializationContext::create()->setGroups(['api_widget']))]; return new JsonResponse($widgetDatas, 200); } else { $options = ['http_code' => 400, 'extra_parameters' => null, 'serializer_group' => 'api_widget', 'extra_infos' => $widget->isConfigurable()]; return $this->apiManager->handleFormView('ClarolineCoreBundle:API:Widget\\widgetInstanceEditForm.html.twig', $form, $options); } }
public function changeVisibilityWidgetHomeTabConfig(WidgetHomeTabConfig $widgetHomeTabConfig, $visible = null) { $isVisible = is_null($visible) ? !$widgetHomeTabConfig->isVisible() : $visible; $widgetHomeTabConfig->setVisible($isVisible); $this->om->flush(); }