diff --git a/admin.php b/admin.php index 4fb1b9cb..fc173ffb 100644 --- a/admin.php +++ b/admin.php @@ -2,7 +2,6 @@ namespace Grav\Plugin; use Grav\Common\File\CompiledYamlFile; -use Grav\Common\GPM\GPM; use Grav\Common\Grav; use Grav\Common\Inflector; use Grav\Common\Language\Language; @@ -508,65 +507,6 @@ class AdminPlugin extends Plugin } } - /** - * Handles getting GPM updates - */ - public function onTaskGPM() - { - $task = 'GPM'; - if (!$this->admin->authorize(['admin.maintenance', 'admin.super'])) { - $this->admin->json_response = [ - 'status' => 'unauthorized', - 'message' => $this->admin->translate('PLUGIN_ADMIN.INSUFFICIENT_PERMISSIONS_FOR_TASK') . ' ' . $task . '.' - ]; - - return false; - } - - $action = $_POST['action']; // getUpdatable | getUpdatablePlugins | getUpdatableThemes | gravUpdates - $flush = isset($_POST['flush']) && $_POST['flush'] == true ? true : false; - - if (isset($this->grav['session'])) { - $this->grav['session']->close(); - } - - try { - $gpm = new GPM($flush); - - switch ($action) { - case 'getUpdates': - $resources_updates = $gpm->getUpdatable(); - if ($gpm->grav != null) { - $grav_updates = [ - "isUpdatable" => $gpm->grav->isUpdatable(), - "assets" => $gpm->grav->getAssets(), - "version" => GRAV_VERSION, - "available" => $gpm->grav->getVersion(), - "date" => $gpm->grav->getDate(), - "isSymlink" => $gpm->grav->isSymlink() - ]; - - echo json_encode([ - "status" => "success", - "payload" => [ - "resources" => $resources_updates, - "grav" => $grav_updates, - "installed" => $gpm->countInstalled(), - 'flushed' => $flush - ] - ]); - } else { - echo json_encode(["status" => "error", "message" => "Cannot connect to the GPM"]); - } - break; - } - } catch (\Exception $e) { - echo json_encode(["status" => "error", "message" => $e->getMessage()]); - } - - exit; - } - /** * Get list of form field types specified in this plugin. Only special types needs to be listed. * @@ -618,7 +558,6 @@ class AdminPlugin extends Plugin 'onTwigTemplatePaths' => ['onTwigTemplatePaths', 1000], 'onTwigSiteVariables' => ['onTwigSiteVariables', 1000], 'onAssetsInitialized' => ['onAssetsInitialized', 1000], - 'onTask.GPM' => ['onTaskGPM', 0], 'onAdminRegisterPermissions' => ['onAdminRegisterPermissions', 0], 'onOutputGenerated' => ['onOutputGenerated', 0], ]); diff --git a/classes/admincontroller.php b/classes/admincontroller.php index 74edfc64..058410ee 100644 --- a/classes/admincontroller.php +++ b/classes/admincontroller.php @@ -5,6 +5,7 @@ use Grav\Common\Cache; use Grav\Common\Config\Config; use Grav\Common\File\CompiledYamlFile; use Grav\Common\Filesystem\Folder; +use Grav\Common\GPM\GPM; use Grav\Common\GPM\Installer; use Grav\Common\Grav; use Grav\Common\Data; @@ -793,6 +794,51 @@ class AdminController extends AdminBaseController $this->admin->json_response = ['status' => 'success', 'feed_data' => $feed_data]; } + /** + * Get update status from GPM + */ + protected function taskGetUpdates() + { + $data = $this->post; + $flush = isset($data['flush']) && $data['flush'] == true ? true : false; + + if (isset($this->grav['session'])) { + $this->grav['session']->close(); + } + + try { + $gpm = new GPM($flush); + + $resources_updates = $gpm->getUpdatable(); + if ($gpm->grav != null) { + $grav_updates = [ + "isUpdatable" => $gpm->grav->isUpdatable(), + "assets" => $gpm->grav->getAssets(), + "version" => GRAV_VERSION, + "available" => $gpm->grav->getVersion(), + "date" => $gpm->grav->getDate(), + "isSymlink" => $gpm->grav->isSymlink() + ]; + + $this->admin->json_response = [ + "status" => "success", + "payload" => [ + "resources" => $resources_updates, + "grav" => $grav_updates, + "installed" => $gpm->countInstalled(), + 'flushed' => $flush + ] + ]; + } else { + $this->admin->json_response = ["status" => "error", "message" => "Cannot connect to the GPM"]; + } + + } catch (\Exception $e) { + $this->admin->json_response = ["status" => "error", "message" => $e->getMessage()]; + } + + } + /** * Get Notifications from cache. * diff --git a/pages/admin/update.md b/pages/admin/update.md index caad79ba..1343a62d 100644 --- a/pages/admin/update.md +++ b/pages/admin/update.md @@ -1,5 +1,5 @@ --- -title: Cache +title: Updates template: default access: