Example #1
0
 public function add()
 {
     $filesystem = new Filesystem();
     if ($this->request->request->has('currentFolder')) {
         $node = Node::getByID($this->request->request->get('currentFolder'));
         if (is_object($node) && $node instanceof FileFolder) {
             $folder = $node;
         }
     }
     if (!isset($folder)) {
         $folder = $filesystem->getRootFolder();
     }
     $permissions = new \Permissions($folder);
     $error = $this->app->make('error');
     $response = new EditResponse();
     $response->setError($error);
     if (!$permissions->canAddTreeSubNode()) {
         $error->add(t('You do not have permission to add a folder here.'));
     }
     if (!$error->has()) {
         $folder = $filesystem->addFolder($folder, $this->request->request->get('folderName'));
         $response->setMessage(t('Folder added.'));
         $response->setAdditionalDataAttribute('folder', $folder);
     }
     $response->outputJSON();
 }
Example #2
0
 public function remove_tree_node()
 {
     $node = $this->getNode();
     $tree = $node->getTreeObject();
     $treeNodeID = $node->getTreeNodeID();
     $error = \Core::make('error');
     if (!\Core::make('token')->validate("remove_tree_node")) {
         $error->add(\Core::make('token')->getErrorMessage());
     }
     if (!is_object($node)) {
         $error->add(t('Invalid node.'));
     }
     if ($node->getTreeNodeParentID() == 0) {
         $error->add(t('You may not remove the top level node.'));
     }
     if (!$error->has()) {
         $response = new EditResponse();
         $response->setMessage(t('%s deleted successfully.', $node->getTreeNodeDisplayName()));
         $response->setAdditionalDataAttribute('treeNodeID', $treeNodeID);
         $node->delete();
         return new JsonResponse($response);
     } else {
         return new JsonResponse($error);
     }
 }
Example #3
0
 public function unsubscribe($cnvID)
 {
     $this->loadConversation($cnvID);
     $this->conversation->unsubscribeUser($this->user);
     $o = new EditResponse();
     $o->setAdditionalDataAttribute('subscribed', false);
     $o->outputJSON();
 }
 public function getJSONObject()
 {
     $o = parent::getBaseJSONObject();
     foreach ($this->files as $file) {
         $o->files[] = $file->getJSONObject();
     }
     return $o;
 }
Example #5
0
 public function clear_attribute($ptID = false)
 {
     $this->setupPageType($ptID);
     $sr = new EditResponse();
     if (Loader::helper('validation/token')->validate()) {
         $ak = CollectionKey::getByID(Loader::helper('security')->sanitizeInt($_REQUEST['akID']));
         if (is_object($ak)) {
             $this->defaultPage->clearAttribute($ak);
         }
     } else {
         $this->error->add(Loader::helper('validation/token')->getErrorMessage());
     }
     if ($this->error->has()) {
         $sr->setError($this->error);
     } else {
         $sr->setMessage(t('Attribute cleared successfully.'));
     }
     $sr->outputJSON();
 }
Example #6
0
 public function getJSONObject()
 {
     $o = parent::getBaseJSONObject();
     foreach ($this->users as $user) {
         $uo = new stdClass();
         $uo->uID = $user->getUserID();
         $uo->displayName = $user->getUserDisplayName();
         $o->users[] = $uo;
     }
     return $o;
 }
 public function execute()
 {
     $message = new EditResponse();
     list($sourceNodes, $destNode) = $this->getNodes();
     if (is_array($sourceNodes)) {
         foreach ($sourceNodes as $sourceNode) {
             if ($_REQUEST['copyNodes']) {
                 $sourceNode->duplicate($destNode);
                 $message->setMessage(t('Item copied successfully.'));
             } else {
                 $sourceNode->move($destNode);
                 $message->setMessage(t('Item moved successfully.'));
             }
         }
     }
     if (isset($_POST['treeNodeID'])) {
         $destNode->saveChildOrder($_POST['treeNodeID']);
     }
     $message->setAdditionalDataAttribute('destination', $destNode->getTreeNodeJSON());
     return new JsonResponse($message);
 }
 public function getJSONObject()
 {
     $o = parent::getBaseJSONObject();
     if ($this->cID > 0) {
         $o->cID = $this->cID;
     } else {
         if (count($this->cIDs) > 0) {
             foreach ($this->cIDs as $cID) {
                 $o->cID[] = $cID;
             }
         }
     }
     return $o;
 }
