parent
dd8cee1704
commit
ba36b3851e
@ -0,0 +1,40 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth; |
||||||
|
|
||||||
|
use App\Http\Controllers\Controller; |
||||||
|
use App\Providers\RouteServiceProvider; |
||||||
|
use Illuminate\Foundation\Auth\ConfirmsPasswords; |
||||||
|
|
||||||
|
class ConfirmPasswordController extends Controller |
||||||
|
{ |
||||||
|
/* |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| Confirm Password Controller |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| |
||||||
|
| This controller is responsible for handling password confirmations and |
||||||
|
| uses a simple trait to include the behavior. You're free to explore |
||||||
|
| this trait and override any functions that require customization. |
||||||
|
| |
||||||
|
*/ |
||||||
|
|
||||||
|
use ConfirmsPasswords; |
||||||
|
|
||||||
|
/** |
||||||
|
* Where to redirect users when the intended url fails. |
||||||
|
* |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
protected $redirectTo = RouteServiceProvider::HOME; |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new controller instance. |
||||||
|
* |
||||||
|
* @return void |
||||||
|
*/ |
||||||
|
public function __construct() |
||||||
|
{ |
||||||
|
$this->middleware('auth'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth; |
||||||
|
|
||||||
|
use App\Http\Controllers\Controller; |
||||||
|
use Illuminate\Foundation\Auth\SendsPasswordResetEmails; |
||||||
|
|
||||||
|
class ForgotPasswordController extends Controller |
||||||
|
{ |
||||||
|
/* |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| Password Reset Controller |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| |
||||||
|
| This controller is responsible for handling password reset emails and |
||||||
|
| includes a trait which assists in sending these notifications from |
||||||
|
| your application to your users. Feel free to explore this trait. |
||||||
|
| |
||||||
|
*/ |
||||||
|
|
||||||
|
use SendsPasswordResetEmails; |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth; |
||||||
|
|
||||||
|
use App\Http\Controllers\Controller; |
||||||
|
use App\Providers\RouteServiceProvider; |
||||||
|
use Illuminate\Foundation\Auth\AuthenticatesUsers; |
||||||
|
|
||||||
|
class LoginController extends Controller |
||||||
|
{ |
||||||
|
/* |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| Login Controller |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| |
||||||
|
| This controller handles authenticating users for the application and |
||||||
|
| redirecting them to your home screen. The controller uses a trait |
||||||
|
| to conveniently provide its functionality to your applications. |
||||||
|
| |
||||||
|
*/ |
||||||
|
|
||||||
|
use AuthenticatesUsers; |
||||||
|
|
||||||
|
/** |
||||||
|
* Where to redirect users after login. |
||||||
|
* |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
protected $redirectTo = RouteServiceProvider::HOME; |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new controller instance. |
||||||
|
* |
||||||
|
* @return void |
||||||
|
*/ |
||||||
|
public function __construct() |
||||||
|
{ |
||||||
|
$this->middleware('guest')->except('logout'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,73 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth; |
||||||
|
|
||||||
|
use App\Http\Controllers\Controller; |
||||||
|
use App\Providers\RouteServiceProvider; |
||||||
|
use App\User; |
||||||
|
use Illuminate\Foundation\Auth\RegistersUsers; |
||||||
|
use Illuminate\Support\Facades\Hash; |
||||||
|
use Illuminate\Support\Facades\Validator; |
||||||
|
|
||||||
|
class RegisterController extends Controller |
||||||
|
{ |
||||||
|
/* |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| Register Controller |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| |
||||||
|
| This controller handles the registration of new users as well as their |
||||||
|
| validation and creation. By default this controller uses a trait to |
||||||
|
| provide this functionality without requiring any additional code. |
||||||
|
| |
||||||
|
*/ |
||||||
|
|
||||||
|
use RegistersUsers; |
||||||
|
|
||||||
|
/** |
||||||
|
* Where to redirect users after registration. |
||||||
|
* |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
protected $redirectTo = RouteServiceProvider::HOME; |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new controller instance. |
||||||
|
* |
||||||
|
* @return void |
||||||
|
*/ |
||||||
|
public function __construct() |
||||||
|
{ |
||||||
|
$this->middleware('guest'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get a validator for an incoming registration request. |
||||||
|
* |
||||||
|
* @param array $data |
||||||
|
* @return \Illuminate\Contracts\Validation\Validator |
||||||
|
*/ |
||||||
|
protected function validator(array $data) |
||||||
|
{ |
||||||
|
return Validator::make($data, [ |
||||||
|
'name' => ['required', 'string', 'max:255'], |
||||||
|
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], |
||||||
|
'password' => ['required', 'string', 'min:8', 'confirmed'], |
||||||
|
]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new user instance after a valid registration. |
||||||
|
* |
||||||
|
* @param array $data |
||||||
|
* @return \App\User |
||||||
|
*/ |
||||||
|
protected function create(array $data) |
||||||
|
{ |
||||||
|
return User::create([ |
||||||
|
'name' => $data['name'], |
||||||
|
'email' => $data['email'], |
||||||
|
'password' => Hash::make($data['password']), |
||||||
|
]); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth; |
||||||
|
|
||||||
|
use App\Http\Controllers\Controller; |
||||||
|
use App\Providers\RouteServiceProvider; |
||||||
|
use Illuminate\Foundation\Auth\ResetsPasswords; |
||||||
|
|
||||||
|
class ResetPasswordController extends Controller |
||||||
|
{ |
||||||
|
/* |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| Password Reset Controller |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| |
||||||
|
| This controller is responsible for handling password reset requests |
||||||
|
| and uses a simple trait to include this behavior. You're free to |
||||||
|
| explore this trait and override any methods you wish to tweak. |
||||||
|
| |
||||||
|
*/ |
||||||
|
|
||||||
|
use ResetsPasswords; |
||||||
|
|
||||||
|
/** |
||||||
|
* Where to redirect users after resetting their password. |
||||||
|
* |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
protected $redirectTo = RouteServiceProvider::HOME; |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth; |
||||||
|
|
||||||
|
use App\Http\Controllers\Controller; |
||||||
|
use App\Providers\RouteServiceProvider; |
||||||
|
use Illuminate\Foundation\Auth\VerifiesEmails; |
||||||
|
|
||||||
|
class VerificationController extends Controller |
||||||
|
{ |
||||||
|
/* |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| Email Verification Controller |
||||||
|
|-------------------------------------------------------------------------- |
||||||
|
| |
||||||
|
| This controller is responsible for handling email verification for any |
||||||
|
| user that recently registered with the application. Emails may also |
||||||
|
| be re-sent if the user didn't receive the original email message. |
||||||
|
| |
||||||
|
*/ |
||||||
|
|
||||||
|
use VerifiesEmails; |
||||||
|
|
||||||
|
/** |
||||||
|
* Where to redirect users after verification. |
||||||
|
* |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
protected $redirectTo = RouteServiceProvider::HOME; |
||||||
|
|
||||||
|
/** |
||||||
|
* Create a new controller instance. |
||||||
|
* |
||||||
|
* @return void |
||||||
|
*/ |
||||||
|
public function __construct() |
||||||
|
{ |
||||||
|
$this->middleware('auth'); |
||||||
|
$this->middleware('signed')->only('verify'); |
||||||
|
$this->middleware('throttle:6,1')->only('verify', 'resend'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Http\Controllers; |
||||||
|
|
||||||
|
use Illuminate\Http\Request; |
||||||
|
|
||||||
|
class DonationController extends Controller |
||||||
|
{ |
||||||
|
public function index(Request $request) |
||||||
|
{ |
||||||
|
return view('donate'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Http\Controllers; |
||||||
|
|
||||||
|
use Illuminate\Http\Request; |
||||||
|
|
||||||
|
class HomeController extends Controller |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Create a new controller instance. |
||||||
|
* |
||||||
|
* @return void |
||||||
|
*/ |
||||||
|
public function __construct() |
||||||
|
{ |
||||||
|
$this->middleware('auth'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Show the application dashboard. |
||||||
|
* |
||||||
|
* @return \Illuminate\Contracts\Support\Renderable |
||||||
|
*/ |
||||||
|
public function index() |
||||||
|
{ |
||||||
|
return view('home'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration; |
||||||
|
use Illuminate\Database\Schema\Blueprint; |
||||||
|
use Illuminate\Support\Facades\Schema; |
||||||
|
|
||||||
|
class CreatePasswordResetsTable extends Migration |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Run the migrations. |
||||||
|
* |
||||||
|
* @return void |
||||||
|
*/ |
||||||
|
public function up() |
||||||
|
{ |
||||||
|
Schema::create('password_resets', function (Blueprint $table) { |
||||||
|
$table->string('email')->index(); |
||||||
|
$table->string('token'); |
||||||
|
$table->timestamp('created_at')->nullable(); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Reverse the migrations. |
||||||
|
* |
||||||
|
* @return void |
||||||
|
*/ |
||||||
|
public function down() |
||||||
|
{ |
||||||
|
Schema::dropIfExists('password_resets'); |
||||||
|
} |
||||||
|
} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,70 @@ |
|||||||
|
/*! |
||||||
|
* Bootstrap v4.5.0 (https://getbootstrap.com/) |
||||||
|
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) |
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
||||||
|
*/ |
||||||
|
|
||||||
|
/*! |
||||||
|
* Sizzle CSS Selector Engine v2.3.5 |
||||||
|
* https://sizzlejs.com/ |
||||||
|
* |
||||||
|
* Copyright JS Foundation and other contributors |
||||||
|
* Released under the MIT license |
||||||
|
* https://js.foundation/ |
||||||
|
* |
||||||
|
* Date: 2020-03-14 |
||||||
|
*/ |
||||||
|
|
||||||
|
/*! |
||||||
|
* Vue.js v2.6.11 |
||||||
|
* (c) 2014-2019 Evan You |
||||||
|
* Released under the MIT License. |
||||||
|
*/ |
||||||
|
|
||||||
|
/*! |
||||||
|
* jQuery JavaScript Library v3.5.1 |
||||||
|
* https://jquery.com/ |
||||||
|
* |
||||||
|
* Includes Sizzle.js |
||||||
|
* https://sizzlejs.com/ |
||||||
|
* |
||||||
|
* Copyright JS Foundation and other contributors |
||||||
|
* Released under the MIT license |
||||||
|
* https://jquery.org/license |
||||||
|
* |
||||||
|
* Date: 2020-05-04T22:49Z |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* @license |
||||||
|
* Lodash <https://lodash.com/> |
||||||
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/> |
||||||
|
* Released under MIT license <https://lodash.com/license> |
||||||
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> |
||||||
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors |
||||||
|
*/ |
||||||
|
|
||||||
|
/**! |
||||||
|
* @fileOverview Kickass library to create and place poppers near their reference elements. |
||||||
|
* @version 1.16.1 |
||||||
|
* @license |
||||||
|
* Copyright (c) 2016 Federico Zivolo and contributors |
||||||
|
* |
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy |
||||||
|
* of this software and associated documentation files (the "Software"), to deal |
||||||
|
* in the Software without restriction, including without limitation the rights |
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||||
|
* copies of the Software, and to permit persons to whom the Software is |
||||||
|
* furnished to do so, subject to the following conditions: |
||||||
|
* |
||||||
|
* The above copyright notice and this permission notice shall be included in all |
||||||
|
* copies or substantial portions of the Software. |
||||||
|
* |
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||||
|
* SOFTWARE. |
||||||
|
*/ |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"/js/app.js": "/js/app.js?id=752a125965afecb67512", |
||||||
|
"/css/app.css": "/css/app.css?id=36412c9f34a08f26af3c" |
||||||
|
} |
@ -1 +1,32 @@ |
|||||||
|
/** |
||||||
|
* First we will load all of this project's JavaScript dependencies which |
||||||
|
* includes Vue and other libraries. It is a great starting point when |
||||||
|
* building robust, powerful web applications using Vue and Laravel. |
||||||
|
*/ |
||||||
|
|
||||||
require('./bootstrap'); |
require('./bootstrap'); |
||||||
|
|
||||||
|
window.Vue = require('vue'); |
||||||
|
|
||||||
|
/** |
||||||
|
* The following block of code may be used to automatically register your |
||||||
|
* Vue components. It will recursively scan this directory for the Vue |
||||||
|
* components and automatically register them with their "basename". |
||||||
|
* |
||||||
|
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component> |
||||||
|
*/ |
||||||
|
|
||||||
|
// const files = require.context('./', true, /\.vue$/i)
|
||||||
|
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
|
||||||
|
|
||||||
|
Vue.component('donation-card', require('./components/DonationCard.vue').default); |
||||||
|
|
||||||
|
/** |
||||||
|
* Next, we will create a fresh Vue application instance and attach it to |
||||||
|
* the page. Then, you may begin adding components to this application |
||||||
|
* or customize the JavaScript scaffolding to fit your unique needs. |
||||||
|
*/ |
||||||
|
|
||||||
|
const app = new Vue({ |
||||||
|
el: '#app', |
||||||
|
}); |
||||||
|
@ -0,0 +1,268 @@ |
|||||||
|
<template> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">Donate</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
<form method="POST" action> |
||||||
|
<div class="form-group row"> |
||||||
|
<label for="currency" class="col-md-4 col-form-label text-md-right">Donation currency</label> |
||||||
|
|
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col" v-for="currencyItem in currencies" :key="currencyItem.code"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="btn btn-block" |
||||||
|
:class="{'btn-primary':currency==currencyItem.code, 'btn-outline-primary':currency!=currencyItem.code}" |
||||||
|
@click="currency=currencyItem.code" |
||||||
|
>{{currencyItem.symbol}} | {{currencyItem.name}}</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="form-group row"> |
||||||
|
<label for="frequency" class="col-md-4 col-form-label text-md-right">Donation frequency</label> |
||||||
|
|
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col" v-for="frequencyItem in frequencies" :key="frequencyItem.code"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="btn btn-block" |
||||||
|
:class="{'btn-primary':frequency==frequencyItem.code, 'btn-outline-primary':frequency!=frequencyItem.code}" |
||||||
|
@click="frequency=frequencyItem.code" |
||||||
|
>{{frequencyItem.name}}</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="form-group row"> |
||||||
|
<label for="donationPackage" class="col-md-4 col-form-label text-md-right">Donation amount</label> |
||||||
|
|
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="row"> |
||||||
|
<div |
||||||
|
class="col-6" |
||||||
|
v-for="donationPackageItem in donationPackages" |
||||||
|
:key="donationPackageItem.id" |
||||||
|
> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="btn btn-block mb-2" |
||||||
|
:class="{'btn-primary':donationPackage==donationPackageItem.id, 'btn-outline-primary':donationPackage!=donationPackageItem.id}" |
||||||
|
@click="setDonationPackage(donationPackageItem.id)" |
||||||
|
> |
||||||
|
<span>{{activeCurrency.symbol}}</span> |
||||||
|
<span v-if="frequency=='once'">{{donationPackageItem.once_amount}}</span> |
||||||
|
<span v-else-if="frequency=='monthly'">{{donationPackageItem.monthly_amount}} /mo</span> |
||||||
|
<span |
||||||
|
v-else-if="frequency=='annually'" |
||||||
|
>{{donationPackageItem.annually_amount}} /yr</span> |
||||||
|
|
||||||
|
<br /> |
||||||
|
<small>{{donationPackageItem.name}}</small> |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
<div class="col-6"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="btn btn-block mb-2" |
||||||
|
:class="{'btn-primary':donationPackage==null, 'btn-outline-primary':donationPackage!=null}" |
||||||
|
@click="setDonationPackage(null)" |
||||||
|
> |
||||||
|
<small>other</small> |
||||||
|
<br /> |
||||||
|
|
||||||
|
<div class="input-group mb-3"> |
||||||
|
<div class="input-group-prepend"> |
||||||
|
<span class="input-group-text">{{activeCurrency.symbol}}</span> |
||||||
|
</div> |
||||||
|
<input |
||||||
|
type="number" |
||||||
|
class="form-control" |
||||||
|
aria-label="Amount" |
||||||
|
v-model.number="amount" |
||||||
|
@keypress="onlyNumber" |
||||||
|
/> |
||||||
|
<div |
||||||
|
class="input-group-append" |
||||||
|
v-if="frequency=='monthly' || frequency=='annually'" |
||||||
|
> |
||||||
|
<span v-if="frequency=='monthly'" class="input-group-text">/mo</span> |
||||||
|
<span v-else-if="frequency=='annually'" class="input-group-text">/yr</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<!-- <div class="form-group row"> |
||||||
|
<label for="email" class="col-md-4 col-form-label text-md-right">E-Mail Address</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input |
||||||
|
id="email" |
||||||
|
type="email" |
||||||
|
class="form-control is-invalid" |
||||||
|
name="email" |
||||||
|
required |
||||||
|
autocomplete="email" |
||||||
|
autofocus |
||||||
|
/> |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>Sample error</strong> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="password" class="col-md-4 col-form-label text-md-right">Password</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input |
||||||
|
id="password" |
||||||
|
type="password" |
||||||
|
class="form-control" |
||||||
|
name="password" |
||||||
|
required |
||||||
|
autocomplete="current-password" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<div class="col-md-6 offset-md-4"> |
||||||
|
<div class="form-check"> |
||||||
|
<input class="form-check-input" type="checkbox" name="remember" id="remember" /> |
||||||
|
<label class="form-check-label" for="remember">Remember Me</label> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div>--> |
||||||
|
|
||||||
|
<div class="form-group row mb-0"> |
||||||
|
<div class="col-md-8 offset-md-4"> |
||||||
|
<button type="submit" class="btn btn-primary btn-lg">Donate {{amountText}}</button> |
||||||
|
|
||||||
|
<!-- <a class="btn btn-link" href="#">Forgot Your Password?</a> --> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
data() { |
||||||
|
return { |
||||||
|
currency: "USD", |
||||||
|
frequency: "monthly", |
||||||
|
donationPackage: 4, |
||||||
|
amount: 25, |
||||||
|
currencies: [ |
||||||
|
{ name: "USD", code: "USD", symbol: "$" }, |
||||||
|
{ name: "EUR", code: "EUR", symbol: "€" }, |
||||||
|
{ name: "TRY", code: "TRY", symbol: "₺" } |
||||||
|
], |
||||||
|
frequencies: [ |
||||||
|
{ name: "once", code: "once" }, |
||||||
|
{ name: "monthly", code: "monthly" }, |
||||||
|
{ name: "annually", code: "annually" } |
||||||
|
], |
||||||
|
donationPackages: [ |
||||||
|
{ |
||||||
|
id: 1, |
||||||
|
name: "Super Major Donor", |
||||||
|
once_amount: 2500, |
||||||
|
monthly_amount: 250, |
||||||
|
annually_amount: 2500 |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 2, |
||||||
|
name: "Major Donor", |
||||||
|
once_amount: 1000, |
||||||
|
monthly_amount: 100, |
||||||
|
annually_amount: 1000 |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 3, |
||||||
|
name: "Rare Earths Level", |
||||||
|
once_amount: 500, |
||||||
|
monthly_amount: 50, |
||||||
|
annually_amount: 500 |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 4, |
||||||
|
name: "Titanium Level", |
||||||
|
once_amount: 250, |
||||||
|
monthly_amount: 25, |
||||||
|
annually_amount: 250 |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 5, |
||||||
|
name: "Gold Level", |
||||||
|
once_amount: 100, |
||||||
|
monthly_amount: 10, |
||||||
|
annually_amount: 100 |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 6, |
||||||
|
name: "Copper Level", |
||||||
|
once_amount: 50, |
||||||
|
monthly_amount: 5, |
||||||
|
annually_amount: 50 |
||||||
|
} |
||||||
|
] |
||||||
|
}; |
||||||
|
}, |
||||||
|
computed: { |
||||||
|
activeCurrency() { |
||||||
|
const itemIndex = this.currencies.findIndex( |
||||||
|
item => item.code === this.currency |
||||||
|
); |
||||||
|
if (itemIndex === -1) return false; |
||||||
|
return this.currencies[itemIndex]; |
||||||
|
}, |
||||||
|
amountText() { |
||||||
|
var text = this.activeCurrency.symbol + this.amount; |
||||||
|
if (this.frequency == "monthly") { |
||||||
|
text = text + "/mo"; |
||||||
|
} else if (this.frequency == "annually") { |
||||||
|
text = text + "/yr"; |
||||||
|
} |
||||||
|
return text; |
||||||
|
} |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
setDonationPackage(id) { |
||||||
|
this.donationPackage = id; |
||||||
|
const itemIndex = this.donationPackages.findIndex(item => item.id === id); |
||||||
|
if (itemIndex !== -1) { |
||||||
|
if (this.frequency == "once") { |
||||||
|
this.amount = this.donationPackages[itemIndex].once_amount; |
||||||
|
} else if (this.frequency == "monthly") { |
||||||
|
this.amount = this.donationPackages[itemIndex].monthly_amount; |
||||||
|
} else if (this.frequency == "annually") { |
||||||
|
this.amount = this.donationPackages[itemIndex].annually_amount; |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
onlyNumber($event) { |
||||||
|
//console.log($event.keyCode); //keyCodes value |
||||||
|
let keyCode = $event.keyCode ? $event.keyCode : $event.which; |
||||||
|
if ((keyCode < 48 || keyCode > 57) && keyCode !== 46) { |
||||||
|
// 46 is dot |
||||||
|
$event.preventDefault(); |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
watch: { |
||||||
|
amount() { |
||||||
|
if (this.amount < 1) { |
||||||
|
this.amount = 5; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
@ -0,0 +1,23 @@ |
|||||||
|
<template> |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">Example Component</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
I'm an example component. |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
mounted() { |
||||||
|
console.log('Component mounted.') |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
@ -0,0 +1,22 @@ |
|||||||
|
// Body |
||||||
|
$body-bg: #f8fafc; |
||||||
|
|
||||||
|
// Typography |
||||||
|
$font-family-sans-serif: "Liberation Sans", |
||||||
|
sans-serif; |
||||||
|
$font-size-base: 1rem; |
||||||
|
$line-height-base: 1.6; |
||||||
|
|
||||||
|
// Colors |
||||||
|
$blue: #3490dc; |
||||||
|
$indigo: #6574cd; |
||||||
|
$purple: #9561e2; |
||||||
|
$pink: #f66d9b; |
||||||
|
$red: #e3342f; |
||||||
|
$orange: #f6993f; |
||||||
|
$yellow: #ffed4a; |
||||||
|
$green: #38c172; |
||||||
|
$teal: #4dc0b5; |
||||||
|
$cyan: #6cb2eb; |
||||||
|
|
||||||
|
$primary: #4C2447; |
@ -1 +1,8 @@ |
|||||||
// |
// Fonts |
||||||
|
@import url('https://oyd.org.tr/fonts/stylesheet.css'); |
||||||
|
|
||||||
|
// Variables |
||||||
|
@import 'variables'; |
||||||
|
|
||||||
|
// Bootstrap |
||||||
|
@import '~bootstrap/scss/bootstrap'; |
||||||
|
@ -0,0 +1,73 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">{{ __('Login') }}</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
<form method="POST" action="{{ route('login') }}"> |
||||||
|
@csrf |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus> |
||||||
|
|
||||||
|
@error('email') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password"> |
||||||
|
|
||||||
|
@error('password') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<div class="col-md-6 offset-md-4"> |
||||||
|
<div class="form-check"> |
||||||
|
<input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> |
||||||
|
|
||||||
|
<label class="form-check-label" for="remember"> |
||||||
|
{{ __('Remember Me') }} |
||||||
|
</label> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row mb-0"> |
||||||
|
<div class="col-md-8 offset-md-4"> |
||||||
|
<button type="submit" class="btn btn-primary"> |
||||||
|
{{ __('Login') }} |
||||||
|
</button> |
||||||
|
|
||||||
|
@if (Route::has('password.request')) |
||||||
|
<a class="btn btn-link" href="{{ route('password.request') }}"> |
||||||
|
{{ __('Forgot Your Password?') }} |
||||||
|
</a> |
||||||
|
@endif |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@endsection |
@ -0,0 +1,49 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">{{ __('Confirm Password') }}</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
{{ __('Please confirm your password before continuing.') }} |
||||||
|
|
||||||
|
<form method="POST" action="{{ route('password.confirm') }}"> |
||||||
|
@csrf |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password"> |
||||||
|
|
||||||
|
@error('password') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row mb-0"> |
||||||
|
<div class="col-md-8 offset-md-4"> |
||||||
|
<button type="submit" class="btn btn-primary"> |
||||||
|
{{ __('Confirm Password') }} |
||||||
|
</button> |
||||||
|
|
||||||
|
@if (Route::has('password.request')) |
||||||
|
<a class="btn btn-link" href="{{ route('password.request') }}"> |
||||||
|
{{ __('Forgot Your Password?') }} |
||||||
|
</a> |
||||||
|
@endif |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@endsection |
@ -0,0 +1,47 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">{{ __('Reset Password') }}</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
@if (session('status')) |
||||||
|
<div class="alert alert-success" role="alert"> |
||||||
|
{{ session('status') }} |
||||||
|
</div> |
||||||
|
@endif |
||||||
|
|
||||||
|
<form method="POST" action="{{ route('password.email') }}"> |
||||||
|
@csrf |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus> |
||||||
|
|
||||||
|
@error('email') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row mb-0"> |
||||||
|
<div class="col-md-6 offset-md-4"> |
||||||
|
<button type="submit" class="btn btn-primary"> |
||||||
|
{{ __('Send Password Reset Link') }} |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@endsection |
@ -0,0 +1,65 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">{{ __('Reset Password') }}</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
<form method="POST" action="{{ route('password.update') }}"> |
||||||
|
@csrf |
||||||
|
|
||||||
|
<input type="hidden" name="token" value="{{ $token }}"> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ $email ?? old('email') }}" required autocomplete="email" autofocus> |
||||||
|
|
||||||
|
@error('email') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password"> |
||||||
|
|
||||||
|
@error('password') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row mb-0"> |
||||||
|
<div class="col-md-6 offset-md-4"> |
||||||
|
<button type="submit" class="btn btn-primary"> |
||||||
|
{{ __('Reset Password') }} |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@endsection |
@ -0,0 +1,77 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">{{ __('Register') }}</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
<form method="POST" action="{{ route('register') }}"> |
||||||
|
@csrf |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus> |
||||||
|
|
||||||
|
@error('name') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email"> |
||||||
|
|
||||||
|
@error('email') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password"> |
||||||
|
|
||||||
|
@error('password') |
||||||
|
<span class="invalid-feedback" role="alert"> |
||||||
|
<strong>{{ $message }}</strong> |
||||||
|
</span> |
||||||
|
@enderror |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row"> |
||||||
|
<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label> |
||||||
|
|
||||||
|
<div class="col-md-6"> |
||||||
|
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="form-group row mb-0"> |
||||||
|
<div class="col-md-6 offset-md-4"> |
||||||
|
<button type="submit" class="btn btn-primary"> |
||||||
|
{{ __('Register') }} |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@endsection |
@ -0,0 +1,28 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">{{ __('Verify Your Email Address') }}</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
@if (session('resent')) |
||||||
|
<div class="alert alert-success" role="alert"> |
||||||
|
{{ __('A fresh verification link has been sent to your email address.') }} |
||||||
|
</div> |
||||||
|
@endif |
||||||
|
|
||||||
|
{{ __('Before proceeding, please check your email for a verification link.') }} |
||||||
|
{{ __('If you did not receive the email') }}, |
||||||
|
<form class="d-inline" method="POST" action="{{ route('verification.resend') }}"> |
||||||
|
@csrf |
||||||
|
<button type="submit" class="btn btn-link p-0 m-0 align-baseline">{{ __('click here to request another') }}</button>. |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@endsection |
@ -0,0 +1,11 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<donation-card></donation-card> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@endsection |
@ -0,0 +1,23 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
<div class="container"> |
||||||
|
<div class="row justify-content-center"> |
||||||
|
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
|
<div class="card-header">Dashboard</div> |
||||||
|
|
||||||
|
<div class="card-body"> |
||||||
|
@if (session('status')) |
||||||
|
<div class="alert alert-success" role="alert"> |
||||||
|
{{ session('status') }} |
||||||
|
</div> |
||||||
|
@endif |
||||||
|
|
||||||
|
You are logged in! |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@endsection |
@ -0,0 +1,81 @@ |
|||||||
|
<!doctype html> |
||||||
|
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||||
|
|
||||||
|
<!-- CSRF Token --> |
||||||
|
<meta name="csrf-token" content="{{ csrf_token() }}"> |
||||||
|
|
||||||
|
<title>{{ config('app.name', 'Laravel') }}</title> |
||||||
|
|
||||||
|
<!-- Scripts --> |
||||||
|
<script src="{{ mix('js/app.js') }}" defer></script> |
||||||
|
|
||||||
|
<!-- Fonts --> |
||||||
|
<link rel="dns-prefetch" href="//fonts.gstatic.com"> |
||||||
|
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet"> |
||||||
|
|
||||||
|
<!-- Styles --> |
||||||
|
<link href="{{ mix('css/app.css') }}" rel="stylesheet"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<div id="app"> |
||||||
|
<nav class="navbar navbar-expand-md navbar-dark bg-primary shadow-sm"> |
||||||
|
<div class="container"> |
||||||
|
<a class="navbar-brand" href="{{ url('/') }}"> |
||||||
|
<img src="https://oyd.org.tr/oyd_logo.svg" alt="Özgür Yazılım Derneği" width="auto" height="60"> |
||||||
|
{{ config('app.name', 'Laravel') }} |
||||||
|
</a> |
||||||
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}"> |
||||||
|
<span class="navbar-toggler-icon"></span> |
||||||
|
</button> |
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent"> |
||||||
|
<!-- Left Side Of Navbar --> |
||||||
|
<ul class="navbar-nav mr-auto"> |
||||||
|
|
||||||
|
</ul> |
||||||
|
|
||||||
|
<!-- Right Side Of Navbar --> |
||||||
|
<ul class="navbar-nav ml-auto"> |
||||||
|
<!-- Authentication Links --> |
||||||
|
@guest |
||||||
|
<li class="nav-item"> |
||||||
|
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a> |
||||||
|
</li> |
||||||
|
@if (Route::has('register')) |
||||||
|
<li class="nav-item"> |
||||||
|
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a> |
||||||
|
</li> |
||||||
|
@endif |
||||||
|
@else |
||||||
|
<li class="nav-item dropdown"> |
||||||
|
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre> |
||||||
|
{{ Auth::user()->name }} <span class="caret"></span> |
||||||
|
</a> |
||||||
|
|
||||||
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown"> |
||||||
|
<a class="dropdown-item" href="{{ route('logout') }}" |
||||||
|
onclick="event.preventDefault(); |
||||||
|
document.getElementById('logout-form').submit();"> |
||||||
|
{{ __('Logout') }} |
||||||
|
</a> |
||||||
|
|
||||||
|
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> |
||||||
|
@csrf |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</li> |
||||||
|
@endguest |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</nav> |
||||||
|
|
||||||
|
<main class="py-4"> |
||||||
|
@yield('content') |
||||||
|
</main> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
Loading…
Reference in new issue