diff --git a/app/Http/Controllers/Crud/CampaignController.php b/app/Http/Controllers/Crud/CampaignController.php index 12e9e1d630..fceb396601 100644 --- a/app/Http/Controllers/Crud/CampaignController.php +++ b/app/Http/Controllers/Crud/CampaignController.php @@ -39,7 +39,7 @@ public function create(Campaign $campaign) { $this->authorize('create', $campaign); - return view($this->view . '.create', ['start' => false]); + return view($this->view . '.forms.create', ['start' => false]); } public function store(StoreCampaign $request) @@ -47,6 +47,11 @@ public function store(StoreCampaign $request) $campaign = new Campaign(); $this->authorize('create', $campaign); + // For ajax requests, send back that the validation succeeded, so we can really send the form to be saved. + if (request()->ajax()) { + return response()->json(['success' => true]); + } + $first = !auth()->user()->hasCampaigns(); $data = $request->all(); @@ -97,7 +102,7 @@ public function edit(Campaign $campaign) $editingService->edit(); } } - return view($this->view . '.edit', [ + return view($this->view . '.forms.edit', [ 'campaign' => $campaign, 'model' => $campaign, 'start' => false, @@ -109,6 +114,11 @@ public function update(UpdateCampaign $request, Campaign $campaign) { $this->authorize('update', $campaign); + // For ajax requests, send back that the validation succeeded, so we can really send the form to be saved. + if (request()->ajax()) { + return response()->json(['success' => true]); + } + $data = $request->all(); // Missing sidebar config? Because we shouldn't have used the same array... if (!empty($campaign->ui_settings['sidebar'])) { diff --git a/app/Http/Controllers/StartController.php b/app/Http/Controllers/StartController.php index 680eca0e22..17581320c5 100644 --- a/app/Http/Controllers/StartController.php +++ b/app/Http/Controllers/StartController.php @@ -36,7 +36,7 @@ public function index(Request $request) session()->remove('user_registered'); $tracking = 'pa10CJTvrssBEOaOq7oC'; } - return view($this->view . '.create', [ + return view($this->view . '.forms.create', [ 'start' => auth()->user()->campaigns->count() === 0, 'gaTrackingEvent' => $tracking, ]); diff --git a/resources/views/campaigns/create.blade.php b/resources/views/campaigns/forms/create.blade.php similarity index 95% rename from resources/views/campaigns/create.blade.php rename to resources/views/campaigns/forms/create.blade.php index 825d3c006d..c408305ed6 100644 --- a/resources/views/campaigns/create.blade.php +++ b/resources/views/campaigns/forms/create.blade.php @@ -15,6 +15,7 @@ 'data-shortcut' => '1', 'class' => 'entity-form', 'data-unload' => 1, + 'data-maintenance' => 1, ]) !!} @endsection diff --git a/resources/views/campaigns/edit.blade.php b/resources/views/campaigns/forms/edit.blade.php similarity index 97% rename from resources/views/campaigns/edit.blade.php rename to resources/views/campaigns/forms/edit.blade.php index c0b051bb52..878a305b75 100644 --- a/resources/views/campaigns/edit.blade.php +++ b/resources/views/campaigns/forms/edit.blade.php @@ -17,6 +17,7 @@ 'data-shortcut' => '1', 'class' => 'entity-form', 'data-unload' => 1, + 'data-maintenance' => 1, ]) !!} @endsection