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); }
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}"); } }
/** * 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); }
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(); }