/** * Upload a new image, and return its metadata. * * Depending on the $metadata argument it will return asset metadata for the AssetEditor * or image metadata for the ImageEditor * * @param Asset $asset * @param string $metadata Type of metadata to return ("Asset" or "Image") * @return string */ public function uploadAssetAction(Asset $asset, $metadata) { $this->response->setHeader('Content-Type', 'application/json'); /** @var Site $currentSite */ $currentSite = $this->siteRepository->findOneByNodeName($this->request->getInternalArgument('__siteNodeName')); if ($currentSite !== null && $currentSite->getAssetCollection() !== null) { $currentSite->getAssetCollection()->addAsset($asset); $this->assetCollectionRepository->update($currentSite->getAssetCollection()); } switch ($metadata) { case 'Asset': $result = $this->getAssetProperties($asset); if ($this->persistenceManager->isNewObject($asset)) { $this->assetRepository->add($asset); } break; case 'Image': $result = $this->getImageInterfacePreviewData($asset); if ($this->persistenceManager->isNewObject($asset)) { $this->imageRepository->add($asset); } break; default: $this->response->setStatus(400); $result = array('error' => 'Invalid "metadata" type: ' . $metadata); } return json_encode($result); }
/** * A edit view for a site and its settings. * * @param Site $site Site to view * @Flow\IgnoreValidation("$site") * @return void */ public function editAction(Site $site) { try { $sitePackage = $this->packageManager->getPackage($site->getSiteResourcesPackageKey()); } catch (\Exception $e) { $this->addFlashMessage('The site package with key "%s" was not found.', 'Site package not found', Message::SEVERITY_ERROR, array(htmlspecialchars($site->getSiteResourcesPackageKey()))); } $this->view->assignMultiple(array('site' => $site, 'sitePackage' => isset($sitePackage) ? $sitePackage : array(), 'domains' => $this->domainRepository->findBySite($site), 'assetCollections' => $this->assetCollectionRepository->findAll())); }
/** * @param AssetCollection $assetCollection * @return void */ public function deleteAssetCollectionAction(AssetCollection $assetCollection) { if ($this->browserState->get('activeAssetCollection') === $assetCollection) { $this->browserState->set('activeAssetCollection', null); } $this->assetCollectionRepository->remove($assetCollection); $this->addFlashMessage('collectionHasBeenDeleted', '', Message::SEVERITY_OK, [htmlspecialchars($assetCollection->getTitle())]); $this->redirect('index'); }