]> BookStack Code Mirror - bookstack/blob - app/Sorting/SortSet.php
Sorting: Added sort set form manager UI JS
[bookstack] / app / Sorting / SortSet.php
1 <?php
2
3 namespace BookStack\Sorting;
4
5 use Carbon\Carbon;
6 use Illuminate\Database\Eloquent\Model;
7
8 /**
9  * @property int $id
10  * @property string $name
11  * @property string $sequence
12  * @property Carbon $created_at
13  * @property Carbon $updated_at
14  */
15 class SortSet extends Model
16 {
17     /**
18      * @return SortSetOperation[]
19      */
20     public function getOperations(): array
21     {
22         $strOptions = explode(',', $this->sequence);
23         $options = array_map(fn ($val) => SortSetOperation::tryFrom($val), $strOptions);
24         return array_filter($options);
25     }
26
27     /**
28      * @param SortSetOperation[] $options
29      */
30     public function setOperations(array $options): void
31     {
32         $values = array_map(fn (SortSetOperation $opt) => $opt->value, $options);
33         $this->sequence = implode(',', $values);
34     }
35 }