public function executeView() { $pullid = (int) mfwRequest::get('pull_id'); $pull = PullRequestDb::retrieveByPK($pullid); if (!$pull) { return $this->buildErrorPage("pull request no found (id={$pullid})"); } $repo = $this->repolist[$pull->getRepoId()]; $rawpull = Github::getSinglePullRequest($repo->getName(), $pull->getNumber()); $comments = Github::getPullRequestComments($repo->getName(), $pull->getNumber()); $files = Github::getPullRequestFiles($repo->getName(), $pull->getNumber()); $alerts = PullRequestAlertDb::selectByPullRequest($pull); $filters = FilterDb::selectAll(); $alert_filters = array(); foreach ($alerts as $a) { $alert_filters[$a->getFileName()][] = $filters[$a->getFilterId()]; } $params = array('rawpull' => $rawpull, 'comments' => $comments, 'files' => $files, 'pull' => $pull, 'repo' => $repo, 'alert_filters' => $alert_filters); return $this->build($params); }
protected function makeAlertBlock($pull) { static $filterlist = null; if (is_null($filterlist)) { $filterlist = FilterDb::selectAll(); } $repo = $this->repolist[$pull->getRepoId()]; $alerts = $pull->getAllAlerts(); $file_alerts = array(); foreach ($alerts as $a) { $file_alerts[$a->getFileName()][] = $filterlist[$a->getFilterId()]; } $nonfile_alerts = array(); if (isset($file_alerts[''])) { $nonfile_alerts = $file_alerts['']; unset($file_alerts['']); } $files = array(); foreach ($file_alerts as $file => $alerts) { $files[] = array('filename' => $file, 'alerts' => $alerts); } $github_url = "https://github.com/{$this->github_project_owner}/{$repo->getName()}/pull/{$pull->getNumber()}"; return array('pull' => $pull, 'repo' => $repo, 'github_url' => $github_url, 'alerts' => $nonfile_alerts, 'files' => $files); }