22
33namespace BookStack \Sorting ;
44
5+ use BookStack \Activity \ActivityType ;
56use BookStack \Http \Controller ;
7+ use BookStack \Http \Request ;
68
79class SortSetController extends Controller
810{
@@ -14,6 +16,73 @@ public function __construct()
1416
1517 public function create ()
1618 {
19+ $ this ->setPageTitle (trans ('settings.sort_set_create ' ));
20+
1721 return view ('settings.sort-sets.create ' );
1822 }
23+
24+ public function store (Request $ request )
25+ {
26+ $ this ->validate ($ request , [
27+ 'name ' => ['required ' , 'string ' , 'min:1 ' , 'max:200 ' ],
28+ 'sequence ' => ['required ' , 'string ' , 'min:1 ' ],
29+ ]);
30+
31+ $ operations = SortSetOperation::fromSequence ($ request ->input ('sequence ' ));
32+ if (count ($ operations ) === 0 ) {
33+ return redirect ()->withInput ()->withErrors (['sequence ' => 'No operations set. ' ]);
34+ }
35+
36+ $ set = new SortSet ();
37+ $ set ->name = $ request ->input ('name ' );
38+ $ set ->setOperations ($ operations );
39+ $ set ->save ();
40+
41+ $ this ->logActivity (ActivityType::SORT_SET_CREATE , $ set );
42+
43+ return redirect ('/settings/sorting ' );
44+ }
45+
46+ public function edit (string $ id )
47+ {
48+ $ set = SortSet::query ()->findOrFail ($ id );
49+
50+ $ this ->setPageTitle (trans ('settings.sort_set_edit ' ));
51+
52+ return view ('settings.sort-sets.edit ' , ['set ' => $ set ]);
53+ }
54+
55+ public function update (string $ id , Request $ request )
56+ {
57+ $ this ->validate ($ request , [
58+ 'name ' => ['required ' , 'string ' , 'min:1 ' , 'max:200 ' ],
59+ 'sequence ' => ['required ' , 'string ' , 'min:1 ' ],
60+ ]);
61+
62+ $ set = SortSet::query ()->findOrFail ($ id );
63+ $ operations = SortSetOperation::fromSequence ($ request ->input ('sequence ' ));
64+ if (count ($ operations ) === 0 ) {
65+ return redirect ()->withInput ()->withErrors (['sequence ' => 'No operations set. ' ]);
66+ }
67+
68+ $ set ->name = $ request ->input ('name ' );
69+ $ set ->setOperations ($ operations );
70+ $ set ->save ();
71+
72+ $ this ->logActivity (ActivityType::SORT_SET_UPDATE , $ set );
73+
74+ return redirect ('/settings/sorting ' );
75+ }
76+
77+ public function destroy (string $ id )
78+ {
79+ $ set = SortSet::query ()->findOrFail ($ id );
80+
81+ // TODO - Check if it's in use
82+
83+ $ set ->delete ();
84+ $ this ->logActivity (ActivityType::SORT_SET_DELETE , $ set );
85+
86+ return redirect ('/settings/sorting ' );
87+ }
1988}
0 commit comments