diff --git a/app/Helpers/Update/UpdateTrait.php b/app/Helpers/Update/UpdateTrait.php index 266db66e68..d4ea839c63 100644 --- a/app/Helpers/Update/UpdateTrait.php +++ b/app/Helpers/Update/UpdateTrait.php @@ -53,8 +53,8 @@ trait UpdateTrait /** * Parses the version check result in a human readable sentence. * - * @param int $versionCheck - * @param string $version + * @param int $versionCheck + * @param array $information * * @return string */ @@ -76,6 +76,16 @@ trait UpdateTrait 'date' => $carbon->formatLocalized($monthAndDayFormat), ] ); + // append warning if beta or alpha. + $isBeta = $information['is_beta'] ?? false; + if (true === $isBeta) { + $return = sprintf('%s %s', $return, trans('firefly.update_version_beta')); + } + + $isAlpha = $information['is_alpha'] ?? false; + if (true === $isAlpha) { + $return = sprintf('%s %s', $return, trans('firefly.update_version_alpha')); + } } if (0 === $versionCheck) { diff --git a/app/Http/Controllers/Admin/UpdateController.php b/app/Http/Controllers/Admin/UpdateController.php index 2006062fbb..ec2a0d7450 100644 --- a/app/Http/Controllers/Admin/UpdateController.php +++ b/app/Http/Controllers/Admin/UpdateController.php @@ -116,6 +116,8 @@ class UpdateController extends Controller $latestRelease = '1.0'; $resultString = ''; $versionCheck = -2; + $channel = app('fireflyconfig')->get('update_channel', 'stable')->data; + try { $latestRelease = $this->getLatestRelease(); } catch (FireflyException $e) { @@ -143,6 +145,11 @@ class UpdateController extends Controller } app('fireflyconfig')->set('last_update_check', time()); - return response()->json(['result' => $resultString]); + return response()->json( + [ + 'result' => $resultString, + 'channel' => $channel, + ] + ); } } diff --git a/app/Services/FireflyIIIOrg/Update/UpdateRequest.php b/app/Services/FireflyIIIOrg/Update/UpdateRequest.php index c3101b985d..75e28e8cd9 100644 --- a/app/Services/FireflyIIIOrg/Update/UpdateRequest.php +++ b/app/Services/FireflyIIIOrg/Update/UpdateRequest.php @@ -42,7 +42,7 @@ class UpdateRequest implements UpdateRequestInterface */ public function getVersion(string $channel): array { - $uri = 'https://version.firefly-iii.org/index.json'; + $uri = config('firefly.update_endpoint'); Log::debug(sprintf('Going to call %s', $uri)); try { $client = new Client(); diff --git a/app/Services/FireflyIIIOrg/Update/UpdateRequestInterface.php b/app/Services/FireflyIIIOrg/Update/UpdateRequestInterface.php index ddd35cd3e9..5f18bc0836 100644 --- a/app/Services/FireflyIIIOrg/Update/UpdateRequestInterface.php +++ b/app/Services/FireflyIIIOrg/Update/UpdateRequestInterface.php @@ -31,7 +31,7 @@ interface UpdateRequestInterface /** * @param string $channel * - * @return string + * @return array * @throws FireflyException */ public function getVersion(string $channel): array; diff --git a/config/firefly.php b/config/firefly.php index f0539ed78a..6584f95eaa 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -145,6 +145,7 @@ return [ 'disable_frame_header' => env('DISABLE_FRAME_HEADER', false), 'login_provider' => envNonEmpty('LOGIN_PROVIDER', 'eloquent'), 'cer_provider' => envNonEmpty('CER_PROVIDER', 'fixer'), + 'update_endpoint' => 'https://version.firefly-iii.org/index.json', 'allowedMimes' => [ /* plain files */ 'text/plain', diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index a8bb68791d..514a747afa 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -225,6 +225,8 @@ return [ 'admin_update_check_now_explain' => 'If you press the button, Firefly III will see if your current version is the latest.', 'check_for_updates_button' => 'Check now!', 'update_new_version_alert' => 'A new version of Firefly III is available. You are running v:your_version, the latest version is v:new_version which was released on :date.', + 'update_version_beta' => 'This version is a BETA version. You may run into issues.', + 'update_version_alpha' => 'This version is a ALPHA version. You may run into issues.', 'update_current_version_alert' => 'You are running v:version, which is the latest available release.', 'update_newer_version_alert' => 'You are running v:your_version, which is newer than the latest release, v:new_version.', 'update_check_error' => 'An error occurred while checking for updates. Please view the log files.',