Example #9
0
 public function view()
 {
     // we also perform the "does the user need to buy it?" query here to save some requests
     $r = new EditResponse();
     $r->setAdditionalDataAttribute('isConnected', $this->marketplace->isConnected());
     $r->setAdditionalDataAttribute('connectionError', $this->marketplace->getConnectionError());
     if (is_object($this->item)) {
         $r->setAdditionalDataAttribute('purchaseRequired', $this->item->purchaseRequired());
         $r->setAdditionalDataAttribute('remoteURL', $this->item->getRemoteURL());
         $r->setAdditionalDataAttribute('localURL', $this->item->getLocalURL());
         if (!$this->item->purchaseRequired()) {
             $this->item->enableFreeLicense();
         }
     }
     $r->outputJSON();
 }
Example #10
0
 public function getJSONObject()
 {
     $o = parent::getBaseJSONObject();
     if ($this->cID > 0) {
         $o->cID = $this->cID;
     } elseif (count($this->cIDs) > 0) {
         foreach ($this->cIDs as $cID) {
             $o->cID[] = $cID;
         }
     }
     if (isset($o->cID)) {
         if (!is_array($o->cID)) {
             $o->pages[] = Page::getByID($o->cID)->getJSONObject();
         } else {
             foreach ($o->cID as $cID) {
                 $o->pages[] = Page::getByID($cID)->getJSONObject();
             }
         }
     }
     return $o;
 }
Example #11
0
 public function getJSONObject()
 {
     $o = parent::getBaseJSONObject();
     $o->result = $this->result->getJSONObject();
     return $o;
 }
Example #12
0
 public function undelete_message()
 {
     $e = Core::make('error');
     $message = ConversationMessage::getByID($this->post('cnvMessageID'));
     if (!is_object($message)) {
         $e->add(t('Invalid message'));
     } else {
         $mp = new \Permissions($message);
         if (!$mp->canDeleteConversationMessage()) {
             $e->add(t('You do not have permission to restore this message.'));
         }
     }
     $er = new EditResponse($e);
     if (!$e->has()) {
         $message->restore();
         $er->setMessage(t('Message restored.'));
     }
     $er->outputJSON();
 }
 public function add_items_to_batch()
 {
     if (!$this->token->validate('add_items_to_batch')) {
         $this->error->add($this->token->getErrorMessage());
     }
     $exporters = \Core::make('migration/manager/exporters');
     $r = $this->entityManager->getRepository('\\PortlandLabs\\Concrete5\\MigrationTool\\Entity\\Export\\Batch');
     $batch = $r->findOneById($this->request->request->get('batch_id'));
     if (!is_object($batch)) {
         $this->error->add(t('Invalid batch.'));
     }
     $selectedItemType = false;
     if ($this->request->request->has('item_type') && $this->request->request->get('item_type')) {
         $selectedItemType = $exporters->driver($this->request->request->get('item_type'));
     }
     if (!is_object($selectedItemType)) {
         $this->error->add(t('Invalid item type.'));
     }
     if (!$this->error->has()) {
         $values = $this->request->request->get('id');
         $exportItems = $selectedItemType->getItemsFromRequest($values[$selectedItemType->getHandle()]);
         $collection = $batch->getObjectCollection($selectedItemType->getHandle());
         if (!is_object($collection)) {
             $collection = new ObjectCollection();
             $collection->setType($selectedItemType->getHandle());
             $batch->getObjectCollections()->add($collection);
         }
         foreach ($exportItems as $item) {
             if (!$collection->contains($item)) {
                 $item->setCollection($collection);
                 $collection->getItems()->add($item);
             }
         }
         $this->entityManager->persist($batch);
         $this->entityManager->flush();
         $response = new JsonResponse($exportItems);
         return $response;
     }
     $r = new EditResponse();
     $r->setError($this->error);
     $r->outputJSON();
 }
 public function export_translations($localeCode)
 {
     $result = new EditResponse();
     try {
         if (!Core::make('token')->validate('export_translations')) {
             throw new \Exception(Core::make('token')->getErrorMessage());
         }
         $section = Section::getByLocale($localeCode);
         if (is_object($section) && !$section->isError()) {
             if ($section->getLocale() == Config::get('concrete.multilingual.default_source_locale')) {
                 $section = null;
             }
         } else {
             $section = null;
         }
         if (!isset($section)) {
             throw new \Exception(t('Invalid language identifier'));
         }
         $translations = $section->getSectionInterfaceTranslations();
         $extractor = Core::make('multilingual/extractor');
         $extractor->mergeTranslationsWithSectionFile($section, $translations);
         $extractor->saveSectionTranslationsToFile($section, $translations);
         \Localization::clearCache();
         $result->setAdditionalDataAttribute('newToken', Core::make('token')->generate('export_translations'));
         $result->message = t('The translations have been exported to file and will be used by the website.');
     } catch (\Exception $x) {
         $result->setError($x);
     }
     $result->outputJSON();
 }