* Use database for kvp storage * Read kvpstore * Add web cron ability through API #821 * Style fixes * Fix text
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Contracts\Controller;
|
||||
use App\Repositories\KvpRepository;
|
||||
use App\Services\CronService;
|
||||
use App\Services\VersionService;
|
||||
use App\Support\Utils;
|
||||
use Codedge\Updater\UpdaterManager;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
@@ -34,7 +35,12 @@ class MaintenanceController extends Controller
|
||||
|
||||
public function index()
|
||||
{
|
||||
// Get the cron URL
|
||||
$cron_id = setting('cron.random_id');
|
||||
$cron_url = empty($cron_id) ? 'Not enabled' : url(route('api.maintenance.cron', $cron_id));
|
||||
|
||||
return view('admin.maintenance.index', [
|
||||
'cron_url' => $cron_url,
|
||||
'cron_path' => $this->cronSvc->getCronExecString(),
|
||||
'cron_problem_exists' => $this->cronSvc->cronProblemExists(),
|
||||
'new_version' => $this->kvpRepo->get('new_version_available', false),
|
||||
@@ -117,4 +123,33 @@ class MaintenanceController extends Controller
|
||||
|
||||
return redirect('/update/downloader');
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable the cron, or if it's enabled, change the ID that is used
|
||||
*
|
||||
* @param Request $request
|
||||
*/
|
||||
public function cron_enable(Request $request)
|
||||
{
|
||||
$id = Utils::generateNewId(24);
|
||||
setting_save('cron.random_id', $id);
|
||||
|
||||
Flash::success('Web cron refreshed!');
|
||||
return redirect(route('admin.maintenance.index'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable the web cron
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function cron_disable(Request $request)
|
||||
{
|
||||
setting_save('cron.random_id', '');
|
||||
|
||||
Flash::success('Web cron disabled!');
|
||||
return redirect(route('admin.maintenance.index'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ class SettingsController extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$settings = Setting::orderBy('order', 'asc')->get();
|
||||
$settings = Setting::where('type', '!=', 'hidden')->orderBy('order')->get();
|
||||
$settings = $settings->groupBy('group');
|
||||
|
||||
return view('admin.settings.index', [
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Contracts\Controller;
|
||||
use App\Exceptions\AssetNotFound;
|
||||
use App\Exceptions\Unauthorized;
|
||||
use App\Http\Resources\Flight as FlightResource;
|
||||
use App\Http\Resources\Navdata as NavdataResource;
|
||||
use App\Models\SimBrief;
|
||||
|
||||
35
app/Http/Controllers/Api/MaintenanceController.php
Normal file
35
app/Http/Controllers/Api/MaintenanceController.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Contracts\Controller;
|
||||
use App\Exceptions\CronInvalid;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
class MaintenanceController extends Controller
|
||||
{
|
||||
/**
|
||||
* Run the cron job from the web
|
||||
*
|
||||
* @param Request $request
|
||||
* @param string $id The ID passed in for the cron
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function cron(Request $request, string $id)
|
||||
{
|
||||
$cron_id = setting('cron.random_id');
|
||||
if (empty($cron_id) || $id !== $cron_id) {
|
||||
throw new CronInvalid();
|
||||
}
|
||||
|
||||
$output = '';
|
||||
Artisan::call('schedule:run');
|
||||
$output .= trim(Artisan::output());
|
||||
|
||||
return response([
|
||||
'content' => $output,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user