diff --git a/app/Application.php b/app/Application.php index 2a13f5b42..38b68c721 100644 --- a/app/Application.php +++ b/app/Application.php @@ -151,6 +151,17 @@ public static function getApp($appid) return $app; } + + /** + * @param $appName + * @return mixed|null + * @throws GuzzleException + */ + public static function findApp($appName) + { + return self::where('name', $appName)->first()->appid; + } + /** * @param $appid * @return mixed|null diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php index 07521b313..2ccfa8344 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -207,6 +207,19 @@ public function edit(int $id): View */ public static function storelogic(Request $request, $id = null): Item { + if ($request->input('optimistic')) { + $request->merge(['app' => Application::findApp($request->input('title'))]); + $request->merge((array)json_decode(ItemController::appload($request))); + + # FIXME: I need to fix some param naming here to make it work + $request->merge([ + /* 'pinned' => 1,*/ + /* 'tags' => [0],*/ + 'icon' => $request->input('iconview'), + 'appdescription' => $request->input('description'), + ]); + } + $application = Application::single($request->input('appid')); $validatedData = $request->validate([ 'title' => 'required|max:255', @@ -366,7 +379,7 @@ public function restore(int $id): RedirectResponse * * @throws GuzzleException */ - public function appload(Request $request): ?string + public static function appload(Request $request): ?string { $output = []; $appid = $request->input('app'); diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index ae1893a90..7cf6ab907 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -16,6 +16,7 @@ class VerifyCsrfToken extends Middleware 'order', 'appload', 'test_config', + 'api/*', //'get_stats' ]; }