summaryrefslogtreecommitdiff
path: root/site/app/Http/Controllers/OfferController.php
diff options
context:
space:
mode:
Diffstat (limited to 'site/app/Http/Controllers/OfferController.php')
-rw-r--r--site/app/Http/Controllers/OfferController.php64
1 files changed, 57 insertions, 7 deletions
diff --git a/site/app/Http/Controllers/OfferController.php b/site/app/Http/Controllers/OfferController.php
index 99108cd..563708f 100644
--- a/site/app/Http/Controllers/OfferController.php
+++ b/site/app/Http/Controllers/OfferController.php
@@ -6,6 +6,9 @@ use App\Helpers\CryptoHelper;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
+use Cookie;
+use Illuminate\Support\Facades\Input;
+
class OfferController extends Controller {
/**
* Shows the index page.
@@ -13,14 +16,61 @@ class OfferController extends Controller {
* @return Response
*/
public function showPage(Request $request) {
-
- $view_name = \Request::route()->getName();
- $data = DB::table($view_name . '_view')->orderBy('procent', 'DESC')->limit(100)->simplePaginate(20);
- if ( "misc" == $view_name ) {
- $view_name = "Andere Angebote";
- }
+ /*
+ * Sorting
+ */
+ $sort_by = Input::get("sort");
+ if ( is_null($sort_by) ) {
+ $sort_by = $request->cookie("sort");
+ }
+ switch ($sort_by) {
+ case("price"):
+ $sort_by = "discounted_price";
+ break;
+ case("discounted_price"):
+ $sort_by = "discounted_price";
+ break;
+ case("name"):
+ $sort_by = "name";
+ break;
+ case("shop"):
+ $sort_by = "shop";
+ break;
+ case("procent"):
+ $sort_by = "procent";
+ break;
+ case("time"):
+ $sort_by = "created_at";
+ break;
+ case("created_at"):
+ $sort_by = "created_at";
+ break;
+ default:
+ $sort_by = "created_at";
+ break;
+ }
+ Cookie::queue(Cookie::make('sort', $sort_by, 60*24));
+
+ $order_by = $request->input("order");
+ if ( is_null($order_by) ) {
+ $order_by = $request->cookie("order");
+ }
+ if ( "desc" != $order_by ) {
+ $order_by = "asc";
+ }
+ Cookie::queue(Cookie::make('order', $order_by, 60*24));
+
+ /*
+ * Database query
+ */
+ $view_name = \Request::route()->getName();
+ $data = DB::table($view_name . '_view')->orderBy($sort_by, $order_by)->limit(100)->simplePaginate(20);
- return view('offer', ['data' => $data, 'spirit_type' => $view_name]);
+ if ( "misc" == $view_name ) {
+ $view_name = "Andere Angebote";
+ }
+
+ return view('offer', ['data' => $data, 'spirit_type' => $view_name]);
}
}