diff --git a/.env b/.env index 9146b9c..bf23ea0 100644 --- a/.env +++ b/.env @@ -4,8 +4,8 @@ APP_KEY=base64:w0K6RjfleoAOpuICea14JnaZ28PNc6EMzIFMQZ3MVtU= APP_DEBUG=true APP_URL=https://partner.gruene-seele.test APP_DOMAIN=partner.gruene-seele.test -APP_PROMO_URL=https://www.testemich.jetzt/ -APP_PROMO_DOMAIN=testemich.jetzt/ +APP_PROMO_URL=https://testemich.test +APP_PROMO_DOMAIN=testemich.test APP_CHECKOUT_MAIL=register@adametz.media APP_CHECKOUT_TEST_MAIL=register@adametz.media diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index ed1a5e0..706609f 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -4,7 +4,7 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Providers\RouteServiceProvider; -use App\Models\User; +use App\User; use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; diff --git a/app/Http/Controllers/MembershipController.php b/app/Http/Controllers/MembershipController.php index 93662a5..8678b10 100755 --- a/app/Http/Controllers/MembershipController.php +++ b/app/Http/Controllers/MembershipController.php @@ -45,8 +45,8 @@ class MembershipController extends Controller $userHistoryDeleteMembership = UserHistory::whereUserId($user->id)->whereAction('delete_membership')->whereStatus(50)->get()->last(); $data = [ 'user' => $user, - 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), - 'upgrade' => Product::where('active', true)->where('show_at', '=', 4)->where('identifier', 'upgrade')->get(), + 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(), + 'upgrade' => Product::where('active', true)->whereJsonContains('show_on', '5')->where('identifier', 'upgrade')->get(), 'diff_months' => $diff_months, 'userHistoryPaymentOrder' => $userHistoryPaymentOrder, 'userHistoryUpgradeOrder' => $userHistoryUpgradeOrder, @@ -93,7 +93,7 @@ class MembershipController extends Controller $user->abo_options = true; $user->save(); }*/ - if($product && $product->active && $product->show_at >= 3){ + if($product && $product->active){ $image = ""; if($product->images->count()){ $image = $product->images->first()->slug; @@ -146,7 +146,7 @@ class MembershipController extends Controller \Session()->flash('alert-success', "keine Änderung vorgenommen."); return back(); } - if($product && $product->active && $product->show_at >= 3){ + if($product && $product->active){ $user->payment_order_id = $product->id; $user->save(); UserHistory::create(['user_id' => $user->id, 'action'=>$action, 'status'=>10, 'product_id'=>$product->id]); diff --git a/app/Http/Controllers/PaymentMethodController.php b/app/Http/Controllers/PaymentMethodController.php index afe71fd..a8ff314 100755 --- a/app/Http/Controllers/PaymentMethodController.php +++ b/app/Http/Controllers/PaymentMethodController.php @@ -35,7 +35,7 @@ class PaymentMethodController extends Controller 'name' => $data['name'], 'short' => $data['short'], 'pos' => $data['pos'], - 'show_at' => $data['show_at'], + 'show_on' => isset($data['show_on']) ? $data['show_on'] : null, 'max_price' => $data['max_price'], 'default' => isset($data['default']) ? true : false, 'active' => isset($data['active']) ? true : false, @@ -46,7 +46,7 @@ class PaymentMethodController extends Controller $model->short = $data['short']; $model->pos = $data['pos']; $model->max_price = $data['max_price']; - $model->show_at = $data['show_at']; + $model->show_on = isset($data['show_on']) ? $data['show_on'] : null; $model->default = isset($data['default']) ? true : false; $model->active = isset($data['active']) ? true : false; $model->save(); diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php index 6979237..e2881cd 100755 --- a/app/Http/Controllers/ProductController.php +++ b/app/Http/Controllers/ProductController.php @@ -20,7 +20,6 @@ class ProductController extends Controller { $this->middleware('admin'); $this->productRepo = $productRepo; - } public function index() @@ -104,17 +103,11 @@ class ProductController extends Controller \Session()->flash('alert-save', '1'); return redirect(route('admin_product_show')); - - } public function copy($id){ $model = Product::findOrFail($id); - $product = $this->productRepo->copy($model); - - - \Session()->flash('alert-success', 'Eintrag kopiert'); return redirect(route('admin_product_show')); } @@ -140,9 +133,7 @@ class ProductController extends Controller } - // Upload FILE ----------------------------------------------------------------------------------------------------------------------- - public function imageUpload(){ $product_id = Request::get('product_id'); @@ -191,7 +182,7 @@ class ProductController extends Controller return redirect(route('admin_product_edit', [$product->id])); } - catch (Exception $e) { + catch (\Exception $e) { \Session()->flash('alert-danger', "Fehler".$e); return redirect(route('admin_product_edit', [$product->id])); } diff --git a/app/Http/Controllers/SalesController.php b/app/Http/Controllers/SalesController.php index d92a6f1..bfd9dda 100755 --- a/app/Http/Controllers/SalesController.php +++ b/app/Http/Controllers/SalesController.php @@ -308,14 +308,14 @@ class SalesController extends Controller $shopping_order = ShoppingOrder::findOrFail($data['id']); $shopping_payment = ShoppingPayment::findOrFail($data['payment_id']); - if($shopping_order->shopping_order_margin->from_payment_credit > 0){ + if($shopping_order->shopping_order_margin && $shopping_order->shopping_order_margin->from_payment_credit > 0){ $last_UserPayCredit = UserPayCredit::where('shopping_order_id', $shopping_order->id)->whereIn('status', [2, 4])->orderBy('id', 'DESC')->first(); //Status Keine Zahlung, Guthaben zurückführen, wenn status 2 / deduction from payment - if($data['txaction'] === 'non' && $last_UserPayCredit->status === 2){ + if($last_UserPayCredit && $data['txaction'] === 'non' && $last_UserPayCredit->status === 2){ Payment::handelUserPayCredits($shopping_order, 'return'); } //Status Zahlung, voher gab es eine Storno, Guthaben abziehen wenn status 4 / return from order - if($last_UserPayCredit->status === 4 && ($data['txaction'] === 'open' || $data['txaction'] === 'paid')){ + if($last_UserPayCredit && $last_UserPayCredit->status === 4 && ($data['txaction'] === 'open' || $data['txaction'] === 'paid')){ Payment::handelUserPayCredits($shopping_order, 'deduction'); } diff --git a/app/Http/Controllers/User/CheckoutController.php b/app/Http/Controllers/User/CheckoutController.php index 399f6e6..3999290 100755 --- a/app/Http/Controllers/User/CheckoutController.php +++ b/app/Http/Controllers/User/CheckoutController.php @@ -105,6 +105,8 @@ class CheckoutController extends Controller $shopping_user = ShoppingUser::findOrFail($this->getPayments('shopping_user_id')); $shopping_user->billing_state = Shop::getCountryShippingCountryId($shopping_user->billing_country_id); $shopping_user->shipping_state = Shop::getCountryShippingCountryId($shopping_user->shipping_country_id); + $shopping_user->same_as_billing = $shopping_user->same_as_billing ? false : true; //reinvert + } if($shopping_user->same_as_billing === NULL){ $shopping_user->same_as_billing = false; @@ -552,7 +554,7 @@ class CheckoutController extends Controller $shopping_order->txaction = 'open'; $shopping_order->save(); - + if($shopping_payment){ Payment::handelUserPayCredits($shopping_order, 'deduction'); diff --git a/app/Http/Controllers/User/HomepartyController.php b/app/Http/Controllers/User/HomepartyController.php index bd84eb1..09f645c 100755 --- a/app/Http/Controllers/User/HomepartyController.php +++ b/app/Http/Controllers/User/HomepartyController.php @@ -438,19 +438,16 @@ class HomepartyController extends Controller abort(404); } - private function getHomparty($id){ + /*private function getHomparty($id){ $homeparty = Homeparty::findOrFail($id); if($homeparty->auth_user_id !== \Auth::user()->id){ abort(404); } return $homeparty; - } + }*/ public function datatable(){ - $query = Product::select('products.*')->where('active', true)->where(function ($q) { - $q->where('show_at', '=', 0) - ->orWhere('show_at', '=', 1); - }); + $query = Product::select('products.*')->where('active', true)->whereJsonContains('show_on', '3'); return \DataTables::eloquent($query) diff --git a/app/Http/Controllers/User/OrderController.php b/app/Http/Controllers/User/OrderController.php index e244fbe..d06772e 100755 --- a/app/Http/Controllers/User/OrderController.php +++ b/app/Http/Controllers/User/OrderController.php @@ -278,33 +278,17 @@ class OrderController extends Controller public function datatable(){ - $show_at = 1; $not_show_pids = ProductBuy::getNotShowProductIDs(Auth::user()->id); if(Request::get('shipping_is_for') === 'me'){ - $query = Product::with('categories')->select('products.*')->where('active', true)->where(function ($q) { - $q->where('show_at', '=', 1) - ->orWhere('show_at', '=', 2) - ->orWhere('show_at', '=', 6); - - }); - + $query = Product::select('products.*')->where('active', true)->whereJsonContains('show_on', '2'); }else{ - $query = Product::with('categories')->select('products.*')->where('active', true)->where(function ($q) { - $q->where('show_at', '=', 0) - ->orWhere('show_at', '=', 1); - }); + $query = Product::select('products.*')->where('active', true)->whereJsonContains('show_on', '1'); } foreach($not_show_pids as $not_show_pid){ $query->where('id', '!=', $not_show_pid); } - - //Kunden und Vertriebspartner - //->orWhere('show_at', '=', 2); // Nur Vertriebspartner - //->orderBy('pos', 'DESC') - //->orderBy('id', 'DESC'); - return \DataTables::eloquent($query) ->addColumn('product', function (Product $product) { @@ -540,10 +524,10 @@ class OrderController extends Controller private function getCompProducts($for){ if($for === 'me' && \App\Models\Setting::getContentBySlug('order_partner_is_comp_me')){ - return Product::whereActive(true)->where('show_at', '=', 1)->where('shipping_addon', true)->orderBy('pos', 'DESC')->get(); + return Product::whereActive(true)->whereJsonContains('show_on', ['2'])->where('shipping_addon', true)->orderBy('pos', 'DESC')->get(); } if($for === 'ot' && \App\Models\Setting::getContentBySlug('order_partner_is_comp_ot')){ - return Product::whereActive(true)->where('show_at', '=', 1)->where('shipping_addon', true)->orderBy('pos', 'DESC')->get(); + return Product::whereActive(true)->whereJsonContains('show_on', ['1'])->where('shipping_addon', true)->orderBy('pos', 'DESC')->get(); } return null; } diff --git a/app/Http/Controllers/User/PromotionController.php b/app/Http/Controllers/User/PromotionController.php index 6bc64ea..5f23467 100644 --- a/app/Http/Controllers/User/PromotionController.php +++ b/app/Http/Controllers/User/PromotionController.php @@ -34,11 +34,11 @@ class PromotionController extends Controller public function detail($id){ - $user_promotion = PromotionUser::findOrFail($id); if($user_promotion->user_id != Auth::user()->id){ abort(404); } + $user_promotion->about_you = !$user_promotion->about_you ? $user_promotion->user->account->about_you : $user_promotion->about_you; $data = [ 'checkPaymentCredit' => $user_promotion->checkPaymentCredit(), 'user_promotion_cart' => PromotionUser::preCalculateCart($user_promotion, 'user_promotion'), @@ -59,7 +59,7 @@ class PromotionController extends Controller if(isset($data['action']) && $data['action'] === 'save-user-promotion'){ $rules = array( 'name' => 'required', - 'user_promotion_url' => ' required|alpha_dash|profanity|unique:promotion_users,url,'.\Auth::user()->id.'|min:4|max:20', + 'user_promotion_url' => ' required|alpha_dash|profanity|unique:promotion_users,url,'.\Auth::user()->id.',user_id|min:4|max:20', ); $validator = Validator::make(Request::all(), $rules); if ($validator->fails()) { @@ -96,7 +96,7 @@ class PromotionController extends Controller if(isset($data['action']) && $data['action'] === 'validate_url'){ $rules = array( //'user_promotion_url' => ' required|alpha_dash|profanity|unique:user_shops,name|min:4|max:20|full_word_check', - 'user_promotion_url' => ' required|alpha_dash|profanity|unique:promotion_users,url,'.\Auth::user()->id.'|min:4|max:20', + 'user_promotion_url' => ' required|alpha_dash|profanity|unique:promotion_users,url,'.\Auth::user()->id.',user_id|min:4|max:20', ); /*Validator::extend('full_word_check', function ($attribute, $value, $parameters, $validator) { if(in_array($value, config('profanity.full_word_check'))){ @@ -119,7 +119,7 @@ class PromotionController extends Controller return Response::json(array( 'success' => true, - 'preview_user_promotion_url' => config('app.promo_url').$name, + 'preview_user_promotion_url' => config('app.promo_url')."/".$name, )); } if(isset($data['action']) && $data['action'] === 'updateCart'){ @@ -130,7 +130,7 @@ class PromotionController extends Controller if(isset($data['products'])){ $fill['user_promotion_cart'] = PromotionUser::preCalculateCart($data['products'], 'products'); - $fill['checkPaymentCredit'] = PromotionUser::preCheckPaymentCredit($fill['user_promotion_cart']); + $fill['checkPaymentCredit'] = PromotionUser::preCheckPaymentCredit($fill['user_promotion_cart'], Auth::user()); } /*if(isset($data['user_promotion_id']) && $user_promotion = PromotionUser::find($data['user_promotion_id'])){ diff --git a/app/Http/Controllers/UserDataController.php b/app/Http/Controllers/UserDataController.php index 9d02ff7..7202124 100755 --- a/app/Http/Controllers/UserDataController.php +++ b/app/Http/Controllers/UserDataController.php @@ -21,7 +21,6 @@ class UserDataController extends Controller $this->userRepo = $userRepo; } - public function userEdit(){ $user = Auth::user(); @@ -34,7 +33,6 @@ class UserDataController extends Controller return view('user.edit', $data); } - public function userEditStore(){ $user = Auth::user(); @@ -86,10 +84,7 @@ class UserDataController extends Controller } - /** - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ + public function userDataStore(){ $user = User::findOrFail(Auth::user()->id); @@ -150,10 +145,7 @@ class UserDataController extends Controller return redirect('/home'); } } - - /** - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector - */ + public function userDataAcceptedForm(){ $user = Auth::user(); @@ -168,10 +160,6 @@ class UserDataController extends Controller return redirect('/home'); } - - /** - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector - */ public function userDataFree(){ $user = Auth::user(); $user->active = 1; @@ -181,9 +169,6 @@ class UserDataController extends Controller } - /** - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector - */ public function userDataFreeForm(){ $user = Auth::user(); @@ -220,7 +205,76 @@ class UserDataController extends Controller } return redirect('/home'); + } + public function userProfile(){ + $user = Auth::user(); + $data = [ + 'user' => $user, + ]; + return view('user.profile', $data); + } + + public function userProfileStore(){ + $user = Auth::user(); + $data = Request::all(); + if($account = $user->account){ + $account->about_you = $data['about_you'] ? $data['about_you'] : null; + $account->save(); + } + \Session()->flash('alert-save', true); + return redirect(route('user_profile')); + } + + // Upload FILE ----------------------------------------------------------------------------------------------------------------------- + public function imageUpload(){ + + $user = Auth::user(); + try { + $image = \App\Services\Slim::getImages('avatar')[0]; + + if ( isset($image['output']['data']) ) + { + // Original file name + $name = $image['output']['name']; + // Base64 of the image + $data = $image['output']['data']; + $file_ex = array( 'image/jpeg' => 'jpg', 'image/png' => 'png'); + + if (!isset($file_ex[$image['output']['type']])) { + \Session()->flash('alert-danger', 'File is not jpg or png!'); + return redirect()->back(); + } + + $ext = $file_ex[$image['output']['type']]; + + $data = \Storage::disk('user')->put( + $user->id.'/avatar.'.$ext, + $data + ); + + \Session()->flash('alert-success', "Datei hochgeladen"); + return redirect()->back(); + } + \Session()->flash('alert-danger', "Datei leer"); + return redirect()->back(); + } + catch (\Exception $e) { + \Session()->flash('alert-danger', "Fehler".$e); + return redirect()->back(); + } + } + + public function imageDelete($delete){ + $user = Auth::user(); + if($delete === 'avatar'){ + if($user->hasProfileImage()){ + \Storage::disk('user')->delete(str_replace('_', '/', $user->getProfileImage())); + \Session()->flash('alert-success', "Datei gelöscht"); + return redirect()->back(); + } + } + } } \ No newline at end of file diff --git a/app/Http/Controllers/Web/PromotionController.php b/app/Http/Controllers/Web/PromotionController.php new file mode 100644 index 0000000..1a7da12 --- /dev/null +++ b/app/Http/Controllers/Web/PromotionController.php @@ -0,0 +1,99 @@ +whereNull('user_deleted_at')->first(); + if(!$PromotionUser){ + abort(402); + } + if($PromotionUser->checkOutOfStock()){ + $data = [ + 'promotion_user' => $PromotionUser, + ]; + return view('web.promotion.outofstock', $data); + } + + $data = [ + 'promotion_user' => $PromotionUser, + 'shop_products' => Product::where('active', true)->whereJsonContains('show_on', ['1', '2', '3'])->orderBy('pos', 'ASC')->get(), + 'user_payment_methods' => PaymentMethod::getDefaultAsArray()->toArray(), + ]; + return view('web.promotion.index', $data); + } + + public function goto($load, $id){ + $PromotionUser = PromotionUser::findOrFail($id); + + $data = [ + 'promotion_user' => $PromotionUser, + ]; + + if($load === 'thanksreminder'){ + return view('web.promotion.thanksreminder', $data); + } + if($load === 'thanksorder'){ + return view('web.promotion.thanksorder', $data); + } + if($load === 'notactive'){ + return view('web.promotion.notactive', $data); + } + + } + + public function store($id){ + + $PromotionUser = PromotionUser::findOrFail($id); + $data = Request::all(); + + if(!isset($data['action'])){ + abort(402); + } + if($data['action'] === 'submit-reminder-service'){ + return redirect(route('web_promotion_goto', ['thanksreminder', $PromotionUser->id])); + + } + + if($data['action'] === 'submit-promotion-order'){ + return redirect(route('web_promotion_goto', ['thanksorder', $PromotionUser->id])); + } + + dd($PromotionUser); + } + public function load(){ + $data = Request::all(); + $ret = ""; + $status = false; + if(Request::ajax()){ + if($data['action'] === 'web-show-product'){ + $product = Product::find($data['id']); //current user form order + $ret = view("web.promotion.show_product", compact('product', 'data'))->render(); + } + return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]); + } + } +} \ No newline at end of file diff --git a/app/Http/Controllers/WizardController.php b/app/Http/Controllers/WizardController.php index 2bbcefe..b89d1d5 100755 --- a/app/Http/Controllers/WizardController.php +++ b/app/Http/Controllers/WizardController.php @@ -60,8 +60,8 @@ class WizardController extends Controller $data = [ 'user' => Auth::user(), 'step' => $step, - 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), - 'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(), + 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(), 'userHistoryWizardPayment' => $userHistoryWizardPayment, ]; @@ -96,8 +96,9 @@ class WizardController extends Controller 'user' => Auth::user(), 'step' => $step, 'user_levels' => UserLevel::where('active', true)->get(), - //'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), - //'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + //'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(), + //'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(), + ]; if($step == 5){ return view('user.wizard.register_release', $data); @@ -125,8 +126,8 @@ class WizardController extends Controller $data = [ 'user' => Auth::user(), 'step' => 0, - 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), - 'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(), + 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(), 'userHistoryWizardPayment' => $userHistoryWizardPayment, ]; @@ -161,8 +162,8 @@ class WizardController extends Controller 'user' => Auth::user(), 'step' => $step, 'user_levels' => UserLevel::where('active', true)->get(), - //'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), - //'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + //'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(), + //'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(),, ]; $user->wizard = 0; $user->save(); @@ -342,8 +343,8 @@ class WizardController extends Controller $data = [ 'user' => Auth::user(), 'step' => $step, - 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), - 'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(), + 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(), ]; $user->wizard = 10; $user->save(); @@ -381,8 +382,8 @@ class WizardController extends Controller $data = [ 'user' => Auth::user(), 'step' => $step, - 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), - 'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + 'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(), + 'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(), ]; return view('user.wizard.create', $data)->withErrors($validator); } @@ -457,7 +458,7 @@ class WizardController extends Controller $user->abo_options = true; $user->save(); }*/ - if($product && $product->active && $product->show_at == 3){ + if($product && $product->active){ //set membership product $image = ""; if($product->images->count()){ diff --git a/app/Models/Category.php b/app/Models/Category.php index 8f8415d..ab3c7a2 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -45,6 +45,7 @@ use Cviebrock\EloquentSluggable\Sluggable; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereTransHeadline($value) * @property-read \App\Models\IqImage|null $iq_image * @property-read int|null $product_categories_count + * @method static \Illuminate\Database\Eloquent\Builder|Category withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) */ class Category extends Model { diff --git a/app/Models/IqImage.php b/app/Models/IqImage.php index 3291452..ab1f097 100644 --- a/app/Models/IqImage.php +++ b/app/Models/IqImage.php @@ -38,6 +38,7 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage query() * @property int|null $pos * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqImage wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|IqImage withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) */ class IqImage extends Model { diff --git a/app/Models/PaymentMethod.php b/app/Models/PaymentMethod.php index 3807797..d2ce62c 100644 --- a/app/Models/PaymentMethod.php +++ b/app/Models/PaymentMethod.php @@ -38,6 +38,8 @@ use Illuminate\Database\Eloquent\Model; * @mixin \Eloquent * @property string|null $max_price * @method static \Illuminate\Database\Eloquent\Builder|PaymentMethod whereMaxPrice($value) + * @property array $show_on + * @method static \Illuminate\Database\Eloquent\Builder|PaymentMethod whereShowOn($value) */ class PaymentMethod extends Model { @@ -49,12 +51,14 @@ class PaymentMethod extends Model 'pos' => 'int', 'active' => 'bool', 'default' => 'bool', + 'show_on' => 'array', ]; protected $fillable = [ 'name', 'short', 'show_at', + 'show_on', 'max_price', 'pos', 'default', @@ -71,10 +75,30 @@ class PaymentMethod extends Model 9 => 'überall', ]; + public static $showONs = [ + 1 => 'Kunden Bestellungen', + 2 => 'Vertriebspartner Bestellungen', + 3 => 'Microsite', + 4 => 'Registrierung Vertriebspartner', + 5 => 'Mitgliedschaft Vertriebspartner', + //6 => 'Onboarding Berater', + 10 => 'überall', + ]; + public function getShowAtType(){ return isset(self::$showATs[$this->show_at]) ? self::$showATs[$this->show_at] : '-'; } + public function getShowOnTypes(){ + $ret = []; + if($this->show_on){ + foreach($this->show_on as $show){ + $ret[] = isset(self::$showONs[$show]) ? self::$showONs[$show] : '-'; + } + } + return $ret; + } + public static function getDefaultAsArray($short=false){ return PaymentMethod::where('active', true)->where('default', true)->pluck('id'); } @@ -100,7 +124,7 @@ class PaymentMethod extends Model if($payment_method && $payment_method->active){ if(in_array($payment_method->id, $user_payment_methods)){ - if($payment_method->max_price > 0){ + if($total > 0 && $payment_method->max_price > 0){ if($payment_method->max_price >= $total){ return true; } diff --git a/app/Models/Product.php b/app/Models/Product.php index 0c38c87..37620aa 100644 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -124,6 +124,11 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property-read int|null $product_buys_count * @method static \Illuminate\Database\Eloquent\Builder|Product whereMaxBuy($value) * @method static \Illuminate\Database\Eloquent\Builder|Product whereMaxBuyNum($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) + * @property string|null $short_copy + * @property array|null $show_on + * @method static \Illuminate\Database\Eloquent\Builder|Product whereShortCopy($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereShowOn($value) */ class Product extends Model { @@ -144,6 +149,7 @@ class Product extends Model 'trans_description' => 'array', 'trans_usage' => 'array', 'trans_ingredients' => 'array', + 'show_on' => 'array', 'action' => 'array', 'wp_number' => 'int', 'single_commission' => 'bool', @@ -163,6 +169,7 @@ class Product extends Model 'name', 'title', 'copy', + 'short_copy', 'price', 'price_ek', 'tax', @@ -182,6 +189,7 @@ class Product extends Model 'amount', 'active', 'show_at', + 'show_on', 'single_commission', 'amount_commission', 'value_commission', @@ -201,8 +209,6 @@ class Product extends Model 'upgrade' => 'Produktupgrade zur Produkt ID', 'upgrade_member' => 'Vertriebspartnerupgrade zur Karriere ID', //'proportional_voucher' => 'Anteiliger Gutschein Vertriebspartner', - - ]; public $unitTypes = [ 0 => '', @@ -224,6 +230,17 @@ class Product extends Model ]; + public $showONs = [ + 1 => 'Kunden Bestellungen', + 2 => 'Vertriebspartner Bestellungen', + 3 => 'Microsite', + 4 => 'Registrierung Vertriebspartner', + 5 => 'Mitgliedschaft Vertriebspartner', + //6 => 'Onboarding Berater', + 10 => 'zur internen Berechnung', + ]; + + public $actions = [ 0 => 'payment_for_account', // 1 => 'payment_for_shop', @@ -419,6 +436,14 @@ class Product extends Model return isset($this->showATs[$this->show_at]) ? $this->showATs[$this->show_at] : '-'; } + public function getShowOnTypes(){ + $ret = []; + foreach($this->show_on as $show){ + $ret[] = isset($this->showONs[$show]) ? $this->showONs[$show] : '-'; + } + return $ret; + } + public function setPosAttribute($value){ $this->attributes['pos'] = is_numeric($value) ? $value : null; diff --git a/app/Models/ProductBuy.php b/app/Models/ProductBuy.php index 9cc3a50..9715dd0 100644 --- a/app/Models/ProductBuy.php +++ b/app/Models/ProductBuy.php @@ -11,17 +11,27 @@ use Illuminate\Database\Eloquent\Model; /** * Class ProductBuy - * + * * @property int $id * @property int $auth_user_id * @property int $product_id * @property int $num * @property Carbon|null $created_at * @property Carbon|null $updated_at - * * @property Product $product - * * @package App\Models + * @property-read \App\User $auth_user + * @property-read \App\User $user + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy query() + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereAuthUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereNum($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereUpdatedAt($value) + * @mixin \Eloquent */ class ProductBuy extends Model { diff --git a/app/Models/ProductImage.php b/app/Models/ProductImage.php index 25f7db2..4ef5bc3 100644 --- a/app/Models/ProductImage.php +++ b/app/Models/ProductImage.php @@ -38,6 +38,7 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage query() * @property int|null $pos * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductImage withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) */ class ProductImage extends Model { diff --git a/app/Models/PromotionAdmin.php b/app/Models/PromotionAdmin.php index eba953b..2cf8f0f 100644 --- a/app/Models/PromotionAdmin.php +++ b/app/Models/PromotionAdmin.php @@ -45,6 +45,14 @@ use Illuminate\Database\Eloquent\Collection; * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereTo($value) * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereUpdatedAt($value) * @mixin \Eloquent + * @property int|null $type + * @property bool $shop + * @property-read Collection|\App\Models\PromotionAdminProduct[] $promotion_admin_products + * @property-read int|null $promotion_admin_products_count + * @property-read Collection|\App\Models\PromotionAdminProduct[] $promotion_admin_products_active + * @property-read int|null $promotion_admin_products_active_count + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereShop($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereType($value) */ class PromotionAdmin extends Model { @@ -167,15 +175,22 @@ class PromotionAdmin extends Model public static function getActiveAdminPromotionsAsArray(){ - $query = PromotionAdmin::where('active', true) - ->where(function ($query) { + $PromotionAdmins = PromotionAdmin::where('active', true)->get(); + $ret = []; + foreach($PromotionAdmins as $PromotionAdmin){ + $temp = $PromotionAdmin->name; + $temp .= $PromotionAdmin->from ? " | vom: ".$PromotionAdmin->from : ''; + $temp .= $PromotionAdmin->to ? " | bis: ".$PromotionAdmin->to : ''; + $ret[$PromotionAdmin->id] = $temp; + } + /*->where(function ($query) { $query->where('from', '<', Carbon::now()) ->orWhereNull('from'); }) ->where(function ($query) { $query->where('to', '>=', Carbon::now()) ->orWhereNull('to'); - }); - return $query->pluck('name', 'id')->toArray(); + });*/ + return $ret; } } diff --git a/app/Models/PromotionUser.php b/app/Models/PromotionUser.php index 7657fc5..13e24f0 100644 --- a/app/Models/PromotionUser.php +++ b/app/Models/PromotionUser.php @@ -45,6 +45,21 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUsedBudgetTotal($value) * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUserDeletedAt($value) * @mixin \Eloquent + * @property int $user_id + * @property string|null $user_address + * @property-read Collection|\App\Models\PromotionUserProduct[] $promotion_user_products + * @property-read int|null $promotion_user_products_count + * @property-read Collection|\App\Models\PromotionUserProduct[] $promotion_user_products_active + * @property-read int|null $promotion_user_products_active_count + * @property-read \App\User $user + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUserAddress($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUserId($value) + * @property string|null $about_you + * @property string|null $internal_name + * @property string|null $internal_description + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereAboutYou($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereInternalDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereInternalName($value) */ class PromotionUser extends Model { @@ -68,8 +83,12 @@ class PromotionUser extends Model 'user_id', 'name', 'description', + 'about_you', + 'internal_name', + 'internal_description', 'url', 'pick_up', + 'user_address', 'used_budget_total', 'sell_items_total', 'active', @@ -97,7 +116,6 @@ class PromotionUser extends Model { return $this->hasMany(PromotionUserProduct::class); } - public function promotion_user_products_active() { return $this->hasMany(PromotionUserProduct::class)->where('active', 1); @@ -106,7 +124,7 @@ class PromotionUser extends Model public function getUrlPreview() { - return $this->url ? config('app.promo_url').$this->url : ""; + return $this->url ? config('app.promo_url')."/".$this->url : ""; } public function canDelete(){ @@ -164,7 +182,7 @@ class PromotionUser extends Model public function checkPaymentCredit() { if($this->promotion_user_products_active->count() > 0 && $this->getCountOpenItems() > 0){ - $payment_credit = \Auth::user()->payment_credit; + $payment_credit = $this->user->payment_credit; if($payment_credit <= 0){ return "empty"; } @@ -179,9 +197,23 @@ class PromotionUser extends Model } return false; } - public static function preCheckPaymentCredit($values){ + + public function checkOutOfStock(){ + if(!$this->active){ + return true; + } + if($this->getCountOpenItems() < 1){ + return true; + } + if($this->checkPaymentCredit() !== 'okay'){ + return true; + } + + return false; + } + public static function preCheckPaymentCredit($values, $user){ if($values['count_items'] > 0 && $values['sum_items'] > 0){ - $payment_credit = \Auth::user()->payment_credit; + $payment_credit = $user->payment_credit; if($payment_credit <= 0){ return "empty"; } diff --git a/app/Models/PromotionUserProduct.php b/app/Models/PromotionUserProduct.php index 2ca44b3..5f3d82c 100644 --- a/app/Models/PromotionUserProduct.php +++ b/app/Models/PromotionUserProduct.php @@ -89,4 +89,11 @@ class PromotionUserProduct extends Model { return $this->belongsTo(PromotionUser::class); } + + public function isShow(){ + if($this->active && $this->product && $this->open_items > 0){ + return true; + } + return false; + } } diff --git a/app/Models/Setting.php b/app/Models/Setting.php index b7daf73..8d1a934 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -46,6 +46,7 @@ use Illuminate\Database\Eloquent\Model; * @mixin \Eloquent * @property int|null $int * @method static \Illuminate\Database\Eloquent\Builder|Setting whereInt($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) */ class Setting extends Model { diff --git a/app/Models/SySetting.php b/app/Models/SySetting.php index 852f046..114709a 100644 --- a/app/Models/SySetting.php +++ b/app/Models/SySetting.php @@ -37,6 +37,7 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereStatus($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereUpdatedAt($value) * @mixin \Eloquent + * @method static \Illuminate\Database\Eloquent\Builder|SySetting withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) */ class SySetting extends Model { diff --git a/app/Models/UserAccount.php b/app/Models/UserAccount.php index 9a7df46..b318c61 100644 --- a/app/Models/UserAccount.php +++ b/app/Models/UserAccount.php @@ -119,6 +119,8 @@ use Carbon\Carbon; * @property array|null $notice * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereAcceptedContract($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereNotice($value) + * @property string|null $about_you + * @method static \Illuminate\Database\Eloquent\Builder|UserAccount whereAboutYou($value) */ class UserAccount extends Model { @@ -127,7 +129,7 @@ class UserAccount extends Model 'm_account', 'm_salutation', 'm_first_name', 'm_last_name', 'm_notes', 'company', 'salutation', 'first_name', 'last_name', 'address', 'address_2', 'zipcode', 'city', 'country_id', 'pre_phone_id', 'phone', 'pre_mobil_id', 'mobil', 'tax_number', 'tax_identification_number', 'taxable_sales', 'same_as_billing', 'shipping_salutation', 'shipping_company', 'shipping_firstname', 'shipping_lastname', 'shipping_address', 'shipping_address_2', 'shipping_zipcode', 'shipping_city', 'shipping_country_id', 'shipping_pre_phone_id', 'shipping_phone', - 'birthday', 'website', 'facebook', 'facebook_fanpage', 'instagram', 'notice', 'payment_data' + 'birthday', 'about_you', 'website', 'facebook', 'facebook_fanpage', 'instagram', 'notice', 'payment_data' ]; protected $casts = [ diff --git a/app/Models/UserCredit.php b/app/Models/UserCredit.php index cbf65fd..992fcf3 100644 --- a/app/Models/UserCredit.php +++ b/app/Models/UserCredit.php @@ -49,6 +49,8 @@ use Illuminate\Database\Eloquent\Model; * @property string|null $date * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereCreditNumber($value) * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereDate($value) + * @property object|null $user_credits + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereUserCredits($value) */ class UserCredit extends Model { diff --git a/app/Models/UserCreditMargin.php b/app/Models/UserCreditMargin.php index c56ab12..1ce5bdf 100644 --- a/app/Models/UserCreditMargin.php +++ b/app/Models/UserCreditMargin.php @@ -34,6 +34,8 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereUserId($value) * @mixin \Eloquent + * @property int|null $user_credit_id + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereUserCreditId($value) */ class UserCreditMargin extends Model { diff --git a/app/Repositories/ProductRepository.php b/app/Repositories/ProductRepository.php index d08de76..c0a1b91 100644 --- a/app/Repositories/ProductRepository.php +++ b/app/Repositories/ProductRepository.php @@ -31,7 +31,7 @@ class ProductRepository extends BaseRepository { $data['amount_commission'] = isset($data['amount_commission']) ? 1 : 0; $data['shipping_addon'] = isset($data['shipping_addon']) ? 1 : 0; $data['max_buy'] = isset($data['max_buy']) ? 1 : 0; - + $data['show_on'] = isset($data['show_on']) ? $data['show_on'] : null; if($data['id'] === "new"){ $this->model = Product::create($data); diff --git a/app/Repositories/UserPromotionRepository.php b/app/Repositories/UserPromotionRepository.php index 3c66545..4506db8 100644 --- a/app/Repositories/UserPromotionRepository.php +++ b/app/Repositories/UserPromotionRepository.php @@ -67,9 +67,11 @@ class UserPromotionRepository extends BaseRepository { if(isset($data['promotion_admin_id'])){ $PromotionAdmin = PromotionAdmin::findOrFail($data['promotion_admin_id']); + $this->model = PromotionUser::create([ 'promotion_admin_id' => $PromotionAdmin->id, 'user_id' => Auth::user()->id, + 'user_address' => Auth::user()->getFullAddress() ]); return $this->model; } diff --git a/app/Services/Payment.php b/app/Services/Payment.php index 58e8521..7364cb6 100644 --- a/app/Services/Payment.php +++ b/app/Services/Payment.php @@ -213,6 +213,9 @@ class Payment //when stone, put it back SalesController public static function handelUserPayCredits(ShoppingOrder $shopping_order, $do){ //is payment credit, reduce Sae + if(!$shopping_order->shopping_order_margin){ + return; + } if($do === 'deduction'){ if($shopping_order->shopping_order_margin->from_payment_credit > 0){ $credit = $shopping_order->shopping_order_margin->from_payment_credit * -1; diff --git a/app/Services/Util.php b/app/Services/Util.php index 0ee3bb9..da149de 100644 --- a/app/Services/Util.php +++ b/app/Services/Util.php @@ -222,6 +222,18 @@ class Util } return url($uri); } + + public static function substr_ellipsis($str, $len=100, $clean, $ell="..."){ + if($clean){ + $str = strip_tags($str); + } + if(strlen($str) > $len){ + $lastPos = ($len - 3) - strlen($str); + $str = substr($str, 0, strrpos($str, ' ', $lastPos)) ." ".$ell; + } + return $str; + + } public static function sanitize($string, $force_lowercase = true, $anal = false, $substr = false, $anCon = false) { $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "=", "+", "[", "{", "]", diff --git a/app/User.php b/app/User.php index 8fb108c..1e68345 100644 --- a/app/User.php +++ b/app/User.php @@ -101,6 +101,10 @@ use Util; * @method static \Illuminate\Database\Eloquent\Builder|User wherePaymentCredit($value) * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\UserPayCredit[] $user_pay_credits * @property-read int|null $user_pay_credits_count + * @property-read \Illuminate\Database\Eloquent\Collection|\Laravel\Passport\Client[] $clients + * @property-read int|null $clients_count + * @property-read \Illuminate\Database\Eloquent\Collection|\Laravel\Passport\Token[] $tokens + * @property-read int|null $tokens_count */ class User extends Authenticatable { @@ -135,6 +139,9 @@ class User extends Authenticatable 'payment_methods' => 'array' ]; + private $userImage = false; + private $userImageLink = false; + public function account(){ return $this->belongsTo('App\Models\UserAccount', 'account_id'); } @@ -194,6 +201,25 @@ class User extends Authenticatable return $ret; } + public function getFullAddress($email=true){ + $ret = ""; + if($this->account){ + $ret .= $this->account->first_name." ".$this->account->last_name."\n"; + $ret .= $this->account->address."\n"; + $ret .= $this->account->address_2 ? $this->account->address_2."\n" : ""; + $ret .= $this->account->zipcode." ".$this->account->city."\n"; + $ret .= $email ? $this->email."\n" : ""; + + $pre = $this->account->pre_phone_id != "" ? $this->account->pre_phone->phone." " : ""; + $ret .= $this->account->phone ? $pre.$this->account->phone."\n" : ""; + + $pre = $this->account->pre_mobil_id != "" ? $this->account->pre_mobil->phone." " : ""; + $ret .= $this->account->mobil ? $pre.$this->account->mobil."\n" : ""; + } + + return $ret; + } + /** * @return bool */ @@ -414,6 +440,27 @@ class User extends Authenticatable return null; } + public function hasProfileImage(){ + + if($this->userImage){ + return $this->userImage; + } + if(\Storage::disk('user')->has($this->id.'/avatar.jpg')){ + $this->userImage = $this->id.'/avatar.jpg'; + } + if(\Storage::disk('user')->has($this->id.'/avatar.png')){ + $this->userImage = $this->id.'/avatar.jpg'; + } + return $this->userImage; + } + + public function getProfileImage(){ + if($this->hasProfileImage()){ + return str_replace('/', '_', $this->userImage); + } + return null; + } + /** * Send the password reset notification. * diff --git a/app/helpers.php b/app/helpers.php index b1dc23e..e579539 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -83,3 +83,11 @@ if (! function_exists('formatPlural')) { } +if (! function_exists('substr_ellipsis')) { + function substr_ellipsis($str, $len=100, $clean, $ell="...") + { + return Util::substr_ellipsis($str, $len, $clean, $ell); + } +} + + diff --git a/config/app.php b/config/app.php index f1a6c9f..c2412c1 100644 --- a/config/app.php +++ b/config/app.php @@ -55,11 +55,10 @@ return [ 'url' => env('APP_URL', 'https://partner.gruene-seele.bio'), 'domain' => env('APP_DOMAIN', 'partner.gruene-seele.bio'), + 'promo_url' => env('APP_PROMO_URL', 'https://www.testemich.jetzt'), + 'promo_domain' => env('APP_PROMO_DOMAIN', 'www.testemich.jetzt'), - 'promo_url' => env('APP_PROMO_URL', 'https://www.testemich.jetzt/'), - 'promo_domain' => env('APP_PROMO_DOMAIN', 'testemich.jetzt/'), - 'checkout_mail' => env('APP_CHECKOUT_MAIL', 'kevin.adametz@me.com'), 'checkout_test_mail' => env('APP_CHECKOUT_TEST_MAIL', 'kevin.adametz@me.com'), 'info_mail' => env('APP_INFO_MAIL', 'kevin.adametz@me.com'), diff --git a/database/migrations/2018_09_29_170559_create_user_accounts_table.php b/database/migrations/2018_09_29_170559_create_user_accounts_table.php index 8feadf5..cf76e35 100644 --- a/database/migrations/2018_09_29_170559_create_user_accounts_table.php +++ b/database/migrations/2018_09_29_170559_create_user_accounts_table.php @@ -65,6 +65,8 @@ class CreateUserAccountsTable extends Migration $table->string('facebook_fanpage')->nullable(); $table->string('instagram')->nullable(); + $table->text('about_you')->nullable(); + $table->text('payment_data')->nullable(); $table->timestamp('data_protection')->nullable(); diff --git a/database/migrations/2018_10_21_164001_create_products_table.php b/database/migrations/2018_10_21_164001_create_products_table.php index a4f201d..306f7a3 100644 --- a/database/migrations/2018_10_21_164001_create_products_table.php +++ b/database/migrations/2018_10_21_164001_create_products_table.php @@ -25,6 +25,8 @@ class CreateProductsTable extends Migration $table->text('copy')->nullable(); $table->mediumText('trans_copy')->nullable(); + $table->text('short_copy')->nullable(); + $table->decimal('price', 8, 2)->nullable(); $table->decimal('price_ek', 8, 2)->nullable(); $table->decimal('tax', 5, 2)->nullable(); @@ -61,6 +63,8 @@ class CreateProductsTable extends Migration $table->tinyInteger('show_at')->unsigned()->nullable()->default(0); + $table->string('show_on')->nullable(); + $table->tinyInteger('amount_commission')->unsigned()->nullable()->default(0); $table->boolean('single_commission')->default(false); diff --git a/database/migrations/2020_07_25_131854_create_payment_methods_table.php b/database/migrations/2020_07_25_131854_create_payment_methods_table.php index 57a2a27..d1da147 100644 --- a/database/migrations/2020_07_25_131854_create_payment_methods_table.php +++ b/database/migrations/2020_07_25_131854_create_payment_methods_table.php @@ -18,6 +18,7 @@ class CreatePaymentMethodsTable extends Migration $table->string('name')->index(); $table->string('short', 10); $table->unsignedTinyInteger('show_at')->nullable()->default(0); + $table->string('show_on')->nullable(); $table->unsignedTinyInteger('pos')->nullable()->default(0); $table->decimal('max_price', 8, 2)->nullable(); diff --git a/database/migrations/2021_10_11_135231_create_promotion_users_table.php b/database/migrations/2021_10_11_135231_create_promotion_users_table.php index 6e6eeb4..13e6079 100644 --- a/database/migrations/2021_10_11_135231_create_promotion_users_table.php +++ b/database/migrations/2021_10_11_135231_create_promotion_users_table.php @@ -21,9 +21,15 @@ class CreatePromotionUsersTable extends Migration $table->string('name', 255); $table->text('description')->nullable(); + $table->text('about_you')->nullable(); + + $table->string('internal_name', 255); + $table->text('internal_description')->nullable(); + $table->string('url', 255)->nullable(); $table->boolean('pick_up')->default(true); + $table->text('user_address')->nullable(); $table->decimal('used_budget_total', 13, 2)->nullable(); $table->unsignedSmallInteger('sell_items_total')->nullable(); diff --git a/public/css/application.css b/public/css/application.css index 1746c66..adc3295 100644 --- a/public/css/application.css +++ b/public/css/application.css @@ -85,4 +85,8 @@ a[aria-expanded='true'] > .fa-caret-expand:before { .table-striped tbody tr:nth-of-type(odd) { background-color: rgba(38, 64, 95, 0.04); -} \ No newline at end of file +} + +.switcher-label { + cursor: pointer; + } \ No newline at end of file diff --git a/public/css/shop.css b/public/css/shop.css new file mode 100644 index 0000000..ce8ea36 --- /dev/null +++ b/public/css/shop.css @@ -0,0 +1,371 @@ + + +html { + font-family: Eina03, Helvetica Neue, helvetica, arial, sans-serif; + line-height: 1.6em; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust:100% +} + + +body.custom-background { + background-color: #f4f1ef; + color: rgb(119, 119, 119); +} + +.text-body { + color: rgb(119, 119, 119); +} + +a { + color: rgb(119, 119, 119); + text-decoration: underline; + outline: 0; +} +a:hover, .text-body[href]:hover { + color: #776f5f; + text-decoration: none; +} + +a.btn { + text-decoration: none; + +} +/*Header*/ + +@media (min-width: 992px) { + .box-min-width { + min-width: 255px; + } +} + + +.landing-navbar { + padding-bottom: 25px; + border-bottom: 1px solid #c6c2bf; +} +.contact-phone-text { + display: block; +} +.contact-phone-title { + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + color: rgb(163, 165, 167); + font-family: Rufina; +} +.contact-phone-link { + font-size: 16px; + font-weight: 700; + line-height: 30px; +} +.contact-phone-icon { + color: rgb(119, 111, 95); + font-size: 33px; + height: 33px; + line-height: 33px; + float: left; + width: 38px; + padding-right: 5px; +} + +a.contact-phone-link { + color: #3a3d46; +} +.contact-day-email { + font-size: 12px +} +.contact-day-email a { + color: rgb(119, 119, 119); + +} +.img-brand { + width: 190px; +} +.navbar-nav { font-size: 0.85em;} +.nav-link { padding: 0.225rem 0.625rem; } + +hr { + border-top: 1px solid #c6c2bf; + +} +hr.light { + border-top: 1px solid #dbd6d3; + +} +/**/ +h1, h2, h3, h4, .typo-heading { + font-family: "Rufina",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; + font-weight: 400; + color: rgb(64, 65, 66); +} +p { + font-size: 16px; +} + +h4.product-title { + height: 2.9rem; + overflow: hidden; + margin-bottom: .5rem; +} + +.product-description { + height: 4rem; + overflow: hidden; + margin-bottom: .5rem; +} +.product-description-small { + overflow: hidden; + margin-bottom: .5rem; +} +.product-item-price{ + font-size: 1.2rem; + font-weight: bold; + color: rgb(64, 65, 66); +} +.badge-cart { + background: #659a87 !important; + border-color: #659a87 !important; + color: #fff !important; +} + +.switcher-holder { + background-color: #46564d; + padding: .6rem 1.4rem .8rem; + font-size: 1rem; + line-height: 2; + display: inline-block; + cursor: pointer; + border-radius: 0.25rem; +} +.switcher-holder:hover { + background-color: rgb(114, 104, 86); +} +.switcher-success.switcher .switcher-input:checked ~ .switcher-indicator { + background: #659a87; + color: #fff; +} +.switcher .switcher-indicator { + cursor: pointer; + +} +.switcher-holder .switcher-label { + color:#fff; + cursor: pointer; +} + +.swiper { + width: 100%; + height: 100%; +} + +.swiper-slide { + text-align: center; +} +.swiper-button-next, .swiper-button-prev { + color: rgb(119, 111, 95); + outline: 0; +} +.swiper-button-next:hover, .swiper-button-prev:hover { + color: rgb(58, 61, 70); +} +.swiper-pagination-bullet { + outline: 0; +} +.swiper-pagination-bullet:hover { + background-color: rgb(119, 111, 95); + outline: 0; + opacity: 1; +} +.swiper-pagination-bullet-active { + background-color: #46564d; + outline: 0; +} + +.btn-primary { + padding: .6rem 1.4rem .8rem; + border-color: transparent; + background: #46564d; + color: #fff; +} + +.btn-primary:hover { + border-color: transparent; + background: rgb(114, 104, 86); + color: #fff; +} + +.btn-primary:focus, +.btn-primary.focus { + box-shadow: 0 0 0 2px rgba(141, 130, 109, 0.8); +} + + +.dropdown-item { + color: #46564d; +} + +.dropdown-item:hover, +.dropdown-item:focus { + color: #46564d; +} + +.dropdown-item.active, +.dropdown-item:active { + background-color: #46564d; +} + +label { + color: rgb(58, 61, 70); +} +label .required { + color: rgb(196, 59, 59); +} + +.form-control:focus { + border-color: #46564d; +} +.checkout-order { + transition: box-shadow 0.4s ease; + position: relative; + background-color: #fafafa; + padding: 30px 30px 40px; +} + +.checkout-order:before { + position: absolute; + top: -10px; + left: 0; + content: ""; + display: block; + height: 10px; + width: 100%; + background-color: transparent; + background-size: 20px 20px; + background-position: 0 10px, 40px 40px; + background-image: radial-gradient(closest-side, transparent 9px, #fafafa 100%); +} +.switcher-label { + cursor: pointer; +} + +table.table-payment td { + padding: 1rem 0; + border-top: none; + border-bottom: 1px solid #c6c2bf; + +} + + +.yard-items-head { + border-bottom: 1px solid #c6c2bf; + padding-bottom: 8px; + margin-bottom: 8px; +} + +.yard-item { + position: relative; + padding-top: 8px; + padding-bottom: 8px; +} + +.yard-item a.shop-item-hl { + font-size: 1.1em; + font-weight: bold; +} + +.yard-item .options { + margin-top: 4px; +} + +.yard-item a.auto-delete-product { + font-size: 0.7em; + font-weight: bold; + text-transform: uppercase; +} + +.yard-item .quantity { + position: relative; +} + +.quantity-select { + text-align: right; +} + +.quantity-select select.form-control:not([size]):not([multiple]) { + width: auto; + min-width: 5em; + display: inline-block; +} + +.yard-item .price-total { + margin-top: 6px; + white-space: nowrap; +} + +.yard-item .font-semi-bold { + font-weight: 500; +} + +.yard-item .font-semi-bold .small { + font-size: 1rem; +} + +.yard-item .font-bold { + font-weight: bold; +} + +.price-single { + white-space: nowrap; +} + +.price-total { + font-weight: 600; + font-size: 0.95rem; + white-space: nowrap; +} +.quantity-select { + text-align: right; +} +.quantity-select input.form-control { + width: auto; + min-width: 4em; + display: inline-block; +} +.no-border-top{ + border-top: none !important; + padding-top: 0.125rem !important; +} + +.form-control.error { + border-color: #d9534f; +} +.dropdown-toggle.bs-placeholder.error{ + border-color: #d9534f; +} + +.switcher label.error { + font-size: 85%; + width: 100%; + margin-top: 0.25rem; + color: #d9534f; +} + +.switcher .switcher-input.error { + outline:0; +} +.switcher .switcher-input.error + .switcher-indicator{ + box-shadow: 0 0 0 1px #d9534f; + +} +.switcher-success.switcher .switcher-input:focus ~ .switcher-indicator { + box-shadow: 0 0 0 1px #d9534f; +} + +.pl-1p { + padding-left: 1px !important; +} + +.spinner { + display: none; +} \ No newline at end of file diff --git a/public/fonts/Eina03-Bold.eot b/public/fonts/Eina03-Bold.eot new file mode 100644 index 0000000..0729172 Binary files /dev/null and b/public/fonts/Eina03-Bold.eot differ diff --git a/public/fonts/Eina03-Bold.otf b/public/fonts/Eina03-Bold.otf new file mode 100644 index 0000000..098fb95 Binary files /dev/null and b/public/fonts/Eina03-Bold.otf differ diff --git a/public/fonts/Eina03-Bold.ttf b/public/fonts/Eina03-Bold.ttf new file mode 100644 index 0000000..180a5e8 Binary files /dev/null and b/public/fonts/Eina03-Bold.ttf differ diff --git a/public/fonts/Eina03-Bold.woff b/public/fonts/Eina03-Bold.woff new file mode 100644 index 0000000..4eb3fbe Binary files /dev/null and b/public/fonts/Eina03-Bold.woff differ diff --git a/public/fonts/Eina03-Regular.eot b/public/fonts/Eina03-Regular.eot new file mode 100644 index 0000000..30b8885 Binary files /dev/null and b/public/fonts/Eina03-Regular.eot differ diff --git a/public/fonts/Eina03-Regular.otf b/public/fonts/Eina03-Regular.otf new file mode 100644 index 0000000..8fb7b7f Binary files /dev/null and b/public/fonts/Eina03-Regular.otf differ diff --git a/public/fonts/Eina03-Regular.ttf b/public/fonts/Eina03-Regular.ttf new file mode 100644 index 0000000..6b5647e Binary files /dev/null and b/public/fonts/Eina03-Regular.ttf differ diff --git a/public/fonts/Eina03-Regular.woff b/public/fonts/Eina03-Regular.woff new file mode 100644 index 0000000..253e69d Binary files /dev/null and b/public/fonts/Eina03-Regular.woff differ diff --git a/public/fonts/Eina03-RegularItalic.eot b/public/fonts/Eina03-RegularItalic.eot new file mode 100644 index 0000000..0d0323d Binary files /dev/null and b/public/fonts/Eina03-RegularItalic.eot differ diff --git a/public/fonts/Eina03-RegularItalic.otf b/public/fonts/Eina03-RegularItalic.otf new file mode 100644 index 0000000..629bcb1 Binary files /dev/null and b/public/fonts/Eina03-RegularItalic.otf differ diff --git a/public/fonts/Eina03-RegularItalic.ttf b/public/fonts/Eina03-RegularItalic.ttf new file mode 100644 index 0000000..e9ce585 Binary files /dev/null and b/public/fonts/Eina03-RegularItalic.ttf differ diff --git a/public/fonts/Eina03-RegularItalic.woff b/public/fonts/Eina03-RegularItalic.woff new file mode 100644 index 0000000..ae3ece1 Binary files /dev/null and b/public/fonts/Eina03-RegularItalic.woff differ diff --git a/public/fonts/Eina03-SemiBold.eot b/public/fonts/Eina03-SemiBold.eot new file mode 100644 index 0000000..256a9ce Binary files /dev/null and b/public/fonts/Eina03-SemiBold.eot differ diff --git a/public/fonts/Eina03-SemiBold.otf b/public/fonts/Eina03-SemiBold.otf new file mode 100644 index 0000000..4abc122 Binary files /dev/null and b/public/fonts/Eina03-SemiBold.otf differ diff --git a/public/fonts/Eina03-SemiBold.ttf b/public/fonts/Eina03-SemiBold.ttf new file mode 100644 index 0000000..45adedf Binary files /dev/null and b/public/fonts/Eina03-SemiBold.ttf differ diff --git a/public/fonts/Eina03-SemiBold.woff b/public/fonts/Eina03-SemiBold.woff new file mode 100644 index 0000000..c233c6d Binary files /dev/null and b/public/fonts/Eina03-SemiBold.woff differ diff --git a/public/fonts/FontAwesome.otf b/public/fonts/FontAwesome.otf new file mode 100644 index 0000000..e69de29 diff --git a/public/fonts/eicons.eot b/public/fonts/eicons.eot new file mode 100644 index 0000000..e7029a9 Binary files /dev/null and b/public/fonts/eicons.eot differ diff --git a/public/fonts/eicons.svg b/public/fonts/eicons.svg new file mode 100644 index 0000000..4d15435 --- /dev/null +++ b/public/fonts/eicons.svg @@ -0,0 +1,824 @@ + + + +Copyright (C) 2021 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/eicons.ttf b/public/fonts/eicons.ttf new file mode 100644 index 0000000..505da1c Binary files /dev/null and b/public/fonts/eicons.ttf differ diff --git a/public/fonts/eicons.woff b/public/fonts/eicons.woff new file mode 100644 index 0000000..b03ecab Binary files /dev/null and b/public/fonts/eicons.woff differ diff --git a/public/fonts/eicons.woff2 b/public/fonts/eicons.woff2 new file mode 100644 index 0000000..4f67f6f Binary files /dev/null and b/public/fonts/eicons.woff2 differ diff --git a/public/fonts/eina03.css b/public/fonts/eina03.css new file mode 100644 index 0000000..7091ecc --- /dev/null +++ b/public/fonts/eina03.css @@ -0,0 +1,30 @@ + +@font-face { + font-family: Eina03; + src: url(./Eina03-Bold.ttf) format("ttf"), url(./Eina03-Bold.woff) format("woff"), url(./Eina03-Bold.eot) format("eot"), url(./Eina03-Bold.otf) format("otf"); + font-weight: 700; + font-style:normal + } + + @font-face { + font-family: Eina03; + src: url(./Eina03-SemiBold.ttf) format("ttf"), url(./Eina03-SemiBold.woff) format("woff"), url(./Eina03-SemiBold.eot) format("eot"), url(./Eina03-SemiBold.otf) format("otf"); + font-weight: 600; + font-style:normal + } + + @font-face { + font-family: Eina03; + src: url(./Eina03-Regular.ttf) format("ttf"), url(./Eina03-Regular.woff) format("woff"), url(./Eina03-Regular.eot) format("eot"), url(./Eina03-Regular.otf) format("otf"); + font-weight: 400; + font-style:normal + } + + @font-face { + font-family: Eina03; + src: url(./Eina03-RegularItalic.ttf) format("ttf"), url(./Eina03-RegularItalic.woff) format("woff"), url(./Eina03-RegularItalic.eot) format("eot"), url(./Eina03-RegularItalic.otf) format("otf"); + font-weight: 400; + font-style:italic + } + + \ No newline at end of file diff --git a/public/fonts/elementor-icons.css b/public/fonts/elementor-icons.css new file mode 100644 index 0000000..19ce268 --- /dev/null +++ b/public/fonts/elementor-icons.css @@ -0,0 +1,1255 @@ +@font-face { + font-family: 'eicons'; + src: url("../fonts/eicons.eot?5.12.0"); + src: url("../fonts/eicons.eot?5.12.0#iefix") format("embedded-opentype"), url("../fonts/eicons.woff2?5.12.0") format("woff2"), url("../fonts/eicons.woff?5.12.0") format("woff"), url("../fonts/eicons.ttf?5.12.0") format("truetype"), url("../fonts/eicons.svg?5.12.0#eicon") format("svg"); + font-weight: normal; + font-style: normal; } + +[class^="eicon"], +[class*=" eicon-"] { + display: inline-block; + font-family: eicons; + font-size: inherit; + font-weight: normal; + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +@keyframes eicon-spin { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(359deg); } } + +.eicon-animation-spin { + animation: eicon-spin 2s infinite linear; } + +.eicon-editor-link:before { + content: '\e800'; } + +.eicon-editor-unlink:before { + content: '\e801'; } + +.eicon-editor-external-link:before { + content: '\e802'; } + +.eicon-editor-close:before { + content: '\e803'; } + +.eicon-editor-list-ol:before { + content: '\e804'; } + +.eicon-editor-list-ul:before { + content: '\e805'; } + +.eicon-editor-bold:before { + content: '\e806'; } + +.eicon-editor-italic:before { + content: '\e807'; } + +.eicon-editor-underline:before { + content: '\e808'; } + +.eicon-editor-paragraph:before { + content: '\e809'; } + +.eicon-editor-h1:before { + content: '\e80a'; } + +.eicon-editor-h2:before { + content: '\e80b'; } + +.eicon-editor-h3:before { + content: '\e80c'; } + +.eicon-editor-h4:before { + content: '\e80d'; } + +.eicon-editor-h5:before { + content: '\e80e'; } + +.eicon-editor-h6:before { + content: '\e80f'; } + +.eicon-editor-quote:before { + content: '\e810'; } + +.eicon-editor-code:before { + content: '\e811'; } + +.eicon-elementor:before { + content: '\e812'; } + +.eicon-elementor-circle:before { + content: '\e813'; } + +.eicon-pojome:before { + content: '\e814'; } + +.eicon-plus:before { + content: '\e815'; } + +.eicon-menu-bar:before { + content: '\e816'; } + +.eicon-apps:before { + content: '\e817'; } + +.eicon-accordion:before { + content: '\e818'; } + +.eicon-alert:before { + content: '\e819'; } + +.eicon-animation-text:before { + content: '\e81a'; } + +.eicon-animation:before { + content: '\e81b'; } + +.eicon-banner:before { + content: '\e81c'; } + +.eicon-blockquote:before { + content: '\e81d'; } + +.eicon-button:before { + content: '\e81e'; } + +.eicon-call-to-action:before { + content: '\e81f'; } + +.eicon-captcha:before { + content: '\e820'; } + +.eicon-carousel:before { + content: '\e821'; } + +.eicon-checkbox:before { + content: '\e822'; } + +.eicon-columns:before { + content: '\e823'; } + +.eicon-countdown:before { + content: '\e824'; } + +.eicon-counter:before { + content: '\e825'; } + +.eicon-date:before { + content: '\e826'; } + +.eicon-divider-shape:before { + content: '\e827'; } + +.eicon-divider:before { + content: '\e828'; } + +.eicon-download-button:before { + content: '\e829'; } + +.eicon-dual-button:before { + content: '\e82a'; } + +.eicon-email-field:before { + content: '\e82b'; } + +.eicon-facebook-comments:before { + content: '\e82c'; } + +.eicon-facebook-like-box:before { + content: '\e82d'; } + +.eicon-form-horizontal:before { + content: '\e82e'; } + +.eicon-form-vertical:before { + content: '\e82f'; } + +.eicon-gallery-grid:before { + content: '\e830'; } + +.eicon-gallery-group:before { + content: '\e831'; } + +.eicon-gallery-justified:before { + content: '\e832'; } + +.eicon-gallery-masonry:before { + content: '\e833'; } + +.eicon-icon-box:before { + content: '\e834'; } + +.eicon-image-before-after:before { + content: '\e835'; } + +.eicon-image-box:before { + content: '\e836'; } + +.eicon-image-hotspot:before { + content: '\e837'; } + +.eicon-image-rollover:before { + content: '\e838'; } + +.eicon-info-box:before { + content: '\e839'; } + +.eicon-inner-section:before { + content: '\e83a'; } + +.eicon-mailchimp:before { + content: '\e83b'; } + +.eicon-menu-card:before { + content: '\e83c'; } + +.eicon-navigation-horizontal:before { + content: '\e83d'; } + +.eicon-nav-menu:before { + content: '\e83e'; } + +.eicon-navigation-vertical:before { + content: '\e83f'; } + +.eicon-number-field:before { + content: '\e840'; } + +.eicon-parallax:before { + content: '\e841'; } + +.eicon-php7:before { + content: '\e842'; } + +.eicon-post-list:before { + content: '\e843'; } + +.eicon-post-slider:before { + content: '\e844'; } + +.eicon-post:before { + content: '\e845'; } + +.eicon-posts-carousel:before { + content: '\e846'; } + +.eicon-posts-grid:before { + content: '\e847'; } + +.eicon-posts-group:before { + content: '\e848'; } + +.eicon-posts-justified:before { + content: '\e849'; } + +.eicon-posts-masonry:before { + content: '\e84a'; } + +.eicon-posts-ticker:before { + content: '\e84b'; } + +.eicon-price-list:before { + content: '\e84c'; } + +.eicon-price-table:before { + content: '\e84d'; } + +.eicon-radio:before { + content: '\e84e'; } + +.eicon-rtl:before { + content: '\e84f'; } + +.eicon-scroll:before { + content: '\e850'; } + +.eicon-search:before { + content: '\e851'; } + +.eicon-select:before { + content: '\e852'; } + +.eicon-share:before { + content: '\e853'; } + +.eicon-sidebar:before { + content: '\e854'; } + +.eicon-skill-bar:before { + content: '\e855'; } + +.eicon-slider-3d:before { + content: '\e856'; } + +.eicon-slider-album:before { + content: '\e857'; } + +.eicon-slider-device:before { + content: '\e858'; } + +.eicon-slider-full-screen:before { + content: '\e859'; } + +.eicon-slider-push:before { + content: '\e85a'; } + +.eicon-slider-vertical:before { + content: '\e85b'; } + +.eicon-slider-video:before { + content: '\e85c'; } + +.eicon-slides:before { + content: '\e85d'; } + +.eicon-social-icons:before { + content: '\e85e'; } + +.eicon-spacer:before { + content: '\e85f'; } + +.eicon-table:before { + content: '\e860'; } + +.eicon-tabs:before { + content: '\e861'; } + +.eicon-tel-field:before { + content: '\e862'; } + +.eicon-text-area:before { + content: '\e863'; } + +.eicon-text-field:before { + content: '\e864'; } + +.eicon-thumbnails-down:before { + content: '\e865'; } + +.eicon-thumbnails-half:before { + content: '\e866'; } + +.eicon-thumbnails-right:before { + content: '\e867'; } + +.eicon-time-line:before { + content: '\e868'; } + +.eicon-toggle:before { + content: '\e869'; } + +.eicon-url:before { + content: '\e86a'; } + +.eicon-t-letter:before { + content: '\e86b'; } + +.eicon-wordpress:before { + content: '\e86c'; } + +.eicon-text:before { + content: '\e86d'; } + +.eicon-anchor:before { + content: '\e86e'; } + +.eicon-bullet-list:before { + content: '\e86f'; } + +.eicon-code:before { + content: '\e870'; } + +.eicon-favorite:before { + content: '\e871'; } + +.eicon-google-maps:before { + content: '\e872'; } + +.eicon-image:before { + content: '\e873'; } + +.eicon-photo-library:before { + content: '\e874'; } + +.eicon-woocommerce:before { + content: '\e875'; } + +.eicon-youtube:before { + content: '\e876'; } + +.eicon-flip-box:before { + content: '\e877'; } + +.eicon-settings:before { + content: '\e878'; } + +.eicon-headphones:before { + content: '\e879'; } + +.eicon-testimonial:before { + content: '\e87a'; } + +.eicon-counter-circle:before { + content: '\e87b'; } + +.eicon-person:before { + content: '\e87c'; } + +.eicon-chevron-right:before { + content: '\e87d'; } + +.eicon-chevron-left:before { + content: '\e87e'; } + +.eicon-close:before { + content: '\e87f'; } + +.eicon-file-download:before { + content: '\e880'; } + +.eicon-save:before { + content: '\e881'; } + +.eicon-zoom-in:before { + content: '\e882'; } + +.eicon-shortcode:before { + content: '\e883'; } + +.eicon-nerd:before { + content: '\e884'; } + +.eicon-device-desktop:before { + content: '\e885'; } + +.eicon-device-tablet:before { + content: '\e886'; } + +.eicon-device-mobile:before { + content: '\e887'; } + +.eicon-document-file:before { + content: '\e888'; } + +.eicon-folder-o:before { + content: '\e889'; } + +.eicon-hypster:before { + content: '\e88a'; } + +.eicon-h-align-left:before { + content: '\e88b'; } + +.eicon-h-align-right:before { + content: '\e88c'; } + +.eicon-h-align-center:before { + content: '\e88d'; } + +.eicon-h-align-stretch:before { + content: '\e88e'; } + +.eicon-v-align-top:before { + content: '\e88f'; } + +.eicon-v-align-bottom:before { + content: '\e890'; } + +.eicon-v-align-middle:before { + content: '\e891'; } + +.eicon-v-align-stretch:before { + content: '\e892'; } + +.eicon-pro-icon:before { + content: '\e893'; } + +.eicon-mail:before { + content: '\e894'; } + +.eicon-lock-user:before { + content: '\e895'; } + +.eicon-testimonial-carousel:before { + content: '\e896'; } + +.eicon-media-carousel:before { + content: '\e897'; } + +.eicon-section:before { + content: '\e898'; } + +.eicon-column:before { + content: '\e899'; } + +.eicon-edit:before { + content: '\e89a'; } + +.eicon-clone:before { + content: '\e89b'; } + +.eicon-trash:before { + content: '\e89c'; } + +.eicon-play:before { + content: '\e89d'; } + +.eicon-angle-right:before { + content: '\e89e'; } + +.eicon-angle-left:before { + content: '\e89f'; } + +.eicon-animated-headline:before { + content: '\e8a0'; } + +.eicon-menu-toggle:before { + content: '\e8a1'; } + +.eicon-fb-embed:before { + content: '\e8a2'; } + +.eicon-fb-feed:before { + content: '\e8a3'; } + +.eicon-twitter-embed:before { + content: '\e8a4'; } + +.eicon-twitter-feed:before { + content: '\e8a5'; } + +.eicon-sync:before { + content: '\e8a6'; } + +.eicon-import-export:before { + content: '\e8a7'; } + +.eicon-check-circle:before { + content: '\e8a8'; } + +.eicon-library-save:before { + content: '\e8a9'; } + +.eicon-library-download:before { + content: '\e8aa'; } + +.eicon-insert:before { + content: '\e8ab'; } + +.eicon-preview-medium:before { + content: '\e8ac'; } + +.eicon-sort-down:before { + content: '\e8ad'; } + +.eicon-sort-up:before { + content: '\e8ae'; } + +.eicon-heading:before { + content: '\e8af'; } + +.eicon-logo:before { + content: '\e8b0'; } + +.eicon-meta-data:before { + content: '\e8b1'; } + +.eicon-post-content:before { + content: '\e8b2'; } + +.eicon-post-excerpt:before { + content: '\e8b3'; } + +.eicon-post-navigation:before { + content: '\e8b4'; } + +.eicon-yoast:before { + content: '\e8b5'; } + +.eicon-nerd-chuckle:before { + content: '\e8b6'; } + +.eicon-nerd-wink:before { + content: '\e8b7'; } + +.eicon-comments:before { + content: '\e8b8'; } + +.eicon-download-circle-o:before { + content: '\e8b9'; } + +.eicon-library-upload:before { + content: '\e8ba'; } + +.eicon-save-o:before { + content: '\e8bb'; } + +.eicon-upload-circle-o:before { + content: '\e8bc'; } + +.eicon-ellipsis-h:before { + content: '\e8bd'; } + +.eicon-ellipsis-v:before { + content: '\e8be'; } + +.eicon-arrow-left:before { + content: '\e8bf'; } + +.eicon-arrow-right:before { + content: '\e8c0'; } + +.eicon-arrow-up:before { + content: '\e8c1'; } + +.eicon-arrow-down:before { + content: '\e8c2'; } + +.eicon-play-o:before { + content: '\e8c3'; } + +.eicon-archive-posts:before { + content: '\e8c4'; } + +.eicon-archive-title:before { + content: '\e8c5'; } + +.eicon-featured-image:before { + content: '\e8c6'; } + +.eicon-post-info:before { + content: '\e8c7'; } + +.eicon-post-title:before { + content: '\e8c8'; } + +.eicon-site-logo:before { + content: '\e8c9'; } + +.eicon-site-search:before { + content: '\e8ca'; } + +.eicon-site-title:before { + content: '\e8cb'; } + +.eicon-plus-square:before { + content: '\e8cc'; } + +.eicon-minus-square:before { + content: '\e8cd'; } + +.eicon-cloud-check:before { + content: '\e8ce'; } + +.eicon-drag-n-drop:before { + content: '\e8cf'; } + +.eicon-welcome:before { + content: '\e8d0'; } + +.eicon-handle:before { + content: '\e8d1'; } + +.eicon-cart:before { + content: '\e8d2'; } + +.eicon-product-add-to-cart:before { + content: '\e8d3'; } + +.eicon-product-breadcrumbs:before { + content: '\e8d4'; } + +.eicon-product-categories:before { + content: '\e8d5'; } + +.eicon-product-description:before { + content: '\e8d6'; } + +.eicon-product-images:before { + content: '\e8d7'; } + +.eicon-product-info:before { + content: '\e8d8'; } + +.eicon-product-meta:before { + content: '\e8d9'; } + +.eicon-product-pages:before { + content: '\e8da'; } + +.eicon-product-price:before { + content: '\e8db'; } + +.eicon-product-rating:before { + content: '\e8dc'; } + +.eicon-product-related:before { + content: '\e8dd'; } + +.eicon-product-stock:before { + content: '\e8de'; } + +.eicon-product-tabs:before { + content: '\e8df'; } + +.eicon-product-title:before { + content: '\e8e0'; } + +.eicon-product-upsell:before { + content: '\e8e1'; } + +.eicon-products:before { + content: '\e8e2'; } + +.eicon-bag-light:before { + content: '\e8e3'; } + +.eicon-bag-medium:before { + content: '\e8e4'; } + +.eicon-bag-solid:before { + content: '\e8e5'; } + +.eicon-basket-light:before { + content: '\e8e6'; } + +.eicon-basket-medium:before { + content: '\e8e7'; } + +.eicon-basket-solid:before { + content: '\e8e8'; } + +.eicon-cart-light:before { + content: '\e8e9'; } + +.eicon-cart-medium:before { + content: '\e8ea'; } + +.eicon-cart-solid:before { + content: '\e8eb'; } + +.eicon-exchange:before { + content: '\e8ec'; } + +.eicon-preview-thin:before { + content: '\e8ed'; } + +.eicon-device-laptop:before { + content: '\e8ee'; } + +.eicon-collapse:before { + content: '\e8ef'; } + +.eicon-expand:before { + content: '\e8f0'; } + +.eicon-navigator:before { + content: '\e8f1'; } + +.eicon-plug:before { + content: '\e8f2'; } + +.eicon-dashboard:before { + content: '\e8f3'; } + +.eicon-typography:before { + content: '\e8f4'; } + +.eicon-info-circle-o:before { + content: '\e8f5'; } + +.eicon-integration:before { + content: '\e8f6'; } + +.eicon-plus-circle-o:before { + content: '\e8f7'; } + +.eicon-rating:before { + content: '\e8f8'; } + +.eicon-review:before { + content: '\e8f9'; } + +.eicon-tools:before { + content: '\e8fa'; } + +.eicon-loading:before { + content: '\e8fb'; } + +.eicon-sitemap:before { + content: '\e8fc'; } + +.eicon-click:before { + content: '\e8fd'; } + +.eicon-clock:before { + content: '\e8fe'; } + +.eicon-library-open:before { + content: '\e8ff'; } + +.eicon-warning:before { + content: '\e900'; } + +.eicon-flow:before { + content: '\e901'; } + +.eicon-cursor-move:before { + content: '\e902'; } + +.eicon-arrow-circle-left:before { + content: '\e903'; } + +.eicon-flash:before { + content: '\e904'; } + +.eicon-redo:before { + content: '\e905'; } + +.eicon-ban:before { + content: '\e906'; } + +.eicon-barcode:before { + content: '\e907'; } + +.eicon-calendar:before { + content: '\e908'; } + +.eicon-caret-left:before { + content: '\e909'; } + +.eicon-caret-right:before { + content: '\e90a'; } + +.eicon-caret-up:before { + content: '\e90b'; } + +.eicon-chain-broken:before { + content: '\e90c'; } + +.eicon-check-circle-o:before { + content: '\e90d'; } + +.eicon-check:before { + content: '\e90e'; } + +.eicon-chevron-double-left:before { + content: '\e90f'; } + +.eicon-chevron-double-right:before { + content: '\e910'; } + +.eicon-undo:before { + content: '\e911'; } + +.eicon-filter:before { + content: '\e912'; } + +.eicon-circle-o:before { + content: '\e913'; } + +.eicon-circle:before { + content: '\e914'; } + +.eicon-clock-o:before { + content: '\e915'; } + +.eicon-cog:before { + content: '\e916'; } + +.eicon-cogs:before { + content: '\e917'; } + +.eicon-commenting-o:before { + content: '\e918'; } + +.eicon-copy:before { + content: '\e919'; } + +.eicon-database:before { + content: '\e91a'; } + +.eicon-dot-circle-o:before { + content: '\e91b'; } + +.eicon-envelope:before { + content: '\e91c'; } + +.eicon-external-link-square:before { + content: '\e91d'; } + +.eicon-eyedropper:before { + content: '\e91e'; } + +.eicon-folder:before { + content: '\e91f'; } + +.eicon-font:before { + content: '\e920'; } + +.eicon-adjust:before { + content: '\e921'; } + +.eicon-lightbox:before { + content: '\e922'; } + +.eicon-heart-o:before { + content: '\e923'; } + +.eicon-history:before { + content: '\e924'; } + +.eicon-image-bold:before { + content: '\e925'; } + +.eicon-info-circle:before { + content: '\e926'; } + +.eicon-link:before { + content: '\e927'; } + +.eicon-long-arrow-left:before { + content: '\e928'; } + +.eicon-long-arrow-right:before { + content: '\e929'; } + +.eicon-caret-down:before { + content: '\e92a'; } + +.eicon-paint-brush:before { + content: '\e92b'; } + +.eicon-pencil:before { + content: '\e92c'; } + +.eicon-plus-circle:before { + content: '\e92d'; } + +.eicon-zoom-in-bold:before { + content: '\e92e'; } + +.eicon-sort-amount-desc:before { + content: '\e92f'; } + +.eicon-sign-out:before { + content: '\e930'; } + +.eicon-spinner:before { + content: '\e931'; } + +.eicon-square:before { + content: '\e932'; } + +.eicon-star-o:before { + content: '\e933'; } + +.eicon-star:before { + content: '\e934'; } + +.eicon-text-align-justify:before { + content: '\e935'; } + +.eicon-text-align-center:before { + content: '\e936'; } + +.eicon-tags:before { + content: '\e937'; } + +.eicon-text-align-left:before { + content: '\e938'; } + +.eicon-text-align-right:before { + content: '\e939'; } + +.eicon-close-circle:before { + content: '\e93a'; } + +.eicon-trash-o:before { + content: '\e93b'; } + +.eicon-font-awesome:before { + content: '\e93c'; } + +.eicon-user-circle-o:before { + content: '\e93d'; } + +.eicon-video-camera:before { + content: '\e93e'; } + +.eicon-heart:before { + content: '\e93f'; } + +.eicon-wrench:before { + content: '\e940'; } + +.eicon-help:before { + content: '\e941'; } + +.eicon-help-o:before { + content: '\e942'; } + +.eicon-zoom-out-bold:before { + content: '\e943'; } + +.eicon-plus-square-o:before { + content: '\e944'; } + +.eicon-minus-square-o:before { + content: '\e945'; } + +.eicon-minus-circle:before { + content: '\e946'; } + +.eicon-minus-circle-o:before { + content: '\e947'; } + +.eicon-code-bold:before { + content: '\e948'; } + +.eicon-cloud-upload:before { + content: '\e949'; } + +.eicon-search-bold:before { + content: '\e94a'; } + +.eicon-map-pin:before { + content: '\e94b'; } + +.eicon-meetup:before { + content: '\e94c'; } + +.eicon-slideshow:before { + content: '\e94d'; } + +.eicon-t-letter-bold:before { + content: '\e94e'; } + +.eicon-preferences:before { + content: '\e94f'; } + +.eicon-table-of-contents:before { + content: '\e950'; } + +.eicon-tv:before { + content: '\e951'; } + +.eicon-upload:before { + content: '\e952'; } + +.eicon-instagram-comments:before { + content: '\e953'; } + +.eicon-instagram-nested-gallery:before { + content: '\e954'; } + +.eicon-instagram-post:before { + content: '\e955'; } + +.eicon-instagram-video:before { + content: '\e956'; } + +.eicon-instagram-gallery:before { + content: '\e957'; } + +.eicon-instagram-likes:before { + content: '\e958'; } + +.eicon-facebook:before { + content: '\e959'; } + +.eicon-twitter:before { + content: '\e95a'; } + +.eicon-pinterest:before { + content: '\e95b'; } + +.eicon-frame-expand:before { + content: '\e95c'; } + +.eicon-frame-minimize:before { + content: '\e95d'; } + +.eicon-archive:before { + content: '\e95e'; } + +.eicon-colors-typography:before { + content: '\e95f'; } + +.eicon-custom:before { + content: '\e960'; } + +.eicon-footer:before { + content: '\e961'; } + +.eicon-header:before { + content: '\e962'; } + +.eicon-layout-settings:before { + content: '\e963'; } + +.eicon-lightbox-expand:before { + content: '\e964'; } + +.eicon-error-404:before { + content: '\e965'; } + +.eicon-theme-style:before { + content: '\e966'; } + +.eicon-search-results:before { + content: '\e967'; } + +.eicon-single-post:before { + content: '\e968'; } + +.eicon-site-identity:before { + content: '\e969'; } + +.eicon-theme-builder:before { + content: '\e96a'; } + +.eicon-download-bold:before { + content: '\e96b'; } + +.eicon-share-arrow:before { + content: '\e96c'; } + +.eicon-global-settings:before { + content: '\e96d'; } + +.eicon-user-preferences:before { + content: '\e96e'; } + +.eicon-lock:before { + content: '\e96f'; } + +.eicon-export-kit:before { + content: '\e970'; } + +.eicon-import-kit:before { + content: '\e971'; } + +.eicon-lottie:before { + content: '\e972'; } + +.eicon-products-archive:before { + content: '\e973'; } + +.eicon-single-product:before { + content: '\e974'; } + +.eicon-disable-trash-o:before { + content: '\e975'; } + +.eicon-single-page:before { + content: '\e976'; } + +.eicon-wordpress-light:before { + content: '\e977'; } + +.eicon-cogs-check:before { + content: '\e978'; } + +.eicon-custom-css:before { + content: '\e979'; } + +.eicon-global-colors:before { + content: '\e97a'; } + +.eicon-globe:before { + content: '\e97b'; } + +.eicon-typography-1:before { + content: '\e97c'; } + +.eicon-background:before { + content: '\e97d'; } + +.eicon-device-responsive:before { + content: '\e97e'; } + +.eicon-device-wide:before { + content: '\e97f'; } + +.eicon-code-highlight:before { + content: '\e980'; } + +.eicon-video-playlist:before { + content: '\e981'; } + +.eicon-download-kit:before { + content: '\e982'; } + +.eicon-kit-details:before { + content: '\e983'; } + +.eicon-kit-parts:before { + content: '\e984'; } + +.eicon-kit-upload:before { + content: '\e985'; } + +.eicon-kit-plugins:before { + content: '\e986'; } + +.eicon-kit-upload-alt:before { + content: '\e987'; } + +.eicon-hotspot:before { + content: '\e988'; } + +.eicon-paypal-button:before { + content: '\e989'; } + +.eicon-shape:before { + content: '\e98a'; } + +.eicon-wordart:before { + content: '\e98b'; } + +.eicon-checkout:before { + content: '\e98c'; } + +.eicon-container:before { + content: '\e98d'; } + +.eicon-flip:before { + content: '\e98e'; } + +.eicon-info:before { + content: '\e98f'; } + +.eicon-my-account:before { + content: '\e990'; } + +.eicon-purchase-summary:before { + content: '\e991'; } + +.eicon-page-transition:before { + content: '\e992'; } + +.eicon-spotify:before { + content: '\e993'; } + +.eicon-stripe-button:before { + content: '\e994'; } + +.eicon-woo-settings:before { + content: '\e995'; } + +.eicon-woo-cart:before { + content: '\e996'; } + +.eicon-eye:before { + content: '\e8ac'; } + +.eicon-elementor-square:before { + content: '\e813'; } diff --git a/public/fonts/fontawesome-webfont.eot b/public/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e69de29 diff --git a/public/fonts/fontawesome-webfont.svg b/public/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/public/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/fontawesome-webfont.ttf b/public/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/public/fonts/fontawesome-webfont.ttf differ diff --git a/public/fonts/fontawesome-webfont.woff b/public/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/public/fonts/fontawesome-webfont.woff differ diff --git a/public/fonts/fontawesome-webfont.woff2 b/public/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..e69de29 diff --git a/public/fonts/icomoon.eot b/public/fonts/icomoon.eot new file mode 100644 index 0000000..f892ab0 Binary files /dev/null and b/public/fonts/icomoon.eot differ diff --git a/public/fonts/icomoon.woff b/public/fonts/icomoon.woff new file mode 100644 index 0000000..0d0317a Binary files /dev/null and b/public/fonts/icomoon.woff differ diff --git a/public/fonts/opal-icon.eot b/public/fonts/opal-icon.eot new file mode 100644 index 0000000..0b032ba Binary files /dev/null and b/public/fonts/opal-icon.eot differ diff --git a/public/fonts/opal-icon.svg b/public/fonts/opal-icon.svg new file mode 100644 index 0000000..eb63f00 --- /dev/null +++ b/public/fonts/opal-icon.svg @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/opal-icon.ttf b/public/fonts/opal-icon.ttf new file mode 100644 index 0000000..37a96ae Binary files /dev/null and b/public/fonts/opal-icon.ttf differ diff --git a/public/fonts/opal-icon.woff b/public/fonts/opal-icon.woff new file mode 100644 index 0000000..3c14052 Binary files /dev/null and b/public/fonts/opal-icon.woff differ diff --git a/public/fonts/opal-icon.woff2 b/public/fonts/opal-icon.woff2 new file mode 100644 index 0000000..704db1d Binary files /dev/null and b/public/fonts/opal-icon.woff2 differ diff --git a/public/fonts/shop.css b/public/fonts/shop.css new file mode 100644 index 0000000..e24db28 --- /dev/null +++ b/public/fonts/shop.css @@ -0,0 +1,78 @@ + +@font-face { + font-family: Eina03; + src: url(./Eina03-Bold.ttf) format("ttf"), url(./Eina03-Bold.woff) format("woff"), url(./Eina03-Bold.eot) format("eot"), url(./Eina03-Bold.otf) format("otf"); + font-weight: 700; + font-style:normal + } + + @font-face { + font-family: Eina03; + src: url(./Eina03-SemiBold.ttf) format("ttf"), url(./Eina03-SemiBold.woff) format("woff"), url(./Eina03-SemiBold.eot) format("eot"), url(./Eina03-SemiBold.otf) format("otf"); + font-weight: 600; + font-style:normal + } + + @font-face { + font-family: Eina03; + src: url(./Eina03-Regular.ttf) format("ttf"), url(./Eina03-Regular.woff) format("woff"), url(./Eina03-Regular.eot) format("eot"), url(./Eina03-Regular.otf) format("otf"); + font-weight: 400; + font-style:normal + } + + @font-face { + font-family: Eina03; + src: url(./Eina03-RegularItalic.ttf) format("ttf"), url(./Eina03-RegularItalic.woff) format("woff"), url(./Eina03-RegularItalic.eot) format("eot"), url(./Eina03-RegularItalic.otf) format("otf"); + font-weight: 400; + font-style:italic + } + + + + +@font-face { + font-family: eicons; + src: url(./eicons.eot?5.10.0); + src: url(./eicons.eot?5.10.0#iefix) format("embedded-opentype"), url(./eicons.woff2?5.10.0) format("woff2"), url(./eicons.woff?5.10.0) format("woff"), url(./eicons.ttf?5.10.0) format("truetype"), url(./eicons.svg?5.10.0#eicon) format("svg"); + font-weight: 400; + font-style: normal + } + + + /* latin-ext */ + @font-face { + font-family: 'Rufina'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/rufina/v8/Yq6V-LyURyLy-aKCqh5lluRSlygt.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Rufina'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/rufina/v8/Yq6V-LyURyLy-aKCpB5lluRSlw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + /* latin-ext */ + @font-face { + font-family: 'Rufina'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/rufina/v8/Yq6W-LyURyLy-aKKHztwtcZfvRIkSYZH.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Rufina'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/rufina/v8/Yq6W-LyURyLy-aKKHztwu8ZfvRIkSQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + \ No newline at end of file diff --git a/public/images/web/gs-bio-aloevera.jpg b/public/images/web/gs-bio-aloevera.jpg new file mode 100644 index 0000000..7c893a8 Binary files /dev/null and b/public/images/web/gs-bio-aloevera.jpg differ diff --git a/public/images/web/gs-bio-deocreme.jpg b/public/images/web/gs-bio-deocreme.jpg new file mode 100644 index 0000000..b33fb90 Binary files /dev/null and b/public/images/web/gs-bio-deocreme.jpg differ diff --git a/public/images/web/gs-bio-refill.jpg b/public/images/web/gs-bio-refill.jpg new file mode 100644 index 0000000..614529f Binary files /dev/null and b/public/images/web/gs-bio-refill.jpg differ diff --git a/public/js/custom.js b/public/js/custom.js index 5181ba7..d681b9d 100644 --- a/public/js/custom.js +++ b/public/js/custom.js @@ -2,7 +2,23 @@ $(function () { // $('.selectpicker').selectpicker(); $('[data-toggle="tooltip"]').tooltip(); }); - +$(function() { + $('.bootstrap-maxlength').each(function() { + $(this).maxlength({ + warningClass: 'badge badge-success', + limitReachedClass: 'badge badge-danger', + separator: ' / ', + preText: ' ', + postText: ' Zeichen', + validate: true, + placement: 'top', + threshold: +this.getAttribute('maxlength') + }); + }); +}); +$(function() { + autosize($('.text-autosize')); +}); function update_modal_data_load(e, $ele) { var ele = $ele, diff --git a/public/js/iq-promotion-cart.js b/public/js/iq-promotion-cart.js index cf9bf45..1c1b06a 100644 --- a/public/js/iq-promotion-cart.js +++ b/public/js/iq-promotion-cart.js @@ -30,8 +30,9 @@ var IqPromotionCart = { $(_self.table).find(_self.check_event).off('change').on('change', function(){ _self.update_input_table($(this)); }); - }, + _self.update_poduct_price(); + }, add_product: function (_obj){ var _self = this; var input = $(_self.table).find('input#product_qty_'+_obj.data('product-id')); @@ -74,15 +75,28 @@ var IqPromotionCart = { //push, is checked if($(_self.table).find('#product_check_'+$(this).data('product-id')).is(':checked')){ tempData.push({product_id: $(this).data('product-id'), qty: $(this).val()}); - } + } }); + data.action = $(_self.table).data('action'); data.user_promotion_id = $(_self.table).data('user_promotion_id'); data.products = tempData; _self.performRequest(data) .done(_self.refreshItemsAndView); + _self.update_poduct_price(); + }, + update_poduct_price: function(){ + console.log("s"); + var _self = this; + $('.calculate_product_qty_price').each(function(){ + var qty = _self.checkNumber($(_self.table).find('#'+$(this).data('qty-id')).val());; + var price = $(this).data('price'); + var total = price*qty; + $(this).html(total.toFixed(2).replace('.', ',')) + }); + }, refreshItemsAndView: function (data){ var _self = IqPromotionCart; //console.log(data.html_cart); @@ -106,15 +120,15 @@ var IqPromotionCart = { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }) - .done(function (data) { - // console.log('performRequest'); - // console.log(data); - }).fail(function (jqXHR, textStatus, errorThrown) { - console.log(jqXHR); - console.log(jqXHR.responseText); - console.log(textStatus); - console.log(errorThrown); - console.log("Sorry, there was a problem!"); - }); + .done(function (data) { + // console.log('performRequest'); + // console.log(data); + }).fail(function (jqXHR, textStatus, errorThrown) { + console.log(jqXHR); + console.log(jqXHR.responseText); + console.log(textStatus); + console.log(errorThrown); + console.log("Sorry, there was a problem!"); + }); } }; \ No newline at end of file diff --git a/public/js/shop.js b/public/js/shop.js new file mode 100644 index 0000000..76b5d80 --- /dev/null +++ b/public/js/shop.js @@ -0,0 +1,58 @@ +$(function() { + + $('select').selectpicker(); + + + $('#modals-load-content').on('show.bs.modal', function (event) { + var button = $(event.relatedTarget); + if (!button.data('id')) { + return; + } + var data = {}; + $.each(button.data(), function(index, value){ + if(index !== 'bs.tooltip'){ + data[index] = value; + } + }); + console.log(data); + + loadModalInner(this, data); + + }); + +function loadModalInner(self, data){ + var url = data.route, + contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; + $.ajax({ + url: url, + data: data, + type: "POST", + dataType: "json", + cache: false, + contentType: contentType, + encode: true, + headers: { + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') + }, + success: function(data) { + console.log(data); + if(data.response.modal){ + $(data.response.target).find('.modal-dialog').addClass(data.response.modal); + } + $(data.response.target).find('.modal-dialog').html(data.html); + //$(data.response.target).find('.selectpicker').selectpicker('refresh'); + }, + error: function(xhr, status, errorThrown) { + console.log(xhr); + console.log(xhr.responseText); + console.log(errorThrown); + console.log("Sorry, there was a problem!"); + } + }); + return false; +} +}); + +function _scrollTo(to, offset) { + $('html,body').animate({scrollTop: $(to).offset().top - offset}, 800); +} diff --git a/resources/lang/de/navigation.php b/resources/lang/de/navigation.php index cf40510..a1ef0eb 100755 --- a/resources/lang/de/navigation.php +++ b/resources/lang/de/navigation.php @@ -47,6 +47,6 @@ return [ 'paycredit' => 'Einkaufsguthaben', 'commissions' => 'Provisionen', 'promotion' => 'Promotion', - 'my_promotions' => 'Meine Promotions' - + 'my_promotions' => 'Meine Promotions', + 'my_profile' => 'Mein Profil', ]; diff --git a/resources/views/admin/product/edit.blade.php b/resources/views/admin/product/edit.blade.php index 934341a..0edf257 100755 --- a/resources/views/admin/product/edit.blade.php +++ b/resources/views/admin/product/edit.blade.php @@ -37,9 +37,4 @@ {!! Form::close() !!} - - @include('admin.product.images') - - - @endsection diff --git a/resources/views/admin/product/form.blade.php b/resources/views/admin/product/form.blade.php index 5d5a683..c457019 100755 --- a/resources/views/admin/product/form.blade.php +++ b/resources/views/admin/product/form.blade.php @@ -17,34 +17,38 @@ {{ Form::text('name', $product->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required')) }}
- {{--
- - {{ Form::text('title', $product->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'title')) }} +
+ + {{ Form::select('show_at', $product->showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }}
- --}}
-
+
-
- - {{ Form::select('show_at', $product->showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }} -
-
{{ Form::text('pos', $product->pos, array('placeholder'=>__('1, 2, 3, etc'), 'class'=>'form-control', 'id'=>'pos')) }}
+
+
+ + {{ Form::select('show_on[]', $product->showONs, $product->show_on, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_on', 'multiple') ) }} +
+
{{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Produktbeschreibung'), 'class'=>'form-control summernote', 'id'=>'copy')) }}
+
+ + {{ Form::textarea('short_copy', $product->short_copy , array('placeholder'=>__('Kurzbeschreibung'), 'class'=>'form-control summernote', 'id'=>'short_copy')) }} +
diff --git a/resources/views/admin/product/images.blade.php b/resources/views/admin/product/images.blade.php index c691a46..dccaa9b 100755 --- a/resources/views/admin/product/images.blade.php +++ b/resources/views/admin/product/images.blade.php @@ -1,16 +1,9 @@ - - -
-
{{ __('Bilder') }}
- - -
@if($product->id>0) @@ -25,7 +18,6 @@
-
@foreach($product->images as $image)
@@ -62,7 +54,7 @@
+ data-ratio="1:1">
@@ -87,10 +79,6 @@
@else

Produkt erst speichern

- - @endif - -
diff --git a/resources/views/admin/product/index.blade.php b/resources/views/admin/product/index.blade.php index 8dcfaba..312a535 100755 --- a/resources/views/admin/product/index.blade.php +++ b/resources/views/admin/product/index.blade.php @@ -59,7 +59,7 @@ {{ $value->getUnitType() }} {{ $value->getBasePriceFormatted() }} {{ $value->weight }} - {{ $value->getShowAtType() }} + {!! implode($value->getShowOnTypes(), '
') !!} {!! get_active_badge($value->shipping_addon) !!} {!! get_active_badge($value->max_buy) !!} {!! get_active_badge($value->single_commission) !!} diff --git a/resources/views/admin/promotion/form.blade.php b/resources/views/admin/promotion/form.blade.php index 1488ab0..f138d91 100644 --- a/resources/views/admin/promotion/form.blade.php +++ b/resources/views/admin/promotion/form.blade.php @@ -9,7 +9,7 @@
{{ Form::text('name', $promotion->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required')) }} diff --git a/resources/views/auth/passwords/email.blade.php b/resources/views/auth/passwords/email.blade.php index eb5ce1f..5abaf24 100644 --- a/resources/views/auth/passwords/email.blade.php +++ b/resources/views/auth/passwords/email.blade.php @@ -29,6 +29,9 @@ {{ session('status') }}
@endif +

+ Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen einen Link, um Ihr Passwort zurückzusetzen. +

@csrf diff --git a/resources/views/errors/402.blade.php b/resources/views/errors/402.blade.php new file mode 100644 index 0000000..2265963 --- /dev/null +++ b/resources/views/errors/402.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Promotion nicht gefunden')) +@section('code', '404') +@section('message', __('Promotion nicht gefunden')) diff --git a/resources/views/errors/404.blade.php b/resources/views/errors/404.blade.php new file mode 100644 index 0000000..7549540 --- /dev/null +++ b/resources/views/errors/404.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Not Found')) +@section('code', '404') +@section('message', __('Not Found')) diff --git a/resources/views/layouts/application.blade.php b/resources/views/layouts/application.blade.php index 4b50cf6..6edf6db 100644 --- a/resources/views/layouts/application.blade.php +++ b/resources/views/layouts/application.blade.php @@ -27,7 +27,6 @@ - @@ -46,8 +45,7 @@ - - + @yield('styles') @@ -132,10 +130,11 @@ + + - diff --git a/resources/views/layouts/auth.blade.php b/resources/views/layouts/auth.blade.php index cb43486..f60bcaa 100644 --- a/resources/views/layouts/auth.blade.php +++ b/resources/views/layouts/auth.blade.php @@ -24,10 +24,10 @@ - - + + diff --git a/resources/views/layouts/includes/layout-sidenav.blade.php b/resources/views/layouts/includes/layout-sidenav.blade.php index b270a26..6df879d 100644 --- a/resources/views/layouts/includes/layout-sidenav.blade.php +++ b/resources/views/layouts/includes/layout-sidenav.blade.php @@ -33,6 +33,9 @@
  • {{ __('navigation.my_data') }}
  • +
  • +
    {{ __('navigation.my_profile') }}
    +
  • {{ __('navigation.membership') }}
  • diff --git a/resources/views/user/checkout/checkout.blade.php b/resources/views/user/checkout/checkout.blade.php index 6acd7fd..8b4098c 100644 --- a/resources/views/user/checkout/checkout.blade.php +++ b/resources/views/user/checkout/checkout.blade.php @@ -139,7 +139,7 @@ @endif - {!! Form::open(['url' => route('user_checkout_store', [$identifier]), 'class' => 'row clearfix', 'id'=>'checkout_card_final']) !!} + {!! Form::open(['url' => route('user_checkout_store', [$identifier]), 'class' => 'row clearfix form-prevent-multiple-submits', 'id'=>'checkout_card_final']) !!} {!! Form::hidden('selected_country', '') !!} {!! Form::hidden('is_for', $shopping_user->is_for) !!} {!! Form::hidden('is_from', $shopping_user->is_from) !!} @@ -530,20 +530,17 @@ @if(\App\Models\PaymentMethod::isShowPaymentMethod('PP', $user_payment_methods, Yard::instance('shopping')->totalWithShipping(2, '.', ''))) - + + PayPal + - -
    PayPal
    - - + PayPal @@ -551,100 +548,85 @@ @if(\App\Models\PaymentMethod::isShowPaymentMethod('SB', $user_payment_methods, Yard::instance('shopping')->totalWithShipping(2, '.', ''))) - + - -
    Sofort -Überweisung
    - - + Sofort @endif @if(\App\Models\PaymentMethod::isShowPaymentMethod('CC', $user_payment_methods, Yard::instance('shopping')->totalWithShipping(2, '.', ''))) - + - -
    Kreditkarte
    - - + Mastercard + Visa @endif @if(\App\Models\PaymentMethod::isShowPaymentMethod('SEPA', $user_payment_methods, Yard::instance('shopping')->totalWithShipping(2, '.', ''))) - + - -
    SEPA
    - - + SEPA Lastschrift @endif @if(\App\Models\PaymentMethod::isShowPaymentMethod('VOR', $user_payment_methods, Yard::instance('shopping')->totalWithShipping(2, '.', ''))) - + - -
    Vorkasse
    - - + Vorkasse @endif @if(\App\Models\PaymentMethod::isShowPaymentMethod('FNC', $user_payment_methods, Yard::instance('shopping')->totalWithShipping(2, '.', ''))) - + - -
    Rechnungskauf
    - - + Rechnungskauf @@ -845,19 +827,13 @@ Mit Klick auf "Jetzt kaufen" akzeptiere ich die Allgemeinen Geschäftsbedingungen und die Datenschutzbelehrung, damit für die Bestellung meine Daten verarbeitet werden können.*
    - +
    -

    Sind alle Deine Angaben vollsätndig ausgefüllt, klicke auf "Jetzt kaufen" und Du wist zu unserem Zahlungsanbieter weitergeleitet, die Verbindung wird ist SSL verschlüsselt.

    +

    Sind alle Deine Angaben vollsätndig ausgefüllt, klicke auf "Jetzt kaufen" und Du wist zu unserem Zahlungsanbieter weitergeleitet, die Verbindung ist SSL verschlüsselt.

    - -
    - - - - {!! Form::close() !!} diff --git a/resources/views/user/edit.blade.php b/resources/views/user/edit.blade.php index 5d8e08b..732e1cc 100644 --- a/resources/views/user/edit.blade.php +++ b/resources/views/user/edit.blade.php @@ -19,13 +19,11 @@ {{ __('navigation.my_data') }} {!! Form::open(['url' => route('user_edit'), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} - + @include('user.user_form')
      {{ __('back') }} -
    {!! Form::close() !!} - @endsection diff --git a/resources/views/user/form.blade.php b/resources/views/user/form.blade.php index 2776f83..0f27dd0 100644 --- a/resources/views/user/form.blade.php +++ b/resources/views/user/form.blade.php @@ -32,7 +32,6 @@ {{ Form::text('last_name', $user->account->last_name, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'last_name', 'required'=>true, 'tabindex' => 13)) }}
    -
    diff --git a/resources/views/user/profile.blade.php b/resources/views/user/profile.blade.php new file mode 100644 index 0000000..4c77391 --- /dev/null +++ b/resources/views/user/profile.blade.php @@ -0,0 +1,82 @@ +@extends('layouts.layout-2') + +@section('content') + @if($errors->any()) +
    +
    +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    +
    +
    + @endif +

    + {{ __('navigation.my_profile') }} +

    +
    +
    +
    +
    + Über Dich +
    +
    +
    +
    +
    +
    + @if ($user->hasProfileImage()) +
    + +
    + Bild löschen +
    + @else + + {!! Form::open(['url' => route('user_profile_image_upload'), 'class' => 'avatar px-2', 'enctype' => 'multipart/form-data']) !!} +
    +
    + +
    +
    + + {!! Form::close() !!} + @endif +
    +
    + {!! Form::open(['url' => route('user_profile'), 'class' => 'form-horizontal']) !!} + + + {{ Form::textarea('about_you', $user->account->about_you, ['placeholder' => __('Über dich'), 'class' => 'form-control bootstrap-maxlength text-autosize', 'maxlength' => 600, 'rows' => 1, 'id' => 'about_you']) }} + + {!! Form::close() !!} +
    +
    +
    +
    + +@endsection diff --git a/resources/views/user/promotion/cart.blade.php b/resources/views/user/promotion/cart.blade.php index 57f0d61..0bb7ae0 100644 --- a/resources/views/user/promotion/cart.blade.php +++ b/resources/views/user/promotion/cart.blade.php @@ -2,8 +2,6 @@ Potentielle Kosten für diese Promotion: {{ formatNumber($user_promotion_cart['price_net']) }} € netto / {{ formatNumber($user_promotion_cart['price']) }} € inkl. MwSt. -

    Text ...

    - @if(isset($checkPaymentCredit)) @if($checkPaymentCredit === 'empty')
    Du hast kein Guthaben aus Deinem Konto auf, lade Dein Konto auf, bis dahin ist die Promotion gestoppt.
    diff --git a/resources/views/user/promotion/form.blade.php b/resources/views/user/promotion/form.blade.php index da32a29..dfa9beb 100644 --- a/resources/views/user/promotion/form.blade.php +++ b/resources/views/user/promotion/form.blade.php @@ -1,7 +1,73 @@ +
    - {{ __('Promotion') }} + {{ $user_promotion->promotion_admin->name }} + @if ($user_promotion->promotion_admin->from) + | vom: {{ $user_promotion->promotion_admin->from }} + @endif + @if ($user_promotion->promotion_admin->from) + | bis: {{ $user_promotion->promotion_admin->to }} + @endif
    @@ -10,8 +76,8 @@ {!! Form::checkbox('active', 1, $user_promotion->active, ['class' => 'custom-control-input']) !!} {{ __('Promotion aktiv') }} - - {{ Form::text('name', $user_promotion->name, ['placeholder' => __('Promotion Name'), 'class' => 'form-control', 'id' => 'name', 'required' => true]) }} + + {{ Form::text('name', $user_promotion->name, ['placeholder' => __('Promotion Titel'), 'class' => 'form-control bootstrap-maxlength', 'maxlength'=>50, 'id' => 'name', 'required' => true]) }} @if ($errors->has('name')) {{ $errors->first('name') }} @@ -19,12 +85,33 @@ @endif
    - - {{ Form::textarea('description', $user_promotion->description, ['placeholder' => __('Kurzbeschreibung'), 'class' => 'form-control', 'rows' => 2, 'id' => 'description']) }} + + {{ Form::textarea('description', $user_promotion->description, ['placeholder' => __('Kurzbeschreibung'), 'class' => 'form-control bootstrap-maxlength text-autosize', 'maxlength'=>600, 'rows' => 1, 'id' => 'description']) }} +
    + +
    + + {{ Form::textarea('about_you', $user_promotion->about_you, ['placeholder' => __('Über dich'), 'class' => 'form-control bootstrap-maxlength text-autosize', 'maxlength'=>600, 'rows' => 1, 'id' => 'about_you']) }} +

    Einen kurzen Text über Dich kannst Du in "Mein Konto - Mein Profil" hinterlegen, dieser wird automatisch hier eingefügt, kann aber abgeändert werden.

    - -

    Text...

    +
    +
    +
    + + {{ Form::text('internal_name', $user_promotion->internal_name, ['placeholder' => __('Promotion Interner Titel'), 'class' => 'form-control', 'id' => 'internal_name', 'required' => true]) }} + @if ($errors->has('internal_name')) + + {{ $errors->first('internal_name') }} + + @endif +
    +
    + + {{ Form::textarea('internal_description', $user_promotion->internal_description, ['placeholder' => __('Internere Kurzbeschreibung'), 'class' => 'form-control text-autosize', 'rows' => 1, 'id' => 'internal_description']) }} +
    +
    +
    @@ -49,11 +136,23 @@ class="fa fa-times"> nicht verfügbar/Fehler
    -
    - - {{ Form::text('preview_user_promotion_url', $user_promotion->getUrlPreview(), ['placeholder' => __('Vorschau Shop-Internet Adresse'), 'class' => 'form-control', 'id' => 'preview_user_promotion_url', 'readonly']) }} +
    +
    +
    + +
    + + + + {{ Form::text('preview_user_promotion_url', $user_promotion->getUrlPreview(), ['placeholder' => __('Vorschau Shop-Internet Adresse'), 'class' => 'form-control', 'id' => 'preview_user_promotion_url', 'readonly']) }} +
    +
    +
    + +
    + +
    -
    @@ -64,79 +163,20 @@ Kunden können bei mir persönlich abholen.
    +
    + + {{ Form::textarea('user_address', $user_promotion->user_address, ['class' => 'form-control', 'rows' => 5, 'id' => 'user_address']) }} +
    - - -

    -

    Text ...

    Aktuelles Guthaben: {{ Auth::user()->getFormattedPaymentCredit() }} € - (Guthaben aufladen unter: (Guthaben aufladen unter: Bestellungen aufgeben -> Produkt Guthaben aufladen)
    -
    @@ -147,6 +187,7 @@ + @@ -213,10 +254,12 @@ + - @endforeach @@ -230,7 +273,24 @@ diff --git a/resources/views/user/user_form.blade.php b/resources/views/user/user_form.blade.php index d471aab..b506be9 100644 --- a/resources/views/user/user_form.blade.php +++ b/resources/views/user/user_form.blade.php @@ -403,7 +403,6 @@ @endif - diff --git a/resources/views/user/user_form_image.blade.php b/resources/views/user/user_form_image.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/web/index.blade.php b/resources/views/web/index.blade.php new file mode 100755 index 0000000..e69de29 diff --git a/resources/views/web/layouts/application.blade.php b/resources/views/web/layouts/application.blade.php new file mode 100644 index 0000000..b0c7390 --- /dev/null +++ b/resources/views/web/layouts/application.blade.php @@ -0,0 +1,48 @@ + + + + + Natürliche Deocremes - GRÜNE SEELE + + + + + + + + + + + + + + + + + + + + + + + @yield('styles') + + + + + + @yield('layout-content') + + + + + + + + + + + diff --git a/resources/views/web/layouts/includes/_layout-header.blade.php b/resources/views/web/layouts/includes/_layout-header.blade.php new file mode 100644 index 0000000..2a6f1b4 --- /dev/null +++ b/resources/views/web/layouts/includes/_layout-header.blade.php @@ -0,0 +1,71 @@ + + + \ No newline at end of file diff --git a/resources/views/web/layouts/includes/layout-footer.blade.php b/resources/views/web/layouts/includes/layout-footer.blade.php new file mode 100644 index 0000000..4916c39 --- /dev/null +++ b/resources/views/web/layouts/includes/layout-footer.blade.php @@ -0,0 +1,41 @@ + + diff --git a/resources/views/web/layouts/includes/layout-header.blade.php b/resources/views/web/layouts/includes/layout-header.blade.php new file mode 100644 index 0000000..9f038d7 --- /dev/null +++ b/resources/views/web/layouts/includes/layout-header.blade.php @@ -0,0 +1,33 @@ + + + \ No newline at end of file diff --git a/resources/views/web/layouts/layout.blade.php b/resources/views/web/layouts/layout.blade.php new file mode 100644 index 0000000..64f2f41 --- /dev/null +++ b/resources/views/web/layouts/layout.blade.php @@ -0,0 +1,11 @@ +@extends('web.layouts.application') + +@section('layout-content') + +@include('web.layouts.includes.layout-header') + +@yield('content') + +@include('web.layouts.includes.layout-footer') + +@endsection diff --git a/resources/views/web/promotion/_checkout.blade.php b/resources/views/web/promotion/_checkout.blade.php new file mode 100644 index 0000000..013abee --- /dev/null +++ b/resources/views/web/promotion/_checkout.blade.php @@ -0,0 +1,157 @@ +@if (isset($shopping_mode) && $shopping_mode === 'test') + #### TEST MODE #### TEST MODE #### +@endif +
    +

    Zahlungsart auswählen

    +
    +
    +
    {{ __('Produkt') }} {{ __('Mein Preis netto') }} {{ __('Mein Preis brutto') }}{{ __('Gesamt Preis brutto') }} {{ __('geordert') }}
    {{ $promotion_admin_product->getFormattedPriceWith(false) }} € + € + {{ $promotion_admin_product->getPromotionUserProducts($user_promotion, 'sell_items') }}
    + + @if (true || \App\Models\PaymentMethod::isShowPaymentMethod('PP', $user_payment_methods, 0)) + + + + + + @endif + @if (true || \App\Models\PaymentMethod::isShowPaymentMethod('SB', $user_payment_methods, 0)) + + + + + @endif + @if (true || \App\Models\PaymentMethod::isShowPaymentMethod('CC', $user_payment_methods, 0)) + + + + + @endif + @if (true || \App\Models\PaymentMethod::isShowPaymentMethod('VOR', $user_payment_methods, 0)) + + + + + @endif + +
    + + + PayPal +
    + + + Sofort +
    + + + Mastercard + Visa +
    + + + Vorkasse +
    +
    + +

    Warenkorb

    +
    +
    + 0,00 € + Zwischensumme: +
    +
    +
    + 0,00 € + Versandkosten: +
    +
    + Deutschland + Lieferland: +
    +
    +
    + 0,00 € + Summe ohne MwSt: +
    +
    + 0,00 € + zzgl. {{-- Yard::getTaxRate() --}} MwSt: +
    +
    +
    + 0,00 € + Gesamtsumme: +
    +
    +
    + +
    + +
    + {!! Form::hidden("action", "submit-promotion-order") !!} + +
    +

    Sind alle Deine Angaben vollsätndig ausgefüllt, + klicke auf "Jetzt kaufen" und Du wist zu unserem Zahlungsanbieter weitergeleitet, + die Verbindung ist SSL verschlüsselt.

    +
    + +
    diff --git a/resources/views/web/promotion/_fairplay.blade.php b/resources/views/web/promotion/_fairplay.blade.php new file mode 100644 index 0000000..3c47cca --- /dev/null +++ b/resources/views/web/promotion/_fairplay.blade.php @@ -0,0 +1,22 @@ +
    +
    +
    +

    Fairplay

    + +
    +
    +
    +
    +
    +
    +
    diff --git a/resources/views/web/promotion/_free_product.blade.php b/resources/views/web/promotion/_free_product.blade.php new file mode 100644 index 0000000..80cff3f --- /dev/null +++ b/resources/views/web/promotion/_free_product.blade.php @@ -0,0 +1,53 @@ +
    +

    1 Tester gratis für Dich

    +

    Wähle nun ...

    + +
    + @foreach ($promotion_user->promotion_user_products_active as $promotion_user_product) + @if ($promotion_user_product->isShow()) +
    + @if ($promotion_user_product->product->images) + @if ($image = $promotion_user_product->product->images->first()) + + @endif + @endif +

    + {{ $promotion_user_product->product->name }} +

    +
    + {{ substr_ellipsis($promotion_user_product->product->description, 110, true) }} +
    + +
    +
    + +
    +
    +
    + @endif + @endforeach +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/resources/views/web/promotion/_intro.blade.php b/resources/views/web/promotion/_intro.blade.php new file mode 100644 index 0000000..7e7aeb7 --- /dev/null +++ b/resources/views/web/promotion/_intro.blade.php @@ -0,0 +1,9 @@ +
    +
    + {{-- --}} +
    +

    {{ $promotion_user->name }}

    +

    {!! nl2br($promotion_user->description) !!}

    +
    +
    +
    diff --git a/resources/views/web/promotion/_intro_thanks.blade.php b/resources/views/web/promotion/_intro_thanks.blade.php new file mode 100644 index 0000000..7c7301b --- /dev/null +++ b/resources/views/web/promotion/_intro_thanks.blade.php @@ -0,0 +1,12 @@ +
    +
    + {{-- --}} +
    +

    Super, geschafft!

    +

    + Ich danke Dir .. +

    +

    Liebe Grüße,
    {{ $promotion_user->user->getFullName() }}
    Vertriebspartner:in der GRÜNEN SEELE Naturkosmetik

    +
    +
    +
    diff --git a/resources/views/web/promotion/_invoice_details.blade.php b/resources/views/web/promotion/_invoice_details.blade.php new file mode 100644 index 0000000..66b126a --- /dev/null +++ b/resources/views/web/promotion/_invoice_details.blade.php @@ -0,0 +1,235 @@ +

    Rechnungsdetails

    +
    +
    +
    + + +
    + @if ($errors->has('billing_salutation')) + + @endif +
    +
    +
    +
    + + {!! Form::text('billing_firstname', '', ['class' => 'form-control ' . ($errors->has('billing_firstname') ? 'error' : ''), 'id' => 'billing_firstname', 'required' => true]) !!} + @if ($errors->has('billing_firstname')) + + @endif +
    +
    +
    +
    + + {!! Form::text('billing_lastname', '', ['class' => 'form-control ' . ($errors->has('billing_lastname') ? 'error' : ''), 'id' => 'billing_lastname', 'required' => true]) !!} + @if ($errors->has('billing_lastname')) + + @endif +
    +
    +
    +
    + + {!! Form::text('billing_company', '', ['class' => 'form-control', 'id' => 'billing_company']) !!} +
    +
    +
    +
    + + +
    +
    +
    +
    + + {!! Form::text('billing_address', '', ['class' => 'form-control ' . ($errors->has('billing_address') ? 'error' : ''), 'id' => 'billing_address', 'required' => true]) !!} + @if ($errors->has('billing_address')) + + @endif +
    +
    +
    +
    + {!! Form::text('billing_address_2', '', ['placeholder' => 'Wohnung, Suite, Zimmer usw. (optional)', 'class' => 'form-control ' . ($errors->has('billing_address_2') ? 'error' : ''), 'id' => 'billing_address_2']) !!} + @if ($errors->has('billing_address_2')) + + @endif +
    +
    +
    +
    + + {!! Form::text('billing_zipcode', '', ['class' => 'form-control ' . ($errors->has('billing_zipcode') ? 'error' : ''), 'id' => 'billing_zipcode', 'required' => true]) !!} + @if ($errors->has('billing_zipcode')) + + @endif +
    +
    +
    +
    + + {!! Form::text('billing_city', '', ['class' => 'form-control ' . ($errors->has('billing_city') ? 'error' : ''), 'id' => 'billing_city', 'required' => true]) !!} + @if ($errors->has('billing_city')) + + @endif +
    +
    +
    +
    + + {!! Form::text('billing_phone', '', ['class' => 'form-control ' . ($errors->has('billing_phone') ? 'error' : ''), 'id' => 'billing_phone']) !!} + @if ($errors->has('billing_phone')) + + @endif +
    +
    +
    +
    + + {!! Form::email('billing_email', '', ['class' => 'form-control ' . ($errors->has('billing_email') ? 'error' : ''), 'id' => 'billing_email', 'required' => true]) !!} + @if ($errors->has('billing_email')) + + @endif +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    Lieferadresse

    +
    +
    +
    + + +
    + @if ($errors->has('shipping_salutation')) + + @endif +
    +
    +
    +
    + + {!! Form::text('shipping_firstname', '', ['class' => 'form-control ' . ($errors->has('shipping_firstname') ? 'error' : ''), 'id' => 'shipping_firstname', 'required' => true]) !!} + @if ($errors->has('shipping_firstname')) + + @endif +
    +
    +
    +
    + + {!! Form::text('shipping_lastname', '', ['class' => 'form-control ' . ($errors->has('shipping_lastname') ? 'error' : ''), 'id' => 'shipping_lastname', 'required' => true]) !!} + @if ($errors->has('shipping_lastname')) + + @endif +
    +
    +
    +
    + + {!! Form::text('shipping_company', '', ['class' => 'form-control', 'id' => 'shipping_company']) !!} +
    +
    +
    +
    + + +
    +
    +
    +
    + + {!! Form::text('shipping_address', '', ['class' => 'form-control ' . ($errors->has('shipping_address') ? 'error' : ''), 'id' => 'shipping_address', 'required' => true]) !!} + @if ($errors->has('shipping_address')) + + @endif +
    +
    +
    +
    + {!! Form::text('shipping_address_2', '', ['placeholder' => 'Wohnung, Suite, Zimmer usw. (optional)', 'class' => 'form-control ' . ($errors->has('shipping_address_2') ? 'error' : ''), 'id' => 'shipping_address_2']) !!} + @if ($errors->has('shipping_address_2')) + + @endif +
    +
    +
    +
    + + {!! Form::text('shipping_zipcode', '', ['class' => 'form-control ' . ($errors->has('shipping_zipcode') ? 'error' : ''), 'id' => 'shipping_zipcode', 'required' => true]) !!} + @if ($errors->has('shipping_zipcode')) + + @endif +
    +
    +
    +
    + + {!! Form::text('shipping_city', '', ['class' => 'form-control ' . ($errors->has('shipping_city') ? 'error' : ''), 'id' => 'shipping_city', 'required' => true]) !!} + @if ($errors->has('shipping_city')) + + @endif +
    +
    +
    +
    + + {!! Form::text('shipping_phone', '', ['class' => 'form-control ' . ($errors->has('shipping_phone') ? 'error' : ''), 'id' => 'shipping_phone']) !!} + @if ($errors->has('shipping_phone')) + + @endif +
    +
    +
    \ No newline at end of file diff --git a/resources/views/web/promotion/_promotion_cart.blade.php b/resources/views/web/promotion/_promotion_cart.blade.php new file mode 100644 index 0000000..f04ad3a --- /dev/null +++ b/resources/views/web/promotion/_promotion_cart.blade.php @@ -0,0 +1,103 @@ +
    +
    +
    +

    Warenkorb

    +
    +
    +
    +
    +
     
    +
    +
    +
    +
    + Artikel +
    +
    + Einzelpreis +
    +
    + Anzahl/Preis +
    +
    +
    +
    +
    + @foreach ([2, 4, 5] as $id) + @php($product = \App\Models\Product::find($id)) +
    + +
    + @if ($product->images) + @if($image = $product->images->first()) + + @endif + @else + + @endif +
    + +
    +
    +
    +
    +
    {{ $product->name }} +
    +
    +
    Inhalt: {{ $product->contents }}
    +
    Art.-Nr.: {{ $product->number }}
    +
    +
    + +
    + +
    +
    + {{ $product->getFormattedPrice() }} €*
    +
    + +
    +
    + + +
    +
    +
    + 0 €* +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    + @endforeach +
    +
    + +
    +
    +

    Du hast xx Artikel in Deinem Warenkorb

    + +
    +
    +
    +
    \ No newline at end of file diff --git a/resources/views/web/promotion/_reminder_service.blade.php b/resources/views/web/promotion/_reminder_service.blade.php new file mode 100644 index 0000000..6695568 --- /dev/null +++ b/resources/views/web/promotion/_reminder_service.blade.php @@ -0,0 +1,112 @@ +
    +

    OH Nein ... alle Tester sind bereits vergriffen!

    +

    ERINNERUNGS-SERVICE:
    + text ...

    +
    +
    +
    +
    +
    + + +
    + @if ($errors->has('billing_salutation')) + + @endif +
    +
    +
    +
    + + {!! Form::text('firstname', '', ['class' => 'form-control ' . ($errors->has('firstname') ? 'error' : ''), 'id' => 'firstname', 'required' => true]) !!} + @if ($errors->has('firstname')) + + @endif +
    +
    +
    +
    + + {!! Form::text('lastname', '', ['class' => 'form-control ' . ($errors->has('lastname') ? 'error' : ''), 'id' => 'lastname', 'required' => true]) !!} + @if ($errors->has('lastname')) + + @endif +
    +
    + +
    +
    + + {!! Form::text('zipcode', '', ['class' => 'form-control ' . ($errors->has('zipcode') ? 'error' : ''), 'id' => 'zipcode', 'required' => true]) !!} + @if ($errors->has('zipcode')) + + @endif +
    +
    +
    +
    + + {!! Form::text('city', '', ['class' => 'form-control ' . ($errors->has('city') ? 'error' : ''), 'id' => 'city', 'required' => true]) !!} + @if ($errors->has('city')) + + @endif +
    +
    +
    +
    + + {!! Form::email('email', '', ['class' => 'form-control ' . ($errors->has('email') ? 'error' : ''), 'id' => 'email', 'required' => true]) !!} + @if ($errors->has('email')) + + @endif + Aus Sicherheitsgründen erhälst du eine E-Mail als Bestätigung, die Du über einen Link bestätigen musst. + +
    +
    +
    +
    + +
    +
    +
    + {!! Form::hidden("action", "submit-reminder-service") !!} + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/resources/views/web/promotion/_shipping.blade.php b/resources/views/web/promotion/_shipping.blade.php new file mode 100644 index 0000000..6b35967 --- /dev/null +++ b/resources/views/web/promotion/_shipping.blade.php @@ -0,0 +1,49 @@ +
    +
    +
    +

    Wähle Deine Versandart

    +
    + + + +
    +
    +
    +
    +

    Kontakt & Abholadresse

    + {!! nl2br($promotion_user->user_address) !!} +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/resources/views/web/promotion/_shop_products.blade.php b/resources/views/web/promotion/_shop_products.blade.php new file mode 100644 index 0000000..770ed8a --- /dev/null +++ b/resources/views/web/promotion/_shop_products.blade.php @@ -0,0 +1,57 @@ +
    +

    zusätzlich Einkaufen

    +

    Vielleicht sagt...
    + * Preis inkl. gesetzl. MwSt. | zzgl. Versandkosten +

    +
    +
    + @foreach ($shop_products as $product) +
    +
    + @if ($product->images) + @if ($image = $product->images->first()) + + @endif + @endif +

    + {{ $product->name }} +

    +
    + {{ substr_ellipsis($product->description, 110, true) }} +
    + +
    + {{ $product->getFormattedPrice() }} €* +
    +
    + +
    + + + + +   Cart + + +
    +
    + @endforeach +
    +
    +
    +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/resources/views/web/promotion/_show_around.blade.php b/resources/views/web/promotion/_show_around.blade.php new file mode 100644 index 0000000..83b3e7a --- /dev/null +++ b/resources/views/web/promotion/_show_around.blade.php @@ -0,0 +1,51 @@ +
    +

    Schau Dich gerne noch etwas um ...

    +
    +
    + +

    + Bio Deocremes +

    +
    + Nachhaltigkeit ohne … +
    + +
    + +
    + +

    + Bio Aloe Vera +

    +
    + Nachhaltigkeit ohne … +
    + +
    +
    + +

    + Verantwortung +

    +
    + Nachhaltigkeit ohne … +
    + +
    +
    +
    diff --git a/resources/views/web/promotion/index.blade.php b/resources/views/web/promotion/index.blade.php new file mode 100755 index 0000000..aae673d --- /dev/null +++ b/resources/views/web/promotion/index.blade.php @@ -0,0 +1,158 @@ +@extends('web.layouts.layout') + +@section('content') + + @if ($errors->any()) +
    +
    +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    +
    +
    + @endif + + + {!! Form::open(['url' => route('web_promotion_store', $promotion_user->id), 'class' => 'form-horizontal form-prevent-multiple-submits', 'id' => 'user-promotion-form-validations']) !!} +
    + @include('web.promotion._intro') + +
    + @include('web.promotion._free_product') + + @include('web.promotion._shop_products') + + @include('web.promotion._shipping') + + @include('web.promotion._fairplay') + + @include('web.promotion._promotion_cart') + +
    +
    +
    + @include('web.promotion._invoice_details') + +
    +
    + @include('web.promotion._checkout') + +
    +
    +
    +
    +
    + {!! Form::close() !!} + + + + +@endsection diff --git a/resources/views/web/promotion/outofstock.blade.php b/resources/views/web/promotion/outofstock.blade.php new file mode 100644 index 0000000..aa21d55 --- /dev/null +++ b/resources/views/web/promotion/outofstock.blade.php @@ -0,0 +1,84 @@ +@extends('web.layouts.layout') + +@section('content') + + @if ($errors->any()) +
    +
    +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    +
    +
    + @endif + + + {!! Form::open(['url' => route('web_promotion_store', $promotion_user->id), 'class' => 'form-horizontal form-prevent-multiple-submits', 'id' => 'user-reminder-form-validations']) !!} + +
    + @include('web.promotion._intro') + +
    + @include('web.promotion._reminder_service') + + @include('web.promotion._show_around') +
    +
    + {!! Form::close() !!} + + + + +@endsection diff --git a/resources/views/web/promotion/show_product.blade.php b/resources/views/web/promotion/show_product.blade.php new file mode 100644 index 0000000..19fc6ed --- /dev/null +++ b/resources/views/web/promotion/show_product.blade.php @@ -0,0 +1,137 @@ + \ No newline at end of file diff --git a/resources/views/web/promotion/thanksorder.blade.php b/resources/views/web/promotion/thanksorder.blade.php new file mode 100644 index 0000000..1e0bc8b --- /dev/null +++ b/resources/views/web/promotion/thanksorder.blade.php @@ -0,0 +1,51 @@ +@extends('web.layouts.layout') + +@section('content') + + @if ($errors->any()) +
    +
    +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    +
    +
    + @endif + + {!! Form::open(['url' => route('web_promotion_store', $promotion_user->id), 'class' => 'form-horizontal form-prevent-multiple-submits', 'id' => 'user-promotion-form-validations']) !!} + +
    + +
    + +
    +
    + {{-- --}} +
    +

    Super, geschafft!

    +

    + Ich danke Dir .. +

    +

    Liebe Grüße,
    {{ $promotion_user->user->getFullName() }}
    Vertriebspartner:in der GRÜNEN SEELE Naturkosmetik

    +
    +
    +
    +
    +
    +
    + @include('web.promotion._show_around') +
    +
    + {!! Form::close() !!} + + + + +@endsection diff --git a/resources/views/web/promotion/thanksreminder.blade.php b/resources/views/web/promotion/thanksreminder.blade.php new file mode 100644 index 0000000..ff0b797 --- /dev/null +++ b/resources/views/web/promotion/thanksreminder.blade.php @@ -0,0 +1,54 @@ +@extends('web.layouts.layout') + +@section('content') + + @if ($errors->any()) +
    +
    +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    +
    +
    + @endif + + {!! Form::open(['url' => route('web_promotion_store', $promotion_user->id), 'class' => 'form-horizontal form-prevent-multiple-submits', 'id' => 'user-promotion-form-validations']) !!} + +
    + +
    + +
    +
    + {{-- --}} +
    +

    Super, geschafft!

    +

    + Wir werden dich infomieren .... +

    +

    Liebe Grüße,
    {{ $promotion_user->user->getFullName() }}
    Vertriebspartner:in der GRÜNEN SEELE Naturkosmetik

    +
    +
    +
    + +
    +
    +
    + + + @include('web.promotion._show_around') +
    +
    + {!! Form::close() !!} + + + + +@endsection diff --git a/routes/web.php b/routes/web.php index 7140d44..295d6ee 100644 --- a/routes/web.php +++ b/routes/web.php @@ -12,28 +12,6 @@ use Illuminate\Support\Facades\Route; | contains the "web" middleware group. Now create something great! | */ - - - -Auth::routes(); -Route::get('/logout', function(){ - Auth::logout(); - return Redirect::to('login'); -})->name('logout'); - -/* -Route::get('storage/images/{from}/{slug}', function($from = null, $slug = null) { - if ($from == 'shop'){ - $image = \App\Models\UserShop::where('filename', $slug)->first(); - $path = storage_path('app/public').'/images/shop'.'/'.$image->filename; - if (file_exists($path)) { - return Response::file($path); - } - } - -})->name('storage_images'); -*/ - Route::get('/product/image/{slug}', function($slug = null) { if($image = \App\Models\ProductImage::where('slug', $slug)->first()){ @@ -46,6 +24,14 @@ Route::get('/product/image/{slug}', function($slug = null) })->name('product_image'); +Route::get('/response/file/{disk}/{slug}', function($disk = null, $slug = null) +{ + $path = \Storage::disk($disk)->path(str_replace('_', '/', $slug)); + if (file_exists($path)) { + return Response::file($path); + } +})->name('response_file'); + Route::get('/iq/image/{slug}', function($slug = null) { if($image = \App\Models\IqImage::where('slug', $slug)->first()){ @@ -67,345 +53,327 @@ Route::get('locale/{locale}', function ($locale) { return redirect()->back(); })->name('locale'); +Route::domain(config('app.domain'))->group(function () { + + Auth::routes(); + Route::get('/logout', function(){ + Auth::logout(); + return Redirect::to('login'); + })->name('logout'); -Route::post('/user_register', 'Web\RegisterController@register')->name('user_register'); -Route::get('/user_register/finish', 'Web\RegisterController@finish')->name('user_register_finish'); -Route::get('/register/verify/{confirmationCode}', 'HomeController@verify')->name('register_verify'); -Route::get('/reg/{member_id?}', 'Web\RegisterController@member')->name('register_user_member'); + Route::post('/user_register', 'Web\RegisterController@register')->name('user_register'); + Route::get('/user_register/finish', 'Web\RegisterController@finish')->name('user_register_finish'); + Route::get('/register/verify/{confirmationCode}', 'HomeController@verify')->name('register_verify'); + Route::get('/reg/{member_id?}', 'Web\RegisterController@member')->name('register_user_member'); -Route::get('/status/register', 'HomeController@statusRegister')->name('status_register'); -Route::get('/status/verify', 'HomeController@statusVerify')->name('status_verify'); -Route::get('/status/error', 'HomeController@statusError')->name('status_error'); -Route::get('/status/not/found', 'HomeController@notFound')->name('not_found'); + Route::get('/status/register', 'HomeController@statusRegister')->name('status_register'); + Route::get('/status/verify', 'HomeController@statusVerify')->name('status_verify'); + Route::get('/status/error', 'HomeController@statusError')->name('status_error'); + Route::get('/status/not/found', 'HomeController@notFound')->name('not_found'); -Route::post('/loading/modal', 'HomeController@loadingModal')->name('loading_modal'); + Route::post('/loading/modal', 'HomeController@loadingModal')->name('loading_modal'); -Route::post('/user/check/mail', 'HomeController@checkMail')->name('user_check_mail'); + Route::post('/user/check/mail', 'HomeController@checkMail')->name('user_check_mail'); -Route::get('/', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); + Route::get('/', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); -Route::get('/cron/jobs/action/{action}/{key}', 'CronController@action')->name('cron_jobs_action'); + Route::get('/cron/jobs/action/{action}/{key}', 'CronController@action')->name('cron_jobs_action'); -Route::get('/user/update_email_confirm/{token}', 'UserUpdateEmailController@activateMail')->name('user_update_email_confirm'); + Route::get('/user/update_email_confirm/{token}', 'UserUpdateEmailController@activateMail')->name('user_update_email_confirm'); -/* AUTH */ -Route::group(['middleware' => ['auth']], function() { - Route::get('/user_blocked', 'HomeController@blocked')->name('user_blocked'); - Route::get('/wizard-create', 'WizardController@create')->name('wizard_create'); - Route::get('/wizard-register', 'WizardController@register')->name('wizard_register'); + /* AUTH */ + Route::group(['middleware' => ['auth']], function() { + Route::get('/user_blocked', 'HomeController@blocked')->name('user_blocked'); + Route::get('/wizard-create', 'WizardController@create')->name('wizard_create'); + Route::get('/wizard-register', 'WizardController@register')->name('wizard_register'); - Route::post('/wizard/store/create/{step?}', 'WizardController@storeCreate')->name('wizard_store_create'); - Route::post('/wizard/store/register/{step?}', 'WizardController@storeRegister')->name('wizard_store_register'); + Route::post('/wizard/store/create/{step?}', 'WizardController@storeCreate')->name('wizard_store_create'); + Route::post('/wizard/store/register/{step?}', 'WizardController@storeRegister')->name('wizard_store_register'); - Route::get('/wizard/payment', 'WizardController@payment')->name('wizard_payment'); - Route::post('/wizard/store/payment/{step?}', 'WizardController@storePayment')->name('wizard_store_payment'); + Route::get('/wizard/payment', 'WizardController@payment')->name('wizard_payment'); + Route::post('/wizard/store/payment/{step?}', 'WizardController@storePayment')->name('wizard_store_payment'); - Route::get('/wizard/delete/file/{id}/{relation}', 'WizardController@delete')->name('wizard_delete_file'); + Route::get('/wizard/delete/file/{id}/{relation}', 'WizardController@delete')->name('wizard_delete_file'); - Route::get('/storage/file/{id}/{disk}/{do?}', 'FileController@show')->name('storage_file'); -}); + Route::get('/storage/file/{id}/{disk}/{do?}', 'FileController@show')->name('storage_file'); + }); -/* AUTH user*/ -Route::group(['middleware' => ['auth:user']], function() { + /* AUTH user*/ + Route::group(['middleware' => ['auth:user']], function() { - Route::get('storage/{type?}/{file?}', function($type = null, $file = null) + Route::get('storage/{type?}/{file?}', function($type = null, $file = null) + { + if($type == 'xls'){ + $path = storage_path("app/export/"); + $filename = $file.'.xls'; + } + + if (file_exists($path.$filename)) { + return Response::download($path.$filename, $filename); + } + })->name('storage'); + + Route::get('/home', 'HomeController@show')->name('home'); + Route::post('/modal/load', 'ModalController@load')->name('modal_load'); + + Route::get('/user/edit', 'UserDataController@userEdit')->name('user_edit'); + Route::post('/user/edit', 'UserDataController@userEditStore')->name('user_edit'); + Route::post('/user/data/store', 'UserDataController@userDataStore')->name('user_data_store'); + + Route::get('/user/profile', 'UserDataController@userProfile')->name('user_profile'); + Route::post('/user/profile', 'UserDataController@userProfileStore')->name('user_profile'); + Route::post('/user/profile/image/upload', 'UserDataController@imageUpload')->name('user_profile_image_upload'); + Route::get('/user/profile/image/delete/{image_id}', 'UserDataController@imageDelete')->name('user_profile_image_delete'); + + Route::get('/user/update_password', 'UserUpdatePasswordController@updatePassword')->name('user_update_password'); + Route::post('/user/update_password', 'UserUpdatePasswordController@updatePasswordStore')->name('user_update_password'); + + Route::get('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirst')->name('user_update_password_first'); + Route::post('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirstStore')->name('user_update_password_first'); + + Route::get('/user/update_email', 'UserUpdateEmailController@index')->name('user_update_email'); + Route::post('/user/update_email', 'UserUpdateEmailController@update')->name('user_update_email'); + + Route::get('/user/delete_account', 'UserDeleteController@deleteAccount')->name('user_delete_account'); + Route::post('/user/delete_account', 'UserDeleteController@deleteAccountAction')->name('user_delete_account'); + + Route::post('/user/data/accepted/form', 'UserDataController@userDataAcceptedForm')->name('user_data_accepted_form'); + + Route::get('/user/data/free', 'UserDataController@userDataFree')->name('user_data_free'); + Route::post('/user/data/free/form', 'UserDataController@userDataFreeForm')->name('user_data_free_form'); + + + //user shop Sales + Route::get('/user/shop/orders', 'User\ShopSalesController@orders')->name('user_shop_orders'); + Route::get('/user/shop/order/detail/{id}', 'User\ShopSalesController@orderDetail')->name('user_shop_order_detail'); + Route::get('/user/shop/orders/datatable', 'User\ShopSalesController@ordersDatatable')->name('user_shop_orders_datatable'); + + //user team + Route::get('/user/team/members', 'User\TeamController@members')->name('user_team_members'); + + //user customers + Route::get('/user/customers', 'User\CustomerController@index')->name('user_customers'); + Route::get('/user/customer/detail/{id}', 'User\CustomerController@detail')->name('user_customer_detail'); + Route::get('/user/customer/edit/{id}', 'User\CustomerController@edit')->name('user_customer_edit'); + Route::get('/user/customer/add/{id}/{step?}', 'User\CustomerController@add')->name('user_customer_add'); + Route::post('/user/customer/edit/{id}', 'User\CustomerController@store')->name('user_customer_edit'); + Route::get('/user/customer/datatable', 'User\CustomerController@getCustomers')->name('user_customer_datatable'); + + //user order & do order + Route::get('/user/orders', 'User\OrderController@index')->name('user_orders'); + Route::get('/user/orders/datatable', 'User\OrderController@ordersDatatable')->name('user_orders_datatable'); + + Route::get('/user/order/detail/{id}', 'User\OrderController@detail')->name('user_order_detail'); + + Route::get('/user/order/my/delivery/{for}/{id?}', 'User\OrderController@delivery')->name('user_order_my_delivery'); + Route::post('/user/order/my/delivery/{for}/{id?}', 'User\OrderController@delivery')->name('user_order_my_delivery'); + + Route::get('/user/order/my/list/{for}/{id?}', 'User\OrderController@list')->name('user_order_my_list'); + Route::post('/user/order/my/list/{for}/{id?}', 'User\OrderController@list')->name('user_order_my_list'); + + Route::post('/user/order/my/payment/{for}/{id?}', 'User\OrderController@payment')->name('user_order_my_payment'); + Route::get('/user/order/my/datatable', 'User\OrderController@datatable')->name('user_order_my_datatable'); + Route::post('/user/order/my/perform/request/', 'User\OrderController@performRequest')->name('user_order_my_perform_request'); + + Route::get('/user/membership', 'MembershipController@index')->name('user_membership'); + Route::post('/user/membership/store/{action}', 'MembershipController@storePayment')->name('user_membership_store'); + + + Route::get('/user/payment/paycredit', 'User\PaymentController@paycredit')->name('user_payment_paycredit'); + Route::get('/user/payment/paycredit/datatable', 'User\PaymentController@paycredit_datatable')->name('user_payment_paycredit_datatable'); + + Route::get('/user/payment/credit', 'User\PaymentController@credit')->name('user_payment_credit'); + Route::get('/user/payment/credit/datatable', 'User\PaymentController@credit_datatable')->name('user_payment_credit_datatable'); + + Route::get('/user/payment/revenue', 'User\PaymentController@revenue')->name('user_payment_revenue'); + Route::post('/user/payment/revenue', 'User\PaymentController@revenue')->name('user_payment_revenue'); + + //Route::get('/user/payment/credit/datatable', 'User\PaymentController@credit_datatable')->name('user_payment_credit_datatable'); + + Route::get('/user/checkout/{identifier?}', 'User\CheckoutController@checkout')->name('user_checkout'); + Route::post('/user/checkout_store/{identifier?}', 'User\CheckoutController@store')->name('user_checkout_store'); + Route::get('/user/checkout_final/{payid}/{reference}/{identifier?}', 'User\CheckoutController@final')->name('user_checkout_final'); + + Route::get('/user/promotions', 'User\PromotionController@index')->name('user_promotions'); + Route::get('/user/promotion/detail/{id}', 'User\PromotionController@detail')->name('user_promotion_detail'); + Route::post('/user/promotion/detail/{id}', 'User\PromotionController@store')->name('user_promotion_detail'); + Route::post('/user/promotion/load', 'User\PromotionController@load')->name('user_promotion_load'); + Route::get('/user/promotion/delete/{id}/{del?}', 'User\PromotionController@delete')->name('user_promotion_delete'); + + }); + + Route::group(['middleware' => ['admin']], function() { - if($type == 'xls'){ - $path = storage_path("app/export/"); - $filename = $file.'.xls'; - } + //translate + Route::get('/admin/translate/all', 'TranslationController@index')->name('admin_translate_all'); + Route::get('/admin/translate/all/edit/{lang}/{from?}', 'TranslationController@edit')->name('admin_translate_all_edit'); + Route::post('/admin/translate/all/update/{lang}/{from?}', 'TranslationController@update')->name('admin_translate_all_update'); - if (file_exists($path.$filename)) { - return Response::download($path.$filename, $filename); - } - })->name('storage'); + Route::get('/admin/translate/file', 'TranslationFileController@index')->name('admin_translate_file'); + Route::get('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@edit')->name('admin_translate_file_edit'); + Route::post('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@update')->name('admin_translate_file_update'); - Route::get('/home', 'HomeController@show')->name('home'); - Route::post('/modal/load', 'ModalController@load')->name('modal_load'); - - Route::get('/user/edit', 'UserDataController@userEdit')->name('user_edit'); - Route::post('/user/edit', 'UserDataController@userEditStore')->name('user_edit'); - Route::post('/user/data/store', 'UserDataController@userDataStore')->name('user_data_store'); - - Route::get('/user/update_password', 'UserUpdatePasswordController@updatePassword')->name('user_update_password'); - Route::post('/user/update_password', 'UserUpdatePasswordController@updatePasswordStore')->name('user_update_password'); - - Route::get('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirst')->name('user_update_password_first'); - Route::post('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirstStore')->name('user_update_password_first'); - - Route::get('/user/update_email', 'UserUpdateEmailController@index')->name('user_update_email'); - Route::post('/user/update_email', 'UserUpdateEmailController@update')->name('user_update_email'); - - Route::get('/user/delete_account', 'UserDeleteController@deleteAccount')->name('user_delete_account'); - Route::post('/user/delete_account', 'UserDeleteController@deleteAccountAction')->name('user_delete_account'); - - Route::post('/user/data/accepted/form', 'UserDataController@userDataAcceptedForm')->name('user_data_accepted_form'); - - Route::get('/user/data/free', 'UserDataController@userDataFree')->name('user_data_free'); - Route::post('/user/data/free/form', 'UserDataController@userDataFreeForm')->name('user_data_free_form'); + //site + Route::get('/admin/sites/{site}', 'SitesController@show')->name('admin_sites'); + Route::post('/admin/sites/store/{site}', 'SitesController@store')->name('admin_sites_store'); + Route::post('/admin/sites/image/upload/{site}', 'SitesController@imageUpload')->name('admin_sites_image_upload'); + Route::get('/admin/sites/image/delete/{site}/{image_id}', 'SitesController@imageDelete')->name('admin_sites_image_delete'); + Route::get('/admin/sites/image/attribute/{site}/{image_id}/{attr}/{val}', 'SitesController@imageAttribute')->name('admin_sites_image_attribute'); - //user shop Sales - Route::get('/user/shop/orders', 'User\ShopSalesController@orders')->name('user_shop_orders'); - Route::get('/user/shop/order/detail/{id}', 'User\ShopSalesController@orderDetail')->name('user_shop_order_detail'); - Route::get('/user/shop/orders/datatable', 'User\ShopSalesController@ordersDatatable')->name('user_shop_orders_datatable'); + //products + Route::get('/admin/product/show', 'ProductController@index')->name('admin_product_show'); + Route::post('/admin/product/store', 'ProductController@store')->name('admin_product_store'); + Route::get('/admin/product/edit/{id}', 'ProductController@edit')->name('admin_product_edit'); + Route::get('/admin/product/copy/{id}', 'ProductController@copy')->name('admin_product_copy'); + Route::get('/admin/product/delete/{id}/{do?}/{did?}', 'ProductController@delete')->name('admin_product_delete'); + //products images + Route::post('/admin/product/image/upload', 'ProductController@imageUpload')->name('admin_product_image_upload'); + Route::get('/admin/product/image/delete/{image_id}/{product_id}', 'ProductController@imageDelete')->name('admin_product_image_delete'); + Route::get('/admin/product/image/attribute/{image_id}/{attr}/{val}', 'ProductController@imageAttribute')->name('admin_product_image_attribute'); - //user team - Route::get('/user/team/members', 'User\TeamController@members')->name('user_team_members'); + //products categories + Route::get('/admin/product/categories', 'CategoryController@index')->name('admin_product_categories'); + Route::get('/admin/product/category/edit/{id}', 'CategoryController@edit')->name('admin_product_category_edit'); + Route::post('/admin/product/category/store', 'CategoryController@store')->name('admin_product_category_store'); + Route::get('/admin/product/category/delete/{id}', 'CategoryController@delete')->name('admin_product_category_delete'); - //user customers - Route::get('/user/customers', 'User\CustomerController@index')->name('user_customers'); - Route::get('/user/customer/detail/{id}', 'User\CustomerController@detail')->name('user_customer_detail'); - Route::get('/user/customer/edit/{id}', 'User\CustomerController@edit')->name('user_customer_edit'); - Route::get('/user/customer/add/{id}/{step?}', 'User\CustomerController@add')->name('user_customer_add'); - Route::post('/user/customer/edit/{id}', 'User\CustomerController@store')->name('user_customer_edit'); - Route::get('/user/customer/datatable', 'User\CustomerController@getCustomers')->name('user_customer_datatable'); + //products categories + Route::get('/admin/product/ingredients', 'IngredientController@index')->name('admin_product_ingredients'); + Route::get('/admin/product/ingredient/edit/{id}', 'IngredientController@edit')->name('admin_product_ingredient_edit'); + Route::post('/admin/product/ingredient/store', 'IngredientController@store')->name('admin_product_ingredient_store'); + Route::get('/admin/product/ingredient/delete/{id}', 'IngredientController@delete')->name('admin_product_ingredient_delete'); - //user order & do order - Route::get('/user/orders', 'User\OrderController@index')->name('user_orders'); - Route::get('/user/orders/datatable', 'User\OrderController@ordersDatatable')->name('user_orders_datatable'); - - Route::get('/user/order/detail/{id}', 'User\OrderController@detail')->name('user_order_detail'); - - Route::get('/user/order/my/delivery/{for}/{id?}', 'User\OrderController@delivery')->name('user_order_my_delivery'); - Route::post('/user/order/my/delivery/{for}/{id?}', 'User\OrderController@delivery')->name('user_order_my_delivery'); - - Route::get('/user/order/my/list/{for}/{id?}', 'User\OrderController@list')->name('user_order_my_list'); - Route::post('/user/order/my/list/{for}/{id?}', 'User\OrderController@list')->name('user_order_my_list'); - - Route::post('/user/order/my/payment/{for}/{id?}', 'User\OrderController@payment')->name('user_order_my_payment'); - Route::get('/user/order/my/datatable', 'User\OrderController@datatable')->name('user_order_my_datatable'); - Route::post('/user/order/my/perform/request/', 'User\OrderController@performRequest')->name('user_order_my_perform_request'); - - Route::get('/user/membership', 'MembershipController@index')->name('user_membership'); - Route::post('/user/membership/store/{action}', 'MembershipController@storePayment')->name('user_membership_store'); + //products images + Route::post('/admin/product/category/image/upload', 'CategoryController@imageUpload')->name('admin_product_category_image_upload'); + Route::get('/admin/product/category/image/delete{image_id}/{category_id}', 'CategoryController@imageDelete')->name('admin_product_category_image_delete'); + Route::get('/admin/product/category/image/attribute/{image_id}/{attr}/{val}', 'CategoryController@imageAttribute')->name('admin_product_category_image_attribute'); - Route::get('/user/payment/paycredit', 'User\PaymentController@paycredit')->name('user_payment_paycredit'); - Route::get('/user/payment/paycredit/datatable', 'User\PaymentController@paycredit_datatable')->name('user_payment_paycredit_datatable'); + //products attributes + Route::get('/admin/product/attributes', 'AttributeController@index')->name('admin_product_attributes'); + Route::post('/admin/product/attribute/store', 'AttributeController@store')->name('admin_product_attribute_store'); + Route::get('/admin/product/attribute/delete/{id}', 'AttributeController@delete')->name('admin_product_attribute_delete'); - Route::get('/user/payment/credit', 'User\PaymentController@credit')->name('user_payment_credit'); - Route::get('/user/payment/credit/datatable', 'User\PaymentController@credit_datatable')->name('user_payment_credit_datatable'); - Route::get('/user/payment/revenue', 'User\PaymentController@revenue')->name('user_payment_revenue'); - Route::post('/user/payment/revenue', 'User\PaymentController@revenue')->name('user_payment_revenue'); + //Route::get('/admin/products/import', 'ImportProductController@import')->name('admin_product_import'); - //Route::get('/user/payment/credit/datatable', 'User\PaymentController@credit_datatable')->name('user_payment_credit_datatable'); - - Route::get('/user/checkout/{identifier?}', 'User\CheckoutController@checkout')->name('user_checkout'); - Route::post('/user/checkout_store/{identifier?}', 'User\CheckoutController@store')->name('user_checkout_store'); - Route::get('/user/checkout_final/{payid}/{reference}/{identifier?}', 'User\CheckoutController@final')->name('user_checkout_final'); + //leads + Route::get('/admin/leads', 'LeadController@index')->name('admin_leads'); + Route::get('/admin/lead/edit/{id}', 'LeadController@edit')->name('admin_lead_edit'); + Route::post('/admin/lead/edit/{id}', 'LeadController@editPost')->name('admin_lead_edit'); - Route::get('/user/promotions', 'User\PromotionController@index')->name('user_promotions'); - Route::get('/user/promotion/detail/{id}', 'User\PromotionController@detail')->name('user_promotion_detail'); - Route::post('/user/promotion/detail/{id}', 'User\PromotionController@store')->name('user_promotion_detail'); - Route::post('/user/promotion/load', 'User\PromotionController@load')->name('user_promotion_load'); - Route::get('/user/promotion/delete/{id}/{del?}', 'User\PromotionController@delete')->name('user_promotion_delete'); + //customers + Route::get('/admin/customers', 'CustomerController@index')->name('admin_customers'); + Route::get('/admin/customer/detail/{id}', 'CustomerController@detail')->name('admin_customer_detail'); + Route::get('/admin/customer/edit/{id}', 'CustomerController@edit')->name('admin_customer_edit'); + Route::post('/admin/customer/edit/{id}', 'CustomerController@store')->name('admin_customer_edit'); + Route::get('/admin/customer/datatable', 'CustomerController@getCustomers')->name('admin_customer_datatable'); + Route::get('/admin/lead/change_mail/{id}', 'UserUpdateEmailController@adminChangeMail')->name('admin_lead_change_mail'); + Route::post('/admin/lead/change_mail/{id}', 'UserUpdateEmailController@adminUpdateMail')->name('admin_lead_change_mail'); + Route::get('/admin/lead/new_mail/verified/{id}', 'LeadController@newMailVerified')->name('admin_lead_new_mail_verified'); + Route::get('/admin/lead/released/{action}/{id}', 'LeadController@released')->name('admin_lead_released'); + Route::post('/admin/lead/released/{action}/{id}', 'LeadController@released')->name('admin_lead_released'); + + Route::get('/admin/lead/delete/file/{user_id}/{file_id}/{relation}', 'LeadController@deleteFile')->name('admin_lead_delete_file'); + + Route::post('/admin/lead/store', 'LeadController@store')->name('admin_lead_store'); + Route::get('/admin/leads/datatable', 'LeadController@getLeads')->name('admin_leads_datatable'); + + //sales + Route::get('/admin/sales/users', 'SalesController@users')->name('admin_sales_users'); + Route::get('/admin/sales/users/detail/{id}', 'SalesController@usersDetail')->name('admin_sales_users_detail'); + Route::post('/admin/sales/users/detail/{id}', 'SalesController@usersStore')->name('admin_sales_users_detail'); + Route::get('/admin/sales/users/datatable', 'SalesController@usersDatatable')->name('admin_sales_users_datatable'); + + Route::get('/admin/sales/customers', 'SalesController@customers')->name('admin_sales_customers'); + Route::get('/admin/sales/customers/detail/{id}', 'SalesController@customersDetail')->name('admin_sales_customers_detail'); + Route::post('/admin/sales/customers/detail/{id}', 'SalesController@customersStore')->name('admin_sales_customers_detail'); + Route::get('/admin/sales/customers/datatable', 'SalesController@customersDatatable')->name('admin_sales_customers_datatable'); + + Route::post('/admin/sales/store', 'SalesController@store')->name('admin_sales_store'); + Route::post('/admin/sales/invoice', 'SalesController@invoice')->name('admin_sales_invoice'); + + //payments + Route::get('/admin/payments/credit', 'PaymentCreditController@index')->name('admin_payments_credit'); + Route::post('/admin/payments/credit', 'PaymentCreditController@store')->name('admin_payments_credit'); + Route::get('/admin/payments/credit/datatable', 'PaymentCreditController@datatable')->name('admin_payments_credit_datatable'); + Route::post('/admin/payments/credit/create', 'PaymentCreditController@create')->name('admin_payments_credit_create'); + Route::get('/admin/payments/credit/delete/{id}/{del?}', 'PaymentCreditController@delete')->name('admin_payments_credit_delete'); + + + Route::get('/admin/payments/paycredit', 'PaymentPayCreditController@index')->name('admin_payments_paycredit'); + Route::post('/admin/payments/paycredit', 'PaymentPayCreditController@store')->name('admin_payments_paycredit'); + Route::get('/admin/payments/paycredit/datatable', 'PaymentPayCreditController@datatable')->name('admin_payments_paycredit_datatable'); + Route::get('/admin/payments/paycredit/delete/{id}', 'PaymentPayCreditController@delete')->name('admin_payments_paycredit_delete'); + + Route::get('/admin/payments/invoice', 'PaymentInvoiceController@index')->name('admin_payments_invoice'); + Route::post('/admin/payments/invoice', 'PaymentInvoiceController@index')->name('admin_payments_invoice'); + Route::get('/admin/payments/invoice/datatable', 'PaymentInvoiceController@datatable')->name('admin_payments_invoice_datatable'); + + Route::get('/admin/promotions', 'AdminPromotionController@index')->name('admin_promotions'); + Route::get('/admin/promotion/detail/{id}', 'AdminPromotionController@detail')->name('admin_promotion_detail'); + Route::post('/admin/promotion/detail/{id}', 'AdminPromotionController@store')->name('admin_promotion_detail'); + Route::get('/admin/promotion/delete/{id}/{del?}', 'AdminPromotionController@delete')->name('admin_promotion_delete'); + Route::get('/admin/promotion/show/{by}/{id?}', 'AdminPromotionController@show')->name('admin_promotion_show'); + Route::get('/admin/promotion/datatable/{by}/{id?}', 'AdminPromotionController@datatable')->name('admin_promotion_datatable'); + + }); + + //login pages for superadmin + Route::group(['middleware' => ['superadmin']], function() { + //leads + Route::get('/admin/users', 'AdminUserController@index')->name('admin_users'); + Route::get('/admin/user/edit/{user_id}', 'AdminUserController@edit')->name('admin_user_edit'); + Route::post('/admin/user/store', 'AdminUserController@store')->name('admin_user_store'); + Route::get('/admin/user/delete/{user_id}', 'AdminUserController@deleteUser')->name('admin_user_delete'); + Route::get('/admin/user/login_as/{userId?}', 'AdminUserController@userLoginAs')->name('admin_user_login_as'); + + + Route::get('/admin/shippings', 'ShippingController@index')->name('admin_shippings'); + Route::get('/admin/shipping/edit/{shipping_id}', 'ShippingController@edit')->name('admin_shipping_edit'); + Route::post('/admin/shipping/store', 'ShippingController@store')->name('admin_shipping_store'); + Route::get('/admin/shipping/delete/{shipping_id}', 'ShippingController@deleteShipping')->name('admin_shipping_delete'); + Route::get('/admin/shipping/price/delete/{price_id}', 'ShippingController@deletePrice')->name('admin_shipping_price_delete'); + Route::get('/admin/shipping/country/delete/{price_id}', 'ShippingController@deleteCountry')->name('admin_shipping_country_delete'); + + Route::get('data_table', 'DataTableController@datatable')->name('data_table'); + // Route::get('datatables/leads', 'DataTableController@getLeads')->name('datatables-leads'); + Route::get('data/table/users', 'DataTableController@getUsers')->name('data_table_users'); + + Route::get('/admin/payment_methods', 'PaymentMethodController@index')->name('admin_payment_methods'); + Route::post('/admin/payment_method/store', 'PaymentMethodController@store')->name('admin_payment_method_store'); + + Route::get('/admin/countries', 'CountryController@index')->name('admin_countries'); + Route::get('/admin/country/edit/{id}', 'CountryController@edit')->name('admin_country_edit'); + Route::post('/admin/country/store', 'CountryController@store')->name('admin_country_store'); + + Route::get('/admin/levels', 'UserLevelController@index')->name('admin_levels'); + Route::get('/admin/level/edit/{id}', 'UserLevelController@edit')->name('admin_level_edit'); + Route::post('/admin/level/store', 'UserLevelController@store')->name('admin_level_store'); + Route::get('/admin/level/delete/{do}/{id}', 'UserLevelController@delete')->name('admin_level_delete'); + + + Route::get('/admin/settings', 'SettingController@index')->name('admin_settings'); + Route::post('/admin/setting/store', 'SettingController@store')->name('admin_setting_store'); + + }); + + //login pages for sysadmin + Route::group(['middleware' => ['sysadmin']], function() { + Route::get('/sysadmin/tools/{action}', 'SyS\AdminToolsController@index')->name('sysadmin_tools'); + Route::post('/sysadmin/tools/{action}', 'SyS\AdminToolsController@store')->name('sysadmin_tools'); + }); }); -Route::group(['middleware' => ['admin']], function() -{ - //translate - Route::get('/admin/translate/all', 'TranslationController@index')->name('admin_translate_all'); - Route::get('/admin/translate/all/edit/{lang}/{from?}', 'TranslationController@edit')->name('admin_translate_all_edit'); - Route::post('/admin/translate/all/update/{lang}/{from?}', 'TranslationController@update')->name('admin_translate_all_update'); - Route::get('/admin/translate/file', 'TranslationFileController@index')->name('admin_translate_file'); - Route::get('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@edit')->name('admin_translate_file_edit'); - Route::post('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@update')->name('admin_translate_file_update'); +Route::domain(config('app.promo_domain'))->group(function () { + Route::get("/", "Web\PromotionController@serve")->where('path', '.+'); + Route::post('/web/promotion/modal/load', 'Web\PromotionController@load')->name('web_promotion_modal_load'); + Route::post('/web/promotion/store/{id}', 'Web\PromotionController@store')->name('web_promotion_store'); + Route::get("/web/promotion/goto/{load}/{id}", "Web\PromotionController@goto")->name('web_promotion_goto'); + Route::get("/{path?}", "Web\PromotionController@serve")->where('path', '.+'); - //site - Route::get('/admin/sites/{site}', 'SitesController@show')->name('admin_sites'); - Route::post('/admin/sites/store/{site}', 'SitesController@store')->name('admin_sites_store'); - Route::post('/admin/sites/image/upload/{site}', 'SitesController@imageUpload')->name('admin_sites_image_upload'); - Route::get('/admin/sites/image/delete/{site}/{image_id}', 'SitesController@imageDelete')->name('admin_sites_image_delete'); - Route::get('/admin/sites/image/attribute/{site}/{image_id}/{attr}/{val}', 'SitesController@imageAttribute')->name('admin_sites_image_attribute'); - - - //products - Route::get('/admin/product/show', 'ProductController@index')->name('admin_product_show'); - Route::post('/admin/product/store', 'ProductController@store')->name('admin_product_store'); - Route::get('/admin/product/edit/{id}', 'ProductController@edit')->name('admin_product_edit'); - Route::get('/admin/product/copy/{id}', 'ProductController@copy')->name('admin_product_copy'); - Route::get('/admin/product/delete/{id}/{do?}/{did?}', 'ProductController@delete')->name('admin_product_delete'); - //products images - Route::post('/admin/product/image/upload', 'ProductController@imageUpload')->name('admin_product_image_upload'); - Route::get('/admin/product/image/delete/{image_id}/{product_id}', 'ProductController@imageDelete')->name('admin_product_image_delete'); - Route::get('/admin/product/image/attribute/{image_id}/{attr}/{val}', 'ProductController@imageAttribute')->name('admin_product_image_attribute'); - - //products categories - Route::get('/admin/product/categories', 'CategoryController@index')->name('admin_product_categories'); - Route::get('/admin/product/category/edit/{id}', 'CategoryController@edit')->name('admin_product_category_edit'); - Route::post('/admin/product/category/store', 'CategoryController@store')->name('admin_product_category_store'); - Route::get('/admin/product/category/delete/{id}', 'CategoryController@delete')->name('admin_product_category_delete'); - - //products categories - Route::get('/admin/product/ingredients', 'IngredientController@index')->name('admin_product_ingredients'); - Route::get('/admin/product/ingredient/edit/{id}', 'IngredientController@edit')->name('admin_product_ingredient_edit'); - Route::post('/admin/product/ingredient/store', 'IngredientController@store')->name('admin_product_ingredient_store'); - Route::get('/admin/product/ingredient/delete/{id}', 'IngredientController@delete')->name('admin_product_ingredient_delete'); - - //products images - Route::post('/admin/product/category/image/upload', 'CategoryController@imageUpload')->name('admin_product_category_image_upload'); - Route::get('/admin/product/category/image/delete{image_id}/{category_id}', 'CategoryController@imageDelete')->name('admin_product_category_image_delete'); - Route::get('/admin/product/category/image/attribute/{image_id}/{attr}/{val}', 'CategoryController@imageAttribute')->name('admin_product_category_image_attribute'); - - - //products attributes - Route::get('/admin/product/attributes', 'AttributeController@index')->name('admin_product_attributes'); - Route::post('/admin/product/attribute/store', 'AttributeController@store')->name('admin_product_attribute_store'); - Route::get('/admin/product/attribute/delete/{id}', 'AttributeController@delete')->name('admin_product_attribute_delete'); - - - //Route::get('/admin/products/import', 'ImportProductController@import')->name('admin_product_import'); - - //leads - Route::get('/admin/leads', 'LeadController@index')->name('admin_leads'); - Route::get('/admin/lead/edit/{id}', 'LeadController@edit')->name('admin_lead_edit'); - Route::post('/admin/lead/edit/{id}', 'LeadController@editPost')->name('admin_lead_edit'); - - //customers - Route::get('/admin/customers', 'CustomerController@index')->name('admin_customers'); - Route::get('/admin/customer/detail/{id}', 'CustomerController@detail')->name('admin_customer_detail'); - Route::get('/admin/customer/edit/{id}', 'CustomerController@edit')->name('admin_customer_edit'); - Route::post('/admin/customer/edit/{id}', 'CustomerController@store')->name('admin_customer_edit'); - Route::get('/admin/customer/datatable', 'CustomerController@getCustomers')->name('admin_customer_datatable'); - - Route::get('/admin/lead/change_mail/{id}', 'UserUpdateEmailController@adminChangeMail')->name('admin_lead_change_mail'); - Route::post('/admin/lead/change_mail/{id}', 'UserUpdateEmailController@adminUpdateMail')->name('admin_lead_change_mail'); - Route::get('/admin/lead/new_mail/verified/{id}', 'LeadController@newMailVerified')->name('admin_lead_new_mail_verified'); - Route::get('/admin/lead/released/{action}/{id}', 'LeadController@released')->name('admin_lead_released'); - Route::post('/admin/lead/released/{action}/{id}', 'LeadController@released')->name('admin_lead_released'); - - Route::get('/admin/lead/delete/file/{user_id}/{file_id}/{relation}', 'LeadController@deleteFile')->name('admin_lead_delete_file'); - - Route::post('/admin/lead/store', 'LeadController@store')->name('admin_lead_store'); - Route::get('/admin/leads/datatable', 'LeadController@getLeads')->name('admin_leads_datatable'); - - //sales - Route::get('/admin/sales/users', 'SalesController@users')->name('admin_sales_users'); - Route::get('/admin/sales/users/detail/{id}', 'SalesController@usersDetail')->name('admin_sales_users_detail'); - Route::post('/admin/sales/users/detail/{id}', 'SalesController@usersStore')->name('admin_sales_users_detail'); - Route::get('/admin/sales/users/datatable', 'SalesController@usersDatatable')->name('admin_sales_users_datatable'); - - Route::get('/admin/sales/customers', 'SalesController@customers')->name('admin_sales_customers'); - Route::get('/admin/sales/customers/detail/{id}', 'SalesController@customersDetail')->name('admin_sales_customers_detail'); - Route::post('/admin/sales/customers/detail/{id}', 'SalesController@customersStore')->name('admin_sales_customers_detail'); - Route::get('/admin/sales/customers/datatable', 'SalesController@customersDatatable')->name('admin_sales_customers_datatable'); - - Route::post('/admin/sales/store', 'SalesController@store')->name('admin_sales_store'); - Route::post('/admin/sales/invoice', 'SalesController@invoice')->name('admin_sales_invoice'); - - //payments - Route::get('/admin/payments/credit', 'PaymentCreditController@index')->name('admin_payments_credit'); - Route::post('/admin/payments/credit', 'PaymentCreditController@store')->name('admin_payments_credit'); - Route::get('/admin/payments/credit/datatable', 'PaymentCreditController@datatable')->name('admin_payments_credit_datatable'); - Route::post('/admin/payments/credit/create', 'PaymentCreditController@create')->name('admin_payments_credit_create'); - Route::get('/admin/payments/credit/delete/{id}/{del?}', 'PaymentCreditController@delete')->name('admin_payments_credit_delete'); - - - Route::get('/admin/payments/paycredit', 'PaymentPayCreditController@index')->name('admin_payments_paycredit'); - Route::post('/admin/payments/paycredit', 'PaymentPayCreditController@store')->name('admin_payments_paycredit'); - Route::get('/admin/payments/paycredit/datatable', 'PaymentPayCreditController@datatable')->name('admin_payments_paycredit_datatable'); - Route::get('/admin/payments/paycredit/delete/{id}', 'PaymentPayCreditController@delete')->name('admin_payments_paycredit_delete'); - - Route::get('/admin/payments/invoice', 'PaymentInvoiceController@index')->name('admin_payments_invoice'); - Route::post('/admin/payments/invoice', 'PaymentInvoiceController@index')->name('admin_payments_invoice'); - Route::get('/admin/payments/invoice/datatable', 'PaymentInvoiceController@datatable')->name('admin_payments_invoice_datatable'); - - Route::get('/admin/promotions', 'AdminPromotionController@index')->name('admin_promotions'); - Route::get('/admin/promotion/detail/{id}', 'AdminPromotionController@detail')->name('admin_promotion_detail'); - Route::post('/admin/promotion/detail/{id}', 'AdminPromotionController@store')->name('admin_promotion_detail'); - Route::get('/admin/promotion/delete/{id}/{del?}', 'AdminPromotionController@delete')->name('admin_promotion_delete'); - Route::get('/admin/promotion/show/{by}/{id?}', 'AdminPromotionController@show')->name('admin_promotion_show'); - Route::get('/admin/promotion/datatable/{by}/{id?}', 'AdminPromotionController@datatable')->name('admin_promotion_datatable'); - -}); - -//login pages for superadmin -Route::group(['middleware' => ['superadmin']], function() { - //leads - Route::get('/admin/users', 'AdminUserController@index')->name('admin_users'); - Route::get('/admin/user/edit/{user_id}', 'AdminUserController@edit')->name('admin_user_edit'); - Route::post('/admin/user/store', 'AdminUserController@store')->name('admin_user_store'); - Route::get('/admin/user/delete/{user_id}', 'AdminUserController@deleteUser')->name('admin_user_delete'); - Route::get('/admin/user/login_as/{userId?}', 'AdminUserController@userLoginAs')->name('admin_user_login_as'); - - - Route::get('/admin/shippings', 'ShippingController@index')->name('admin_shippings'); - Route::get('/admin/shipping/edit/{shipping_id}', 'ShippingController@edit')->name('admin_shipping_edit'); - Route::post('/admin/shipping/store', 'ShippingController@store')->name('admin_shipping_store'); - Route::get('/admin/shipping/delete/{shipping_id}', 'ShippingController@deleteShipping')->name('admin_shipping_delete'); - Route::get('/admin/shipping/price/delete/{price_id}', 'ShippingController@deletePrice')->name('admin_shipping_price_delete'); - Route::get('/admin/shipping/country/delete/{price_id}', 'ShippingController@deleteCountry')->name('admin_shipping_country_delete'); - - Route::get('data_table', 'DataTableController@datatable')->name('data_table'); - // Route::get('datatables/leads', 'DataTableController@getLeads')->name('datatables-leads'); - Route::get('data/table/users', 'DataTableController@getUsers')->name('data_table_users'); - - Route::get('/admin/payment_methods', 'PaymentMethodController@index')->name('admin_payment_methods'); - Route::post('/admin/payment_method/store', 'PaymentMethodController@store')->name('admin_payment_method_store'); - - Route::get('/admin/countries', 'CountryController@index')->name('admin_countries'); - Route::get('/admin/country/edit/{id}', 'CountryController@edit')->name('admin_country_edit'); - Route::post('/admin/country/store', 'CountryController@store')->name('admin_country_store'); - - Route::get('/admin/levels', 'UserLevelController@index')->name('admin_levels'); - Route::get('/admin/level/edit/{id}', 'UserLevelController@edit')->name('admin_level_edit'); - Route::post('/admin/level/store', 'UserLevelController@store')->name('admin_level_store'); - Route::get('/admin/level/delete/{do}/{id}', 'UserLevelController@delete')->name('admin_level_delete'); - - - Route::get('/admin/settings', 'SettingController@index')->name('admin_settings'); - Route::post('/admin/setting/store', 'SettingController@store')->name('admin_setting_store'); - -}); - -//login pages for sysadmin -Route::group(['middleware' => ['sysadmin']], function() { - - Route::get('/sysadmin/tools/{action}', 'SyS\AdminToolsController@index')->name('sysadmin_tools'); - Route::post('/sysadmin/tools/{action}', 'SyS\AdminToolsController@store')->name('sysadmin_tools'); - - /*Route::get('/sysadmin/tools/customers', 'SyS\AdminToolsController@customers')->name('sysadmin_tools_customers'); - Route::post('/sysadmin/tools/customers', 'SyS\AdminToolsController@customerStore')->name('sysadmin_tools_customers'); - - Route::get('/sysadmin/tools/domainssl', 'SyS\AdminToolsController@domainSSL')->name('sysadmin_tools_domainssl'); - Route::post('/sysadmin/tools/domainssl', 'SyS\AdminToolsController@domainSSLStore')->name('sysadmin_tools_domainssl'); - - Route::get('/sysadmin/tools/cronjobs', 'SyS\AdminToolsController@cronjobs')->name('sysadmin_tools_cronjobsl'); - Route::post('/sysadmin/tools/cronjobs', 'SyS\AdminToolsController@cronjobsStore')->name('sysadmin_tools_cronjobs'); - - Route::get('/sysadmin/tools/shopping_orders', 'SyS\AdminToolsController@shoppingOrders')->name('sysadmin_tools_shopping_orders'); - Route::post('/sysadmin/tools/shopping_orders', 'SyS\AdminToolsController@shoppingOrdersStore')->name('sysadmin_tools_shopping_orders'); - - Route::get('/sysadmin/import', 'SyS\ImportController@import')->name('sysadmin_import'); - Route::post('/sysadmin/import/store', 'SyS\ImportController@importStore')->name('sysadmin_import_store'); - Route::get('/sysadmin/import/show/{type}/{filename}/{skip?}/{limit?}', 'SyS\ImportController@importShow')->name('sysadmin_import_show'); - - Route::get('/sysadmin/settings', 'SyS\SettingController@index')->name('sysadmin_settings'); - Route::post('/sysadmin/tools/setting/store', 'SyS\SettingController@store')->name('sysadmin_setting_store');*/ -}); - -/* - * Route::group(['middleware' => ['checkout']], function() { - - Route::get('/datenschutz', 'HomeController@legalDataProtected')->name('datenschutz'); - Route::get('/impressum', 'HomeController@legalImprint')->name('impressum'); - Route::get('/datenschutz', 'HomeController@legalDataProtected')->name('data_protected'); - Route::get('/impressum', 'HomeController@legalImprint')->name('imprint'); - Route::get('/agb', 'HomeController@legalAGB')->name('agb'); - - - Route::get('/checkout/card/{identifier?}', 'Web\CheckoutController@checkout')->name('checkout.checkout_card'); - Route::post('/checkout/card/final', 'Web\CheckoutController@checkoutFinal')->name('checkout.checkout_card_final'); - - Route::get('/transaction/status/{status?}/{reference?}', 'Web\CheckoutController@transactionStatus')->name('checkout.transaction_status'); - Route::post('/transaction/status/{status?}/{reference?}', 'Web\CheckoutController@transactionStatus')->name('checkout.transaction_status'); - - Route::get('/transaction/approved/{transactionId}/{reference}', 'Web\CheckoutController@transactionApproved')->name('checkout.transaction_approved'); - -}); -*/ \ No newline at end of file +}); \ No newline at end of file diff --git a/vendor.tar b/vendor.tar new file mode 100644 index 0000000..fd92ca7 Binary files /dev/null and b/vendor.tar differ