Example #1
0
 public static function getWebsites()
 {
     global $site;
     $answer = array();
     $answer[] = array('id' => self::$websiteId, 'title' => BASE_URL);
     $site->requireConfig('standard/menu_management/remotes.php');
     $remotes = Remotes::getRemotes();
     foreach ($remotes as $key => $remote) {
         $answer[] = array('id' => $key + 1, 'title' => $remote['url']);
     }
     return $answer;
 }
 /**
  *
  * Copy page from one place to another
  */
 private function _copyPage()
 {
     global $site;
     $site->requireConfig('standard/menu_management/remotes.php');
     $answer = array();
     if (!isset($_REQUEST['websiteId'])) {
         trigger_error("Website id is not set");
         return false;
     }
     $websiteId = $_REQUEST['websiteId'];
     if (!isset($_REQUEST['zoneName'])) {
         trigger_error("Zone name is not set");
         return false;
     }
     $zoneName = $_REQUEST['zoneName'];
     if (!isset($_REQUEST['languageId'])) {
         trigger_error("Language id is not set");
         return false;
     }
     $languageId = $_REQUEST['languageId'];
     if (!isset($_REQUEST['pageId'])) {
         trigger_error("Page id is not set");
         return false;
     }
     $pageId = $_REQUEST['pageId'];
     if (!isset($_REQUEST['destinationPageId'])) {
         trigger_error("Destination page id is not set");
         return false;
     }
     $destinationPageId = $_REQUEST['destinationPageId'];
     if (!isset($_REQUEST['destinationPageType'])) {
         trigger_error("Destination page type is not set");
         return false;
     }
     $destinationPageType = $_REQUEST['destinationPageType'];
     if (!isset($_REQUEST['destinationLanguageId'])) {
         trigger_error("Destination language id is not set");
         return false;
     }
     $destinationLanguageId = $_REQUEST['destinationLanguageId'];
     if (!isset($_REQUEST['destinationZoneName'])) {
         trigger_error("Destination zone name is not set");
         return false;
     }
     $destinationZoneName = $_REQUEST['destinationZoneName'];
     //check if destination page exists
     $destinationZone = $site->getZone($destinationZoneName);
     if ($destinationPageType == 'zone') {
         $rootElementId = Db::rootContentElement($destinationZone->getId(), $destinationLanguageId);
         if (!$rootElementId) {
             trigger_error('Can\'t find root zone element.');
             return false;
         }
         $destinationPage = $destinationZone->getElement($rootElementId);
     } else {
         $destinationPage = $destinationZone->getElement($destinationPageId);
     }
     if (!$destinationPage) {
         trigger_error("Destination page does not exist");
         return false;
     }
     if ($websiteId == 0) {
         //local page
         $children = Db::pageChildren($destinationPage->getId());
         $destinationPosition = count($children);
         //paste at the bottom
         Model::copyPage($pageId, $destinationPage->getId(), $destinationPosition);
     } else {
         //remote page
         $remotes = Remotes::getRemotes();
         $remote = $remotes[$websiteId - 1];
         $data = array('pageId' => $pageId);
         $remotePages = $this->_remoteRequest($remote, 'getData', $data);
         $this->_createPagesRecursion($destinationPage->getId(), $remotePages);
         $contentManagementSystem = new \Modules\standard\content_management\System();
         $contentManagementSystem->clearCache(BASE_URL);
         $answer['data'] = $data;
     }
     $answer['status'] = 'success';
     $answer['destinationPageId'] = $destinationPage->getId();
     $this->_printJson($answer);
 }
Example #3
0
 public function updateRemotes(Remotes $remotes, $fetch = false)
 {
     foreach ($remotes->getRemotes() as $remote => $addr) {
         $addr = sprintf($addr, $this->getName());
         OS::run('cd ' . OS::bashize($this->directory) . ";git remote remove {$remote}");
         OS::run('cd ' . OS::bashize($this->directory) . ";git remote add {$remote} {$addr}");
     }
     if ($fetch) {
         $current = $remotes->getCurrent();
         $branch = $this->getBranch();
         OS::run('cd ' . OS::bashize($this->directory) . ";git fetch --depth=1 {$current}");
         OS::run('cd ' . OS::bashize($this->directory) . ";git branch -u {$current}/{$branch}");
     }
 }
