protected function processActionCopyToMe() { $userStorage = Driver::getInstance()->getStorageByUserId($this->getUser()->getId()); if (!$userStorage) { $this->errorCollection->add(array(new Error("Could not find storage for current user"))); $this->sendJsonErrorResponse(); } $folder = $userStorage->getFolderForSavedFiles($this->getUser()->getId()); if (!$folder) { $this->errorCollection->add(array(new Error("Could not find folder for created files"))); $this->sendJsonErrorResponse(); } $newFile = $this->file->copyTo($folder, $this->getUser()->getId(), true); if (!$newFile) { $this->errorCollection->add(array(new Error("Could not copy file to storage for current user"))); $this->sendJsonErrorResponse(); } $crumbs = array(); foreach ($newFile->getParents(Driver::getInstance()->getFakeSecurityContext()) as $parent) { if ($parent->getId() == $userStorage->getRootObjectId()) { continue; } $crumbs[] = $parent->getName(); } unset($parent); $viewUrl = Driver::getInstance()->getUrlManager()->encodeUrn($userStorage->getProxyType()->getStorageBaseUrl() . 'path/' . implode('/', $crumbs)); $this->sendJsonSuccessResponse(array('newId' => $newFile->getId(), 'viewUrl' => $viewUrl . '#hl-' . $newFile->getId())); }
protected function processActionCopyToMe() { $userStorage = Driver::getInstance()->getStorageByUserId($this->getUser()->getId()); if (!$userStorage) { $this->errorCollection->addOne(new Error('Could not find storage for current user')); $this->sendJsonErrorResponse(); } $folder = $userStorage->getFolderForSavedFiles(); if (!$folder) { $this->errorCollection->addOne(new Error('Could not find folder for created files')); $this->sendJsonErrorResponse(); } $newFile = $this->file->copyTo($folder, $this->getUser()->getId(), true); if (!$newFile) { $this->errorCollection->addOne(new Error('Could not copy file to storage for current user')); $this->sendJsonErrorResponse(); } $urlManager = Driver::getInstance()->getUrlManager(); $viewUrl = $urlManager->encodeUrn($urlManager->getUrlFocusController('showObjectInGrid', array('objectId' => $newFile->getId()))); $runViewerUrl = $urlManager->encodeUrn($urlManager->getUrlFocusController('showObjectInGrid', array('objectId' => $newFile->getId(), 'cmd' => 'show'))); $this->sendJsonSuccessResponse(array('newId' => $newFile->getId(), 'viewUrl' => $viewUrl, 'runViewUrl' => $runViewerUrl)); }