Update center added alert message

This commit is contained in:
Cüneyt Şentürk
2023-04-25 09:46:22 +03:00
parent 3400f006af
commit 8fbee840ea
10 changed files with 163 additions and 28 deletions

View File

@ -55,11 +55,11 @@ class Versions
{
$versions = static::all($alias);
if (empty($versions[$alias]) || empty($versions[$alias]->data)) {
if (empty($versions[$alias])) {
return false;
}
return $versions[$alias]->data->latest;
return $versions[$alias];
}
public static function all($modules = null)
@ -67,7 +67,7 @@ class Versions
// Get data from cache
$versions = Cache::get('versions');
if (!empty($versions)) {
if (! empty($versions)) {
return $versions;
}
@ -78,17 +78,33 @@ class Versions
// Check core first
$url = 'core/version/' . $info['akaunting'] . '/' . $info['php'] . '/' . $info['mysql'] . '/' . $info['companies'];
$versions['core'] = static::getLatestVersion($url, $info['akaunting']);
# Installed modules start
$modules = Arr::wrap($modules);
$installed_modules = [];
$module_version = '?modules=';
foreach ($modules as $module) {
$alias = $module->get('alias');
$version = $module->get('version');
$installed_modules[] = $alias;
}
$module_version .= implode(',', $installed_modules);
$url .= $module_version;
# Installed modules end
$versions['core'] = static::getLatestVersion($url, $info['akaunting']);
// Then modules
foreach ($modules as $module) {
if (is_string($module)) {
$module = module($module);
}
if (!$module instanceof \Akaunting\Module\Module) {
if (! $module instanceof \Akaunting\Module\Module) {
continue;
}
@ -107,15 +123,27 @@ class Versions
public static function getLatestVersion($url, $latest)
{
if (!$data = static::getResponseData('GET', $url, ['timeout' => 10])) {
return $latest;
$version = new \stdClass();
$version->can_update = true;
$version->latest = $latest;
$version->errors = false;
$version->message = '';
if (! $body = static::getResponseBody('GET', $url, ['timeout' => 10])) {
return $version;
}
if (!is_object($data)) {
return $latest;
if (! is_object($body)) {
return $version;
}
return $data->latest;
$version->can_update = $body->success;
$version->latest = $body->data->latest;
$version->errors = $body->errors;
$version->message = $body->message;
return $version;
}
public static function getUpdates()
@ -123,7 +151,7 @@ class Versions
// Get data from cache
$updates = Cache::get('updates');
if (!empty($updates)) {
if (! empty($updates)) {
return $updates;
}
@ -146,7 +174,7 @@ class Versions
$installed_version = $module->get('version');
}
if (version_compare($installed_version, $latest_version, '>=')) {
if (version_compare($installed_version, $latest_version->latest, '>=')) {
continue;
}