Moved GPM get updates to standard method

This commit is contained in:
Andy Miller
2017-02-16 15:03:30 -07:00
parent 6075504725
commit b849f040f1
3 changed files with 47 additions and 62 deletions

View File

@@ -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],
]);

View File

@@ -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.
*

View File

@@ -1,5 +1,5 @@
---
title: Cache
title: Updates
template: default
access: