]> BookStack Code Mirror - bookstack/blobdiff - app/Sorting/SortSetOption.php
Sorting: Started sort set routes and form
[bookstack] / app / Sorting / SortSetOption.php
index 0a78e99c7eb532edd2202114141c44563cb1572b..bb878cf30f961c012b4c9dbedcb71b4eca0f3dbd 100644 (file)
@@ -13,4 +13,32 @@ enum SortSetOption: string
     case UpdateDateDesc = 'updated_date_desc';
     case ChaptersFirst = 'chapters_first';
     case ChaptersLast = 'chapters_last';
+
+    /**
+     * Provide a translated label string for this option.
+     */
+    public function getLabel(): string
+    {
+        $key = $this->value;
+        $label = '';
+        if (str_ends_with($key, '_asc')) {
+            $key = substr($key, 0, -4);
+            $label = trans('settings.sort_set_op_asc');
+        } elseif (str_ends_with($key, '_desc')) {
+            $key = substr($key, 0, -5);
+            $label = trans('settings.sort_set_op_desc');
+        }
+
+        $label = trans('settings.sort_set_op_' . $key) . ' ' . $label;
+        return trim($label);
+    }
+
+    /**
+     * @return SortSetOption[]
+     */
+    public static function allExcluding(array $options): array
+    {
+        $all = SortSetOption::cases();
+        return array_diff($all, $options);
+    }
 }