/** * Display the repository details * * @return void */ public function displayTask() { $this->view->total = 0; $this->view->filters = array(); // Paging $this->view->filters['limit'] = Request::getState($this->_option . '.' . $this->_controller . '.limit', 'limit', Config::get('list_limit'), 'int'); $this->view->filters['start'] = Request::getState($this->_option . '.' . $this->_controller . '.limitstart', 'limitstart', 0, 'int'); $this->view->filters['status'] = trim(Request::getState($this->_option . '.' . $this->_controller . '.status', 'status', 'upcoming')); $this->view->filters['search'] = trim(Request::getState($this->_option . '.' . $this->_controller . '.search', 'search', '')); $upcoming = false; $installed = true; if ($this->view->filters['status'] == 'upcoming' || $this->view->filters['status'] == 'all') { $upcoming = true; if ($this->view->filters['status'] == 'upcoming') { $installed = false; } } $source = Component::params('com_update')->get('git_repository_source', null); $this->view->rows = json_decode(Cli::log($this->view->filters['limit'], $this->view->filters['start'], $this->view->filters['search'], $upcoming, $installed, false, $source)); $this->view->total = json_decode(Cli::log($this->view->filters['limit'], $this->view->filters['start'], $this->view->filters['search'], $upcoming, $installed, true, $source)); $this->view->total = $this->view->total[0]; // Set any errors foreach ($this->getErrors() as $error) { $this->view->setError($error); } // Output the HTML $this->view->display(); }
/** * Display system information * * @apiMethod GET * @apiUri /system/info * @apiParameter { * "name": "values", * "description": "Amount of data to return", * "type": "string", * "required": false, * "default": "all", * "allowedValues": "all, short" * } * @return void */ public function infoTask() { $values = Request::getVar('values', 'all'); $response = new stdClass(); /*$ip = Request::ip(); $ips = explode(',', $this->config->get('whitelist', '127.0.0.1')); $ips = array_map('trim', $ips); if (!in_array($ip, $ips)) { $this->setMessage($response); return; } if (isset($_SERVER['SERVER_SOFTWARE'])) { $sf = $_SERVER['SERVER_SOFTWARE']; } else { $sf = getenv('SERVER_SOFTWARE'); }*/ //$commit = shell_exec("git log -1 --pretty=format:'%H - %s (%ad)' --abbrev-commit"); //shell_exec("git log -1 --pretty=format:'%h - %s (%ci)' --abbrev-commit git merge-base local-dev dev"); // System $response->system = array('cms' => App::version(), 'php' => php_uname(), 'dbversion' => App::get('db')->getVersion(), 'dbcollation' => App::get('db')->getCollation(), 'phpversion' => phpversion(), 'server' => $sf, 'last_update' => null, 'last_core_update' => null, 'environment' => Config::get('application_env', 'production')); require_once PATH_CORE . DS . 'components' . DS . 'com_update' . DS . 'helpers' . DS . 'cli.php'; $source = Component::params('com_update')->get('git_repository_source', null); //$response->system['repositoryVersion'] = json_decode(Cli::version()); //$response->system['repositoryVersion'] = $response->system['repositoryVersion'][0]; //$response->system['repositoryMechanism'] = json_decode(Cli::mechanism()); //$response->system['repositoryMechanism'] = $response->system['repositoryMechanism'][0]; //$response->system['status'] = json_decode(Cli::status()); $response->system['status'] = count(json_decode(Cli::status())) > 0 ? 'dirty' : 'clean'; $response->system['upcoming'] = json_decode(Cli::update(true, false, $source)); $response->system['migration'] = json_decode(Cli::migration()); // Get the last update $rows = json_decode(Cli::log(1, 0, '', false, true, false, null)); if ($rows) { $props = get_object_vars($rows); foreach ($props as $key => $item) { $response->system['last_update'] = $item; } } // Get last core update $rows = json_decode(Cli::log(1, 0, 'Merge remote-tracking', false, true, false, null)); if ($rows) { $props = get_object_vars($rows); foreach ($props as $key => $item) { $response->system['last_update_core'] = $item; } } if (strstr($values, ',') || $values != 'all' && $values != 'short') { $keys = explode(',', $values); $keys = array_map('trim', $keys); $keys = array_map('strtolower', $keys); $data = array(); foreach ($keys as $key) { $data[$key] = $response->system[$key]; } $response->system = $data; } $results = Event::trigger('hubzero.onSystemOverview', array($values)); if ($results) { $response->overview = array(); foreach ($results as $result) { if ($result) { $response->overview[] = $result; } } } $this->send($response); }