mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-02 03:16:11 +01:00
Moved GPM get updates to standard method
This commit is contained in:
61
admin.php
61
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],
|
||||
]);
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Cache
|
||||
title: Updates
|
||||
template: default
|
||||
|
||||
access:
|
||||
|
||||
Reference in New Issue
Block a user