Example #4
0
 /**
  * Real time update called every X miliseconds defined in scripts.js (5000)
  */
 public function updateAction()
 {
     $this->_check();
     $result = array();
     $branchNavigation = new BranchNavigation();
     $branch = $branchNavigation->getActiveBranch();
     $branches = $branchNavigation->getBranches();
     foreach ($branches as $key => $value) {
         if ($value == $branch) {
             unset($branches[$key]);
         }
     }
     $remotes = new Remotes();
     $remotes->setUid($this->_user->loggedIn->uid);
     $status = new Status();
     $status->setUid($this->_user->loggedIn->uid);
     $recentStatus = $status->getStatusMessages();
     $repos = $remotes->getRepos();
     $result['remotes'] = $remotes->getRemotes();
     $result['avail']['uid'] = array_keys($repos);
     $result['avail']['user'] = array_values($repos);
     $result['status'] = $recentStatus;
     $result['locals'] = array_values($branches);
     $this->_helper->json($result);
 }
Example #5
0
 public function indexAction()
 {
     $result = '';
     $request = $this->getRequest();
     $io = new RawIO();
     //handle file navagation
     $validFile = false;
     $fileNavigation = new FileNavigation();
     $branchNavigation = new BranchNavigation();
     $historyNavigation = new HistoryNavigation();
     $remotes = new Remotes();
     $remotes->setUid($this->_user->loggedIn->uid);
     $status = new Status();
     $status->setUid($this->_user->loggedIn->uid);
     $git = new Git();
     if ($request->isGet()) {
         //===begin file navigation===
         if ($request->getQuery('updir') != NULL) {
             $updirs = (int) $request->getQuery('updir');
             $fileNavigation->upDir($updirs);
         }
         if ($request->getQuery('dir') != NULL) {
             $fileNavigation->enterDir($request->getQuery('dir'));
         }
         if ($request->getQuery('file') != NULL) {
             if ($fileNavigation->validFile($request->getQuery('file'))) {
                 $io->setFile($fileNavigation->getPath(), $request->getQuery('file'));
                 $status->addStatus('open: /' . $fileNavigation->getDir() . $request->getQuery('file'));
             }
         }
         //===end file navigation===
         if ($request->getQuery('branch') != NULL) {
             $result = $branchNavigation->setBranch($request->getQuery('branch'));
             $status->addStatus('branch: ' . $request->getQuery('branch'));
         }
         if ($request->getQuery('sha') != NULL) {
             $result = $historyNavigation->setRev($request->getQuery('sha'));
             $status->addStatus('history: ' . $request->getQuery('sha'));
         }
         //===begin merger===
         if ($request->getQuery('merge') != NULL) {
             $result = $git->merge($request->getQuery('merge'));
             $status->addStatus('merge: ' . $request->getQuery('merge'));
         }
         if ($request->getQuery('pull') != NULL) {
             $result = $remotes->pullRemote($request->getQuery('pull'));
             $status->addStatus('pull: ' . $request->getQuery('pull'));
         }
         if ($request->getQuery('avail') != NULL) {
             $result = $remotes->addRemote($request->getQuery('avail'));
             $status->addStatus('add remote: ' . $request->getQuery('avail'));
         }
         //===end merger===
     }
     if (isset($_POST['code'])) {
         $code = $_POST['code'];
         if ($io->getFile() !== NULL) {
             $io->saveContent($code);
             $status->addStatus('save: ' . $io->getFile());
         }
         if (isset($_POST['commitMessage']) && $_POST['commitMessage'] != '') {
             $msg = $_POST['commitMessage'];
             $result = $git->autoCommit($msg);
             $status->addStatus('commit: ' . $msg);
         }
     }
     $this->view->result = $result;
     $this->view->content = $io->getContent();
     $this->view->editing = $io->getFile();
     $this->view->path = '/' . $fileNavigation->getDir();
     $this->view->files = $fileNavigation->ls();
     $this->view->branch = $branchNavigation->getActiveBranch();
     $this->view->branches = $branchNavigation->getBranches();
     $this->view->state = $branchNavigation->getState();
     $this->view->history = $historyNavigation->getHistory();
     $this->view->headName = $historyNavigation->getHeadName();
     $this->view->status = $status->getStatusMessages();
     $this->view->avail = $remotes->getRepos();
     $this->view->remotes = $remotes->getRemotes();
     $this->view->newFileForm = new NewFileForm();
     $this->view->newDirForm = new NewDirForm();
     $this->view->newBranchForm = new NewBranchForm();
 }