X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/04197e393ac69934df85df76e5ba2c4361f5e1d4..refs/pull/3693/head:/app/Http/Controllers/MaintenanceController.php diff --git a/app/Http/Controllers/MaintenanceController.php b/app/Http/Controllers/MaintenanceController.php index 0d6265f90..8bfefb7ac 100644 --- a/app/Http/Controllers/MaintenanceController.php +++ b/app/Http/Controllers/MaintenanceController.php @@ -2,8 +2,10 @@ namespace BookStack\Http\Controllers; -use BookStack\Entities\Managers\TrashCan; +use BookStack\Actions\ActivityType; +use BookStack\Entities\Tools\TrashCan; use BookStack\Notifications\TestEmail; +use BookStack\References\ReferenceStore; use BookStack\Uploads\ImageService; use Illuminate\Http\Request; @@ -24,7 +26,7 @@ class MaintenanceController extends Controller $recycleStats = (new TrashCan())->getTrashedCounts(); return view('settings.maintenance', [ - 'version' => $version, + 'version' => $version, 'recycleStats' => $recycleStats, ]); } @@ -35,6 +37,7 @@ class MaintenanceController extends Controller public function cleanupImages(Request $request, ImageService $imageService) { $this->checkPermission('settings-manage'); + $this->logActivity(ActivityType::MAINTENANCE_ACTION_RUN, 'cleanup-images'); $checkRevisions = !($request->get('ignore_revisions', 'false') === 'true'); $dryRun = !($request->has('confirm')); @@ -43,6 +46,7 @@ class MaintenanceController extends Controller $deleteCount = count($imagesToDelete); if ($deleteCount === 0) { $this->showWarningNotification(trans('settings.maint_image_cleanup_nothing_found')); + return redirect('/settings/maintenance')->withInput(); } @@ -61,15 +65,34 @@ class MaintenanceController extends Controller public function sendTestEmail() { $this->checkPermission('settings-manage'); + $this->logActivity(ActivityType::MAINTENANCE_ACTION_RUN, 'send-test-email'); try { - user()->notify(new TestEmail()); + user()->notifyNow(new TestEmail()); $this->showSuccessNotification(trans('settings.maint_send_test_email_success', ['address' => user()->email])); } catch (\Exception $exception) { $errorMessage = trans('errors.maintenance_test_email_failure') . "\n" . $exception->getMessage(); $this->showErrorNotification($errorMessage); } - return redirect('/settings/maintenance#image-cleanup')->withInput(); + return redirect('/settings/maintenance#image-cleanup'); + } + + /** + * Action to regenerate the reference index in the system. + */ + public function regenerateReferences(ReferenceStore $referenceStore) + { + $this->checkPermission('settings-manage'); + $this->logActivity(ActivityType::MAINTENANCE_ACTION_RUN, 'regenerate-references'); + + try { + $referenceStore->updateForAllPages(); + $this->showSuccessNotification(trans('settings.maint_regen_references_success')); + } catch (\Exception $exception) { + $this->showErrorNotification($exception->getMessage()); + } + + return redirect('/settings/maintenance#regenerate-references'); } }