]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Controllers/UserController.php
Added 'Sort Book' action to chapters
[bookstack] / app / Http / Controllers / UserController.php
index a22b0394ae37716631d9ffc6d90a4c03b64b0cbd..9a2f2c86797a150bf040c86d4f4ab735bb077eac 100644 (file)
@@ -48,8 +48,8 @@ class UserController extends Controller
         $users->appends($listDetails);
 
         return view('users.index', [
-            'users' => $users,
-            'listDetails' => $listDetails
+            'users'       => $users,
+            'listDetails' => $listDetails,
         ]);
     }
 
@@ -289,6 +289,27 @@ class UserController extends Controller
         return response('', 204);
     }
 
+    public function updateCodeLanguageFavourite(Request $request)
+    {
+        $validated = $this->validate($request, [
+            'language' => ['required', 'string', 'max:20'],
+            'active' => ['required', 'bool'],
+        ]);
+
+        $currentFavoritesStr = setting()->getForCurrentUser('code-language-favourites', '');
+        $currentFavorites = array_filter(explode(',', $currentFavoritesStr));
+
+        $isFav = in_array($validated['language'], $currentFavorites);
+        if (!$isFav && $validated['active']) {
+            $currentFavorites[] = $validated['language'];
+        } else if ($isFav && !$validated['active']) {
+            $index = array_search($validated['language'], $currentFavorites);
+            array_splice($currentFavorites, $index, 1);
+        }
+
+        setting()->putUser(user(), 'code-language-favourites', implode(',', $currentFavorites));
+    }
+
     /**
      * Changed the stored preference for a list sort order.
      */