* Add custom repository type for updates * Direct to self update module * Formatting
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin;
|
||||
use App\Contracts\Controller;
|
||||
use App\Repositories\KvpRepository;
|
||||
use App\Services\CronService;
|
||||
use App\Services\VersionService;
|
||||
use Codedge\Updater\UpdaterManager;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
@@ -16,15 +17,18 @@ class MaintenanceController extends Controller
|
||||
private $cronSvc;
|
||||
private $kvpRepo;
|
||||
private $updateManager;
|
||||
private $versionSvc;
|
||||
|
||||
public function __construct(
|
||||
CronService $cronSvc,
|
||||
KvpRepository $kvpRepo,
|
||||
UpdaterManager $updateManager
|
||||
UpdaterManager $updateManager,
|
||||
VersionService $versionSvc
|
||||
) {
|
||||
$this->cronSvc = $cronSvc;
|
||||
$this->kvpRepo = $kvpRepo;
|
||||
$this->updateManager = $updateManager;
|
||||
$this->versionSvc = $versionSvc;
|
||||
}
|
||||
|
||||
public function index()
|
||||
@@ -32,7 +36,7 @@ class MaintenanceController extends Controller
|
||||
return view('admin.maintenance.index', [
|
||||
'cron_path' => $this->cronSvc->getCronExecString(),
|
||||
'cron_problem_exists' => $this->cronSvc->cronProblemExists(),
|
||||
'new_version' => $this->kvpRepo->get('new_version_available', false),
|
||||
'new_version' => true, //$this->kvpRepo->get('new_version_available', false),
|
||||
'new_version_tag' => $this->kvpRepo->get('latest_version_tag'),
|
||||
]);
|
||||
}
|
||||
@@ -70,6 +74,31 @@ class MaintenanceController extends Controller
|
||||
return redirect(route('admin.maintenance.index'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Force an update check
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function forcecheck(Request $request)
|
||||
{
|
||||
$this->versionSvc->isNewVersionAvailable();
|
||||
|
||||
$new_version_avail = $this->kvpRepo->get('new_version_available', false);
|
||||
$new_version_tag = $this->kvpRepo->get('latest_version_tag');
|
||||
|
||||
Log::info('Force check, available='.$new_version_avail.', tag='.$new_version_tag);
|
||||
|
||||
if (!$new_version_avail) {
|
||||
Flash::success('No new version available');
|
||||
} else {
|
||||
Flash::success('New version available: '.$new_version_tag);
|
||||
}
|
||||
|
||||
return redirect(route('admin.maintenance.index'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the phpVMS install
|
||||
*
|
||||
@@ -79,18 +108,8 @@ class MaintenanceController extends Controller
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$new_version_avail = $this->kvpRepo->get('new_version_available', false);
|
||||
if (!$new_version_avail) {
|
||||
Flash::error('A newer version is not available!');
|
||||
return redirect(route('admin.maintenance.index'));
|
||||
}
|
||||
|
||||
$new_version_tag = $this->kvpRepo->get('latest_version_tag');
|
||||
Log::info('Attempting to update to '.$new_version_tag);
|
||||
|
||||
$this->updateManager->source()->update($new_version_tag);
|
||||
|
||||
Flash::success('phpVMS was updated!');
|
||||
return redirect(route('/update'));
|
||||
return redirect('/update/downloader');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,6 +165,10 @@ Route::group(
|
||||
->name('maintenance.update')
|
||||
->middleware('ability:admin,maintenance');
|
||||
|
||||
Route::match(['post'], 'maintenance/forcecheck', 'MaintenanceController@forcecheck')
|
||||
->name('maintenance.forcecheck')
|
||||
->middleware('ability:admin,maintenance');
|
||||
|
||||
// subfleet
|
||||
Route::get('subfleets/export', 'SubfleetController@export')
|
||||
->name('subfleets.export')
|
||||
|
||||
@@ -13,8 +13,6 @@ use App\Listeners\UserStateListener;
|
||||
use App\Notifications\EventHandler;
|
||||
use Codedge\Updater\Events\UpdateAvailable;
|
||||
use Codedge\Updater\Events\UpdateSucceeded;
|
||||
use Codedge\Updater\Listeners\SendUpdateAvailableNotification;
|
||||
use Codedge\Updater\Listeners\SendUpdateSucceededNotification;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||
@@ -38,13 +36,8 @@ class EventServiceProvider extends ServiceProvider
|
||||
AwardListener::class,
|
||||
],
|
||||
|
||||
UpdateAvailable::class => [
|
||||
SendUpdateAvailableNotification::class,
|
||||
],
|
||||
|
||||
UpdateSucceeded::class => [
|
||||
SendUpdateSucceededNotification::class,
|
||||
],
|
||||
UpdateAvailable::class => [],
|
||||
UpdateSucceeded::class => [],
|
||||
|
||||
];
|
||||
|
||||
|
||||
@@ -96,6 +96,7 @@ class VersionService extends Service
|
||||
foreach ($releases as $release) {
|
||||
if ($release['prerelease'] === true) {
|
||||
if ($include_prerelease) {
|
||||
Log::info('Found latest pre-release of '.$release['tag_name']);
|
||||
return $this->setLatestRelease(
|
||||
$release['tag_name'],
|
||||
$this->getGithubAsset($release)
|
||||
@@ -104,6 +105,7 @@ class VersionService extends Service
|
||||
continue;
|
||||
}
|
||||
|
||||
Log::info('Found latest release of '.$release['tag_name']);
|
||||
return $this->setLatestRelease(
|
||||
$release['tag_name'],
|
||||
$this->getGithubAsset($release)
|
||||
|
||||
@@ -44,4 +44,21 @@ class HttpClient
|
||||
|
||||
return $body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Download a file to a given path
|
||||
*
|
||||
* @param $uri
|
||||
* @param $local_path
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function download($uri, $local_path)
|
||||
{
|
||||
$response = $this->httpClient->request('GET', $uri, [
|
||||
'sink' => $local_path,
|
||||
]);
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user