SYNC 7 Register + activate + reset + mail customisation
This commit is contained in:
parent
f17deffdd0
commit
2297bf7eff
29 changed files with 964 additions and 783 deletions
|
|
@ -8,6 +8,14 @@ body {
|
|||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xxxl, map.merge($grid-breakpoints, ("xxxl": 1600px))) {
|
||||
.game-logo-banner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.rest-in-game-banner {
|
||||
transform: skew(12deg) translateX(5%);
|
||||
|
||||
|
|
@ -32,13 +40,6 @@ body {
|
|||
transform: translateY(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xxxl, map.merge($grid-breakpoints, ("xxxl": 1600px))) {
|
||||
.navbar-brand {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> footer {
|
||||
|
|
@ -80,7 +81,7 @@ body {
|
|||
|
||||
> a {
|
||||
position: absolute;
|
||||
top: -6rem;
|
||||
top: -3rem;
|
||||
left: 50%;
|
||||
width: 11rem;
|
||||
max-height: 8rem;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
@import "utilities/bootstrap-variables";
|
||||
|
||||
// 2. Include functions first (so you can manipulate colors, SVGs, calc, etc)
|
||||
@import "bootstrap/scss/functions";
|
||||
// @import "bootstrap/scss/functions";
|
||||
|
||||
// 3. Include remainder of required Bootstrap stylesheets
|
||||
@import "bootstrap/scss/variables";
|
||||
|
|
@ -67,6 +67,7 @@ a img {
|
|||
h1 {
|
||||
margin-top: 0;
|
||||
color: $color-primary;
|
||||
color: $color-tertiary;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
|
|
@ -74,6 +75,7 @@ h1 {
|
|||
|
||||
h2 {
|
||||
margin-top: 0;
|
||||
color: $color-tertiary;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
|
|
@ -81,6 +83,7 @@ h2 {
|
|||
|
||||
h3 {
|
||||
margin-top: 0;
|
||||
color: $color-tertiary;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
@use "sass:list";
|
||||
@import "mixins";
|
||||
@import "bootstrap/scss/functions";
|
||||
@import "./bs-customs/input";
|
||||
|
||||
// SET SOME CLASSES WITH BOOTSTRAP BREAKPOINTS
|
||||
// * Reponsive borders
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ $color-warning: #e6cd00;
|
|||
$color-primary: #0f437e;
|
||||
$color-secondary: #135ba7;
|
||||
$color-tertiary: #db275a;
|
||||
$color-quad: #0179a9;
|
||||
$color-quad: #00719e;
|
||||
$color-quint: #fba629;
|
||||
|
||||
// * BACKGROUNDS COLORS
|
||||
|
|
@ -29,6 +29,12 @@ $font-default-size-base: 1rem; // Assumes the browser default, typically `16px`
|
|||
$line-default-height-base: 1.65;
|
||||
|
||||
|
||||
// * Inputs
|
||||
|
||||
$input-bg: color.adjust($color-tertiary, $lightness: 45%);
|
||||
$input-color: color.adjust($color-tertiary, $lightness: -10%);
|
||||
|
||||
|
||||
// * Cookie Notice
|
||||
$ck-primary-color: $color-primary;
|
||||
$ck-secondary-color: color.adjust($color-tertiary, $lightness: -10%);
|
||||
|
|
|
|||
32
sass/utilities/bs-customs/_input.scss
Normal file
32
sass/utilities/bs-customs/_input.scss
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
@use "sass:color";
|
||||
|
||||
// * Input Form floating text
|
||||
.form-floating {
|
||||
> label {
|
||||
color: #{color.adjust($color-tertiary, $lightness: -4%)};
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
> .form-control,
|
||||
> .form-control-plaintext {
|
||||
&::placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
> .form-control-plaintext,
|
||||
> .form-control:focus,
|
||||
> .form-control:not(:placeholder-shown),
|
||||
> .form-select {
|
||||
/* stylelint-disable-next-line no-descending-specificity */
|
||||
~ label {
|
||||
color: #{rgba(color.adjust($color-tertiary, $lightness: -4%), $form-floating-label-opacity)};
|
||||
}
|
||||
}
|
||||
// Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
|
||||
// > .form-control:-webkit-autofill {
|
||||
// ~ label {
|
||||
// color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
|
||||
// }
|
||||
// }
|
||||
}
|
||||
102
ts/components/InputBirthDate.vue
Normal file
102
ts/components/InputBirthDate.vue
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
<template>
|
||||
<input
|
||||
ref="inputDate"
|
||||
:id="String(ipt_id)"
|
||||
:class="String(ipt_class)"
|
||||
:type="ipt_type"
|
||||
:name="String(ipt_name)"
|
||||
:placeholder="`${String(ipt_placeholder)} ${ipt_required ? '*' : ''}`"
|
||||
v-model="ipt_value"
|
||||
:autocomplete="String(ipt_autocomplete)"
|
||||
:required="Boolean(ipt_required)"
|
||||
@focus="startEditing"
|
||||
@change="changed"
|
||||
>
|
||||
<label :for="String(ipt_id)">{{ `${String(ipt_placeholder)} ${ipt_required ? '*' : ''}` }}</label>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import trans from "../../../../ts/modules/trans";
|
||||
|
||||
export default defineComponent({
|
||||
name: "InputBirthDate",
|
||||
mixins: [trans],
|
||||
data(): {
|
||||
ipt_id: string | null;
|
||||
ipt_class: string;
|
||||
ipt_name: string;
|
||||
ipt_placeholder: string;
|
||||
ipt_autocomplete: string;
|
||||
ipt_required: boolean;
|
||||
ipt_value: string | undefined;
|
||||
ipt_type: string;
|
||||
cached_value: string | null;
|
||||
} {
|
||||
return {
|
||||
ipt_id: null,
|
||||
ipt_class: "form-control",
|
||||
ipt_name: "birthdate",
|
||||
ipt_placeholder: this.__("Date de naissance"),
|
||||
ipt_autocomplete: "bday",
|
||||
ipt_required: true,
|
||||
ipt_value: undefined,
|
||||
ipt_type: "text",
|
||||
cached_value: null,
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
mounted() {
|
||||
const json = String(this.$attrs.json ?? "{}"),
|
||||
data = JSON.parse(json);
|
||||
this.ipt_id = data.id ?? this.ipt_id;
|
||||
this.ipt_class = data.class ?? this.ipt_class;
|
||||
this.ipt_name = data.name ?? this.ipt_name;
|
||||
this.ipt_placeholder = data.placeholder ?? this.ipt_placeholder;
|
||||
this.ipt_autocomplete = data.autocomplete ?? this.ipt_autocomplete;
|
||||
this.ipt_required = data.required ?? this.ipt_required;
|
||||
this.ipt_value = data.value;
|
||||
|
||||
// * Transform to date type before submit
|
||||
this.$nextTick(() => {
|
||||
const inputDate = this.$refs.inputDate as HTMLInputElement;
|
||||
// * Input already filled.
|
||||
if (inputDate.value) {
|
||||
this.startEditing();
|
||||
} else if (this.ipt_value) {
|
||||
this.ipt_value = new Date(this.ipt_value).toLocaleDateString();
|
||||
}
|
||||
inputDate.closest("form")?.addEventListener("submit", () => {
|
||||
this.startEditing();
|
||||
});
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
beforeSubmit() {},
|
||||
startEditing(): void {
|
||||
const inputDate = this.$refs.inputDate as HTMLInputElement;
|
||||
if (inputDate.value.length) {
|
||||
this.cached_value = inputDate.value;
|
||||
}
|
||||
this.switchIptTypeToDate();
|
||||
},
|
||||
/**
|
||||
* Change the input type to date
|
||||
*/
|
||||
switchIptTypeToDate(): void {
|
||||
this.ipt_type = "date";
|
||||
if (this.cached_value) {
|
||||
const date = new Date(Date.parse(this.cached_value));
|
||||
this.ipt_value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000))
|
||||
.toISOString()
|
||||
.split("T")[0] ?? date.toISOString().substring(0,10);
|
||||
}
|
||||
},
|
||||
changed() {
|
||||
const inputDate = this.$refs.inputDate as HTMLInputElement;
|
||||
this.cached_value = inputDate.value;
|
||||
this.switchIptTypeToDate();
|
||||
}
|
||||
},
|
||||
});
|
||||
</script>
|
||||
136
ts/components/PasswordVisibility.vue
Normal file
136
ts/components/PasswordVisibility.vue
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
<template>
|
||||
<button
|
||||
@click.prevent="toggleVisibility()"
|
||||
@keydown="keydown"
|
||||
:class="`btn btn-tertiary rounded-0 rounded-end password-visibility-${inputId} h-100`"
|
||||
:aria-pressed="visible"
|
||||
>
|
||||
<span
|
||||
class="text-bg-tertiary reveal d-flex justify-content-center align-items-center h-100"
|
||||
|
||||
type="button"
|
||||
:title="visible ? __('vue.PasswordVisibility.hide') : __('vue.PasswordVisibility.show')"
|
||||
data-bs="tooltip"
|
||||
>
|
||||
<FontAwesomeIcon
|
||||
|
||||
v-if="visible"
|
||||
icon="fas fa-eye-slash"
|
||||
:aria-hidden="true"
|
||||
/>
|
||||
|
||||
<FontAwesomeIcon
|
||||
v-else
|
||||
icon="fas fa-eye"
|
||||
:aria-hidden="true"
|
||||
/>
|
||||
</span>
|
||||
</button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
|
||||
import { Tooltip } from "bootstrap";
|
||||
import { defineComponent } from "vue";
|
||||
import trans from "./../../../../ts/modules/trans";
|
||||
|
||||
export default defineComponent({
|
||||
name: "PasswordVisibility",
|
||||
mixins: [trans],
|
||||
components: { FontAwesomeIcon },
|
||||
data(): {
|
||||
inputId: string;
|
||||
input: HTMLInputElement;
|
||||
visible: boolean;
|
||||
tooltipList: HTMLButtonElement[];
|
||||
} {
|
||||
return {
|
||||
inputId: "",
|
||||
input: document.createElement("input"),
|
||||
visible: false,
|
||||
tooltipList: [],
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
mounted() {
|
||||
const json = String(this.$attrs.json ?? "{}"),
|
||||
data = JSON.parse(json);
|
||||
this.inputId = data.inputId;
|
||||
this.input = document.getElementById(this.inputId) as HTMLInputElement;
|
||||
if (!this.input) {
|
||||
throw new Error(`Cannot find input id '${this.inputId}'`);
|
||||
}
|
||||
if (this.input.tagName !== "INPUT") {
|
||||
throw new Error(`id '${this.inputId}' is not an input`);
|
||||
}
|
||||
if ((this.input as HTMLInputElement).type !== "password") {
|
||||
throw new Error(`id '${this.inputId}' is not an input password`);
|
||||
}
|
||||
this.input = this.input as HTMLInputElement;
|
||||
this.$nextTick(() => {
|
||||
this.updateBootstrapTooltip();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
keydown(e:KeyboardEvent):void {
|
||||
if (
|
||||
e.key === " " ||
|
||||
e.code === "Space" ||
|
||||
e.keyCode === 32 ||
|
||||
e.key === "Enter" ||
|
||||
e.code === "Enter" ||
|
||||
e.keyCode === 13
|
||||
) {
|
||||
this.toggleVisibility();
|
||||
e.preventDefault();
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Update password status (visible, hidden).
|
||||
*/
|
||||
toggleVisibility(): void {
|
||||
if (this.input.type === "password") {
|
||||
this.input.type = "text";
|
||||
this.visible = true;
|
||||
} else {
|
||||
this.input.type = "password";
|
||||
this.visible = false;
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.updateBootstrapTooltip();
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Update Bootstrap tooltips.
|
||||
*/
|
||||
updateBootstrapTooltip() {
|
||||
let newTooltipList = [].slice.call(
|
||||
document.querySelectorAll(
|
||||
".password-visibility-" + this.inputId + " [data-bs=\"tooltip\"]"
|
||||
)
|
||||
) as HTMLButtonElement[];
|
||||
let tmp = newTooltipList.filter((x) => !this.tooltipList.includes(x));
|
||||
tmp.map((tooltip) => {
|
||||
return new Tooltip(tooltip);
|
||||
});
|
||||
this.closeBootstrapTooltip();
|
||||
this.tooltipList = newTooltipList;
|
||||
},
|
||||
/**
|
||||
* Close all Bootstrap tooltips.
|
||||
*/
|
||||
closeBootstrapTooltip() {
|
||||
this.tooltipList.forEach((tooltip) => {
|
||||
tooltip.blur();
|
||||
Tooltip.getInstance(tooltip)?.hide();
|
||||
});
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.reveal {
|
||||
width: 52px;
|
||||
}
|
||||
</style>
|
||||
5
ts/components/shims-vue.d.ts
vendored
5
ts/components/shims-vue.d.ts
vendored
|
|
@ -1,5 +0,0 @@
|
|||
declare module "*.vue" {
|
||||
import type { DefineComponent } from "vue";
|
||||
const component: DefineComponent<{}, {}, any>;
|
||||
export default component;
|
||||
}
|
||||
100
views/auth/login.blade.php
Normal file
100
views/auth/login.blade.php
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', __('Connexion'))
|
||||
@section('description', __('Connexion'))
|
||||
|
||||
@section('no-flash', true)
|
||||
|
||||
@section('content')
|
||||
<div class="container pb-5 pt-5">
|
||||
@error('email')
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<strong>{{ implode(',', $errors->get('email')) }}</strong>
|
||||
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@enderror
|
||||
<div class="row mb-3">
|
||||
<div class="col-12 col-md-6 text-md-end g-0">
|
||||
<span class="h1 fw-bold text-uppercase text-tertiary d-block mb-5">{{ __('Je m\'inscris') }}</span>
|
||||
<p class="mb-5">{{ __('Pour participer et tenter votre chance, inscrivez-vous !') }}</p>
|
||||
<a class="btn btn-lg btn-tertiary" href="{{ route('fo.register') }}">{{ __('Inscription') }}</a>
|
||||
</div>
|
||||
<div class="vr bg-tertiary d-none d-md-inline-block mx-4 px-1"></div>
|
||||
<div class="col g-0">
|
||||
<hr class="border-tertiary d-md-none border-3 border opacity-25">
|
||||
|
||||
<span class="h1 fw-bold text-uppercase text-tertiary d-block mb-5">{{ __('Je me connecte') }}</span>
|
||||
<p class="mb-5">{{ __('Si vous possédez déjà un compte Club Le Gaulois, vous pouvez utiliser les mêmes identifiants.') }}</p>
|
||||
<form class="needs-validation" method="POST" action="{{ route('fo.login') }}">
|
||||
@csrf
|
||||
|
||||
<div class="row justify-content-center mb-3">
|
||||
<div class="col-xl-8">
|
||||
<div class="input-group has-validation">
|
||||
<div class="form-floating @error('email') is-invalid @enderror">
|
||||
<input class="form-control @error('email') is-invalid @enderror" id="email" name="email"
|
||||
type="email" value="{{ old('email') }}" placeholder="name@example.com" required autocomplete="email"
|
||||
autofocus>
|
||||
<label for="email">{{ __('Email Address') }}</label>
|
||||
</div>
|
||||
@error('email')
|
||||
<div class="invalid-feedback" role="alert">
|
||||
<strong>{{ implode(',', $errors->get('email')) }}</strong>
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center mb-3">
|
||||
<div class="col-xl-8">
|
||||
<div class="input-group has-validation">
|
||||
<div class="form-floating @error('password') is-invalid @enderror">
|
||||
<input class="form-control @error('password') is-invalid @enderror" id="password" name="password"
|
||||
type="password" placeholder="" required autocomplete="current-password">
|
||||
<label for="password">{{ __('Password') }}</label>
|
||||
</div>
|
||||
@error('password')
|
||||
<div class="invalid-feedback" role="alert">
|
||||
<strong>{{ implode(',', $errors->get('password')) }}</strong>
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center mb-3">
|
||||
<div class="col-xl-8">
|
||||
<div class="form-check text-md-end">
|
||||
<input class="form-check-input float-md-none" id="remember" name="remember" type="checkbox"
|
||||
{{ old('remember') ? 'checked' : '' }}>
|
||||
|
||||
<label class="form-check-label" for="remember">
|
||||
{{ __('Remember Me') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center mb-0">
|
||||
<div class="col-xl-8">
|
||||
<button class="btn btn-tertiary fw-bold text-uppercase" type="submit">
|
||||
{{ __('Login') }}
|
||||
</button>
|
||||
|
||||
@if (Route::has('fo.password.request'))
|
||||
<a class="btn btn-link link-tertiary fw-bold" href="{{ route('fo.password.request') }}">
|
||||
{{ __('Forgot Your Password?') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
13
views/auth/password-min-strength.blade.php
Normal file
13
views/auth/password-min-strength.blade.php
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<div class="row justify-content-center mb-3">
|
||||
<div class="col col-md-8 text-dark lh-sm px-0 py-2 text-start">
|
||||
<small>
|
||||
{!! nl2br(
|
||||
clean(
|
||||
__(
|
||||
"Le mot de passe doit avoir une longueur de 8 caractères minimum,\n doit contenir une lettre majuscule et une lettre minucule,\n doit contenir un caractère spécial comme une virgule par exemple,\n doit contenir un chiffre.",
|
||||
),
|
||||
),
|
||||
) !!}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
53
views/auth/passwords/confirm.blade.php
Normal file
53
views/auth/passwords/confirm.blade.php
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', __('Confirmer son adresse e-mail'))
|
||||
@section('description', __('Confirmer son adresse e-mail'))
|
||||
|
||||
@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('fo.password.confirm') }}">
|
||||
@csrf
|
||||
|
||||
<div class="row mb-3">
|
||||
<label class="col-md-4 col-form-label text-md-end" for="password">{{ __('Password') }}</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input class="form-control @error('password') is-invalid @enderror" id="password" name="password"
|
||||
type="password" required autocomplete="current-password">
|
||||
|
||||
@error('password')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>{{ $message }}</strong>
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-0">
|
||||
<div class="col-md-8 offset-md-4">
|
||||
<button class="btn btn-primary" type="submit">
|
||||
{{ __('Confirm Password') }}
|
||||
</button>
|
||||
|
||||
@if (Route::has('fo.password.request'))
|
||||
<a class="btn btn-link" href="{{ route('fo.password.request') }}">
|
||||
{{ __('Forgot Your Password?') }}
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
44
views/auth/passwords/email.blade.php
Normal file
44
views/auth/passwords/email.blade.php
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', __('Réinitialiser son mot de passe'))
|
||||
@section('description', __('Réinitialiser son mot de passe'))
|
||||
|
||||
@section('content')
|
||||
<div class="container pb-5 pt-5">
|
||||
<div class="row justify-content-center mb-3">
|
||||
<div class="col-md-8">
|
||||
<h1 class="fw-bold text-tertiary text-uppercase text-center">{{ __('Reset Password') }}</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<form method="POST" action="{{ route('fo.password.email') }}">
|
||||
@csrf
|
||||
|
||||
<div class="row mb-3">
|
||||
<label class="col-md-4 col-form-label text-md-end" for="email">{{ __('Email Address') }}</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input class="form-control @error('email') is-invalid @enderror" id="email" name="email" type="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="row mb-0">
|
||||
<div class="col-md-6 offset-md-4">
|
||||
<button class="btn btn-primary" type="submit">
|
||||
{{ __('Send Password Reset Link') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
85
views/auth/passwords/reset.blade.php
Normal file
85
views/auth/passwords/reset.blade.php
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', __('Réinitialiser son mot de passe'))
|
||||
@section('description', __('Réinitialiser son mot de passe'))
|
||||
|
||||
@section('content')
|
||||
<div class="container pb-5 pt-5">
|
||||
<div class="row justify-content-center mb-3">
|
||||
<div class="col-md-8">
|
||||
<h1 class="fw-bold text-tertiary text-uppercase text-center">{{ __('Reset Password') }}</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<form method="POST" action="{{ route('fo.password.update') }}">
|
||||
@csrf
|
||||
|
||||
<input name="token" type="hidden" value="{{ $token }}">
|
||||
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
<input class="form-control @if ($errors->has('email')) is-invalid @endif mx-auto" id="register-email"
|
||||
name="email" type="email" value="{{ $email ?? old('email') }}"
|
||||
placeholder="{{ __('Votre adresse email') }}*" autocomplete="off"
|
||||
@if (!empty($displayEdit)) disabled @else required @endif />
|
||||
<label for="register-email">{{ __('Votre adresse email') }}*</label>
|
||||
@foreach ($errors->get('email') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 input-group d-flex justify-content-center py-2">
|
||||
<div class="input-group has-validation">
|
||||
<div class="form-floating @if ($errors->has('password')) is-invalid @endif">
|
||||
<input class="form-control rounded-0 rounded-start @if ($errors->has('password')) is-invalid @endif"
|
||||
id="register-password" name="password" type="password" placeholder="{{ __('Mot de passe') }}*"
|
||||
autocomplete="new-password" required />
|
||||
<label for="register-password">{{ __('Mot de passe') }}*</label>
|
||||
</div>
|
||||
@php $dataPassword = ['inputId' => 'register-password']; @endphp
|
||||
<span class="password-visibility p-0" data-json='@json($dataPassword)'></span>
|
||||
@foreach ($errors->get('password') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 input-group d-flex justify-content-center py-2">
|
||||
<div class="input-group has-validation">
|
||||
<div class="form-floating @if ($errors->has('password_confirmation')) is-invalid @endif">
|
||||
<input class="form-control rounded-0 rounded-start @if ($errors->has('password_confirmation')) is-invalid @endif"
|
||||
id="register-password-confirmation" name="password_confirmation" type="password"
|
||||
placeholder="{{ __('Confirmer votre mot de passe') }}*" autocomplete="new-password" required />
|
||||
<label for="register-password-confirmation">{{ __('Confirmer votre mot de passe') }}*</label>
|
||||
</div>
|
||||
@php $dataConfirmPassword = ['inputId' => 'register-password-confirmation']; @endphp
|
||||
<span class="password-visibility p-0" data-json='@json($dataConfirmPassword)'></span>
|
||||
@foreach ($errors->get('password_confirmation') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@include('theme::auth.password-min-strength')
|
||||
|
||||
<div class="row mb-0">
|
||||
<div class="col-md-6 offset-md-4">
|
||||
<button class="btn btn-primary" type="submit">
|
||||
{{ __('Reset Password') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
259
views/auth/register.blade.php
Normal file
259
views/auth/register.blade.php
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', __('Créer un compte'))
|
||||
@section('description', __('Créer un compte'))
|
||||
|
||||
@section('content')
|
||||
<div class="container pb-5 pt-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<h1 class="fw-bold text-tertiary text-uppercase text-center">{{ __('S\'inscrire au club Le Gaulois') }}</h1>
|
||||
|
||||
<form class="container-fluid" method="POST" action="{{ route('fo.register') }}">
|
||||
@csrf
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-8">
|
||||
<span class="h2 d-block text-center">{{ __("Merci de renseigner les champs ci-dessous\u{00A0}:") }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="mb-3">
|
||||
<legend class="text-center">{{ __('Votre profil') }}</legend>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
<input class="form-control @if ($errors->has('lastname')) is-invalid @endif mx-auto"
|
||||
id="register-lastname" name="lastname" type="text"
|
||||
value="{{ old('lastname', $crmCustomer->lastname ?? null) }}" placeholder="{{ __('Nom') }}*"
|
||||
autocomplete="given-name" required />
|
||||
<label for="register-lastname">{{ __('Nom') }}*</label>
|
||||
@foreach ($errors->get('lastname') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
<input class="form-control @if ($errors->has('firstname')) is-invalid @endif mx-auto"
|
||||
id="register-firstname" name="firstname" type="text"
|
||||
value="{{ old('firstname', $crmCustomer->firstname ?? null) }}" placeholder="{{ __('Prénom') }}*"
|
||||
autocomplete="family-name" required />
|
||||
<label for="register-firstname">{{ __('Prénom') }}*</label>
|
||||
@foreach ($errors->get('firstname') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
@php
|
||||
$dataBirthDate = [
|
||||
'id' => 'register-birth_date',
|
||||
'class' => 'form-control mx-auto ' . ($errors->has('birth_date') ? 'is-invalid' : ''),
|
||||
'name' => 'birth_date',
|
||||
'placeholder' => __('Date de naissance'),
|
||||
'autocomplete' => 'bday',
|
||||
'required' => true,
|
||||
'value' => old('birth_date', $crmCustomer->birth_date ?? null),
|
||||
];
|
||||
@endphp
|
||||
<div class="input-birth-date form-floating" data-json='@json($dataBirthDate)'></div>
|
||||
@foreach ($errors->get('birth_date') as $message)
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="mb-3">
|
||||
<legend class="text-center">{{ __('Vos coordonnées') }}</legend>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
<input class="form-control @if ($errors->has('address')) is-invalid @endif mx-auto"
|
||||
id="register-address" name="address" type="text"
|
||||
value="{{ old('address', $crmCustomer->address ?? null) }}" placeholder="{{ __('Adresse') }}*"
|
||||
autocomplete="street-address" required />
|
||||
<label for="register-address">{{ __('Adresse') }}*</label>
|
||||
@foreach ($errors->get('address') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
<input class="form-control @if ($errors->has('address2')) is-invalid @endif mx-auto"
|
||||
id="register-address2" name="address2" type="text"
|
||||
value="{{ old('address2', $crmCustomer->address2 ?? null) }}"
|
||||
placeholder="{{ __('Adresse complément') }}" />
|
||||
<label for="register-address2">{{ __('Adresse complément') }}</label>
|
||||
@foreach ($errors->get('address2') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
<input class="form-control @if ($errors->has('city')) is-invalid @endif mx-auto" id="register-city"
|
||||
name="city" type="text" value="{{ old('city', $crmCustomer->city ?? null) }}"
|
||||
placeholder="{{ __('Ville') }}*" autocomplete="address-level2" required />
|
||||
<label for="register-city">{{ __('Ville') }}*</label>
|
||||
@foreach ($errors->get('city') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
<input class="form-control @if ($errors->has('postcode')) is-invalid @endif mx-auto"
|
||||
id="register-postcode" name="postcode" type="text"
|
||||
value="{{ old('postcode', $crmCustomer->postcode ?? null) }}" placeholder="{{ __('Code postal') }}*"
|
||||
autocomplete="postal-code" required />
|
||||
<label for="register-postcode">{{ __('Code postal') }}*</label>
|
||||
@foreach ($errors->get('postcode') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="mb-3">
|
||||
<legend class="text-center">{{ __('Vos identifiants') }}</legend>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 py-2">
|
||||
<div class="form-floating">
|
||||
<input class="form-control @if ($errors->has('email')) is-invalid @endif mx-auto"
|
||||
id="register-email" name="email" type="email"
|
||||
value="{{ old('email', $crmCustomer->email ?? null) }}"
|
||||
placeholder="{{ __('Votre adresse email') }}*" autocomplete="email"
|
||||
@if (!empty($displayEdit)) disabled @else required @endif />
|
||||
<label for="register-email">{{ __('Votre adresse email') }}*</label>
|
||||
@foreach ($errors->get('email') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (empty($displayEdit))
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 input-group d-flex justify-content-center py-2">
|
||||
<div class="input-group has-validation">
|
||||
<div class="form-floating @if ($errors->has('password')) is-invalid @endif">
|
||||
<input
|
||||
class="form-control rounded-0 rounded-start @if ($errors->has('password')) is-invalid @endif"
|
||||
id="register-password" name="password" type="password"
|
||||
placeholder="{{ __('Mot de passe') }}*" autocomplete="new-password" required />
|
||||
<label for="register-password">{{ __('Mot de passe') }}*</label>
|
||||
</div>
|
||||
@php $dataPassword = ['inputId' => 'register-password']; @endphp
|
||||
<span class="password-visibility p-0" data-json='@json($dataPassword)'></span>
|
||||
@foreach ($errors->get('password') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-10 col-lg-8 input-group d-flex justify-content-center py-2">
|
||||
<div class="input-group has-validation">
|
||||
<div class="form-floating @if ($errors->has('password_confirmation')) is-invalid @endif">
|
||||
<input
|
||||
class="form-control rounded-0 rounded-start @if ($errors->has('password_confirmation')) is-invalid @endif"
|
||||
id="register-password-confirmation" name="password_confirmation" type="password"
|
||||
placeholder="{{ __('Confirmer votre mot de passe') }}*" autocomplete="new-password"
|
||||
required />
|
||||
<label for="register-password-confirmation">{{ __('Confirmer votre mot de passe') }}*</label>
|
||||
</div>
|
||||
@php $dataConfirmPassword = ['inputId' => 'register-password-confirmation']; @endphp
|
||||
<span class="password-visibility p-0" data-json='@json($dataConfirmPassword)'></span>
|
||||
@foreach ($errors->get('password_confirmation') as $message)
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('theme::auth.password-min-strength')
|
||||
@endif
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-8 px-0 py-2">
|
||||
<div class="form-check text-start">
|
||||
<input class="form-check-input @if ($errors->has('opt_in')) is-invalid @endif me-1" id="register-optin"
|
||||
name="opt_in" type="checkbox">
|
||||
<label class="form-check-label fw-bold w-fit" for="register-optin" role="button">
|
||||
{{ __('Je souhaite m\'inscrire à la newsletter') }} {{ Config::get('theme.site_name') }}
|
||||
</label>
|
||||
</div>
|
||||
@foreach ($errors->get('opt_in') as $message)
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center mb-5">
|
||||
<div class="col col-md-8 px-0 py-2">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @if ($errors->has('ok_cgv')) is-invalid @endif me-1"
|
||||
id="register-ok-cgv" name="ok_cgv" type="checkbox" required />
|
||||
<label class="form-check-label fw-bold w-fit" for="register-ok-cgv" role="button">
|
||||
{!! clean(
|
||||
__('J\'ai lu et accepte le :a règlement du jeu :enda', [
|
||||
'a' => '<a href="' . route('fo.reglement') . '" target="_blank">',
|
||||
'enda' => '</a>',
|
||||
]),
|
||||
) !!}
|
||||
</label>
|
||||
</div>
|
||||
@foreach ($errors->get('ok_cgv') as $message)
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-6 offset-md-4">
|
||||
<button class="btn btn-lg btn-tertiary" type="submit">
|
||||
{{ __('Register') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-0">
|
||||
<div class="col-md-6 offset-md-4">
|
||||
<span class="fw-bold">{{ __('* champs obligatoires') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
30
views/auth/verify.blade.php
Normal file
30
views/auth/verify.blade.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', __('Vérifier son adresse e-mail'))
|
||||
@section('description', __('Vérifier son adresse e-mail'))
|
||||
|
||||
@section('content')
|
||||
<div class="container pb-5 pt-5">
|
||||
<div class="row justify-content-center mb-3">
|
||||
<div class="col-md-8">
|
||||
<h1 class="fw-bold text-tertiary text-uppercase text-center">{{ __('Verify Your Email Address') }}</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
@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('fo.verification.resend') }}">
|
||||
@csrf
|
||||
<button class="btn btn-link m-0 p-0 align-baseline" type="submit">{{ __('click here to request another') }}</button>.
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', 'Activation de votre compte')
|
||||
|
||||
@section('content')
|
||||
<div class="activate floating grid">
|
||||
<div class="head-bloc"></div>
|
||||
<section class="main--bloc container">
|
||||
<div class="result flex">
|
||||
<h1 class="post-title">Activation du compte</h1>
|
||||
@if ($result === true)
|
||||
<p>Compte activé avec succès, vous pouvez désormais vous connecter</p>
|
||||
<div class="main-btn">
|
||||
<a href="{{ route('fo.fo.login') }}">Se connecter</a>
|
||||
</div>
|
||||
@if (session('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
@else
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div>
|
||||
<h1>Oups !</h1>
|
||||
<p>Votre compte n'a pu être activé. Le lien d'activation que vous avez reçu par mail doit être périmé.</p><br>
|
||||
<p>Cliquez sur le bouton ci-dessous pour vous inscrire.</p>
|
||||
</div>
|
||||
<div class="btn">
|
||||
<a href="{{ route('fo.inscription') }}">Je m'inscris</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', 'Mot de passe oublié')
|
||||
|
||||
@section('content')
|
||||
<div class="connect floating grid">
|
||||
<div class="head-bloc"></div>
|
||||
<section class="main--bloc container">
|
||||
|
||||
<div class="flex" id="lost_edit">
|
||||
@if (!isset($tokenValid) || !$tokenValid)
|
||||
<h1 class="post-title">Mot de passe oublié</h1>
|
||||
<form class="flex" id="lost--form" method="POST" action="{{ route('fo.mail-password') }}">
|
||||
@method('PUT')
|
||||
@csrf
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@if (session('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
<p>Pour que nous puissions vous envoyer un lien de réinitialisation de votre mot de passe, merci de nous indiquer
|
||||
l'adresse e-mail saisie lors de votre inscription.</p>
|
||||
<div class="edit--blocs flex">
|
||||
<input id="" name="email" type="email" value="" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$"
|
||||
placeholder="Votre adresse email" required>
|
||||
</div>
|
||||
<input class="btn" type="submit" value="Je valide">
|
||||
</form>
|
||||
@elseif ($tokenValid)
|
||||
<h1 class="post-title">Changement de votre mot de passe</h1>
|
||||
<form method="POST" action="{{ route('fo.change-password', $token) }}">
|
||||
@method('PUT')
|
||||
@csrf
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@if (session('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
<input name="password" type="password" placeholder="Votre nouveau mot de passe*" required>
|
||||
<input id="password-confirm" name="password_confirmation" type="password" required autocomplete="new-password"
|
||||
placeholder="Confirmer votre nouveau mot de passe*">
|
||||
<input name="token" type="hidden" value="{{ $token }}">
|
||||
<input class="btn btn-primary" type="submit" value="Envoyer">
|
||||
</form>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -8,6 +8,16 @@
|
|||
@include('theme::layouts.header')
|
||||
</header>
|
||||
|
||||
@sectionMissing('no-flash')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
@include('theme::modules.flash-messages')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<main class="container-fluid @hasSection('main-class') @yield('main-class') @endif flex-grow-1" id="content-container">
|
||||
@yield('content')
|
||||
</main>
|
||||
|
|
@ -16,6 +26,7 @@
|
|||
@include('theme::layouts.footer')
|
||||
</footer>
|
||||
|
||||
@include('back::modules.script-routes')
|
||||
{{-- @include('theme::cookie') --}}
|
||||
@include('theme::vendor.cn-cookies')
|
||||
@vite(['resources/theme/mounted/ts/fo.ts'])
|
||||
|
|
|
|||
|
|
@ -7,12 +7,13 @@
|
|||
<div class="share d-inline-block ms-2" data-href="https://www.facebook.com/LeGauloisFrance/" data-layout="button"
|
||||
data-size="small">
|
||||
<a class="fb-xfbml-parse-ignore btn-link" href="https://www.facebook.com/LeGauloisFrance/"
|
||||
title="{{ __('Aller voir la page Facebook Le Gaulois') }}"
|
||||
onclick="window.open(this.href, 'mywin', 'left=20,top=20,width=800,height=500,toolbar=1,resizable=0'); return false;">
|
||||
@include('theme::partials.icons.facebook')
|
||||
</a>
|
||||
</div>
|
||||
<a class="share d-inline-block btn-link text-light mx-1" href="https://www.instagram.com/legaulois_officiel/"
|
||||
target="_blank">
|
||||
title="{{ __('Aller voir la page Instagram Le Gaulois') }}" target="_blank">
|
||||
@include('theme::partials.icons.instagram')
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -25,19 +26,24 @@
|
|||
{{-- LINKS --}}
|
||||
<ul class="list-inline p-3">
|
||||
<li class="list-inline-item">
|
||||
<a class="link-light" href="{{ route('fo.reglement') }}">{{ __('Règlement du jeu') }}</a>
|
||||
<a class="link-light" href="{{ route('fo.reglement') }}"
|
||||
title="{{ __('Aller sur la page du réglement du jeu') }}">{{ __('Règlement du jeu') }}</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="link-light" href="{{ route('fo.legals') }}">{{ __('Mentions légales') }}</a>
|
||||
<a class="link-light" href="{{ route('fo.legals') }}"
|
||||
title="{{ __('Aller sur la page des metions légales') }}">{{ __('Mentions légales') }}</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="link-light" href="{{ route('fo.charte') }}">{{ __('Charte de confidentialité') }}</a>
|
||||
<a class="link-light" href="{{ route('fo.charte') }}"
|
||||
title="{{ __('Aller sur la page de la charte de confidentialité') }}">{{ __('Charte de confidentialité') }}</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="link-light" href="{{ route('fo.faq') }}">{{ __('FAQ') }}</a>
|
||||
<a class="link-light" href="{{ route('fo.faq') }}"
|
||||
title="{{ __('Aller sur la page des questions réponses.') }}">{{ __('FAQ') }}</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="link-light" href="https://www.legaulois.fr/contactez-nous" target="_blank">{{ __('Contact') }}</a>
|
||||
<a class="link-light" href="https://www.legaulois.fr/contactez-nous" title="{{ __('Aller sur la page de contact') }}"
|
||||
target="_blank">{{ __('Contact') }}</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="link-light cn-cookie-link" title="{{ __('Afficher la boite cookie notice') }}"
|
||||
|
|
@ -53,7 +59,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-link rounded-pill z-1" id="page-up">
|
||||
<button class="btn btn-link rounded-pill z-1" id="page-up" title="{{ __('Remonter la page tout en haut.') }}">
|
||||
@include('theme::partials.icons.up-arrow')
|
||||
</button>
|
||||
|
||||
|
|
|
|||
|
|
@ -59,11 +59,11 @@
|
|||
<div class="row">
|
||||
<div class="col-12 col-lg-6">
|
||||
<div class="d-flex flex-row">
|
||||
<a class="d-block flex-grow-1 d-flex" href="{{ route('fo.homepage') }}"
|
||||
<a class="d-block flex-grow-1 d-flex game-logo-banner" href="{{ route('fo.homepage') }}"
|
||||
title="{{ __('Aller sur la page d\'accueil') }}">
|
||||
<span class="d-inline-block">
|
||||
<img class="img-fluid" src="{{ Vite::asset('resources/theme/mounted/assets/images/home_logo.png') }}"
|
||||
alt="{{ $settingsGlobal->name ?? config('app.name') }} }}">
|
||||
alt="{{ $settingsGlobal->name ?? config('app.name') }}">
|
||||
</span>
|
||||
<span class="d-inline-block">
|
||||
<img class="img-fluid"
|
||||
|
|
@ -86,7 +86,7 @@
|
|||
<div
|
||||
class="rest-in-game-banner flex-column flex-md-row text-bg-quad d-flex flex-grow-1 justify-content-around mt-3 py-1 pe-5 ps-2">
|
||||
<span
|
||||
class="d-flex align-items-center fw-bold text-uppercase fs-5 mx-2">{{ __('Encore en jeu : ') }}</span>
|
||||
class="d-flex align-items-center fw-bold text-uppercase fs-5 mx-2">{{ __("Encore en jeu\u{00A0}:") }}</span>
|
||||
@if (Arr::has($prizesGlobal, 0))
|
||||
<span class="d-flex justify-content-center">
|
||||
<span
|
||||
|
|
|
|||
|
|
@ -1,87 +0,0 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', 'Connexion')
|
||||
|
||||
@section('content')
|
||||
<div class="connect floating grid">
|
||||
<div class="head-bloc"></div>
|
||||
<section class="main--bloc container">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@if (session('success'))
|
||||
<div class="alert alert-success">
|
||||
<p>{!! session('success') !!}</p>
|
||||
</div>
|
||||
@endif
|
||||
<div class="mobile-menu flex">
|
||||
<div class="signup--bloc flex">
|
||||
<div class="btn-connect flex">
|
||||
<a href="{{ route('fo.inscription') }}">
|
||||
<h1>Je m'inscris</h1>
|
||||
</a>
|
||||
</div>
|
||||
<p>Pour participer et tenter votre chance, <br>inscrivez-vous !</p>
|
||||
</div>
|
||||
<div class="connect--bloc flex">
|
||||
<div class="btn-connect flex">
|
||||
<a class="fancybox" id="inline" data-fancybox href="#connect_edit">
|
||||
<h2>Je me connecte</h2>
|
||||
</a>
|
||||
<div style="display:none">
|
||||
<div class="flex" id="connect_edit">
|
||||
<form class="flex" method="POST" action="{{ route('fo.authenticate') }}">
|
||||
@csrf
|
||||
<div class="edit--blocs flex">
|
||||
<input id="" name="email" type="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$"
|
||||
placeholder="Email*" required>
|
||||
<input id="" name="password" type="password" placeholder="Mot de passe*" required>
|
||||
<a href="{{ route('fo.forgot-password') }}">
|
||||
<h2>Mot de passe oublié ?</h2>
|
||||
</a>
|
||||
<span>* Champs obligatoires</span>
|
||||
</div>
|
||||
<input class="btn" type="submit" value="Connexion">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Si vous possédez déjà un compte Club Le Gaulois, vous pouvez utiliser les mêmes identifiants.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="desktop-menu flex">
|
||||
<div class="signup--bloc">
|
||||
<h1 class="post-title raleway">Je m'inscris</h1>
|
||||
<p>Pour participer et tenter votre chance, <br>inscrivez-vous !</p>
|
||||
<div class="btn-connect flex">
|
||||
<a href="{{ route('fo.inscription') }}">Inscription</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="connect--bloc">
|
||||
<h2 class="post-chapter raleway">Je me connecte</h2>
|
||||
<p>Si vous possédez déjà un compte Club Le Gaulois, vous pouvez utiliser les mêmes identifiants.</p>
|
||||
<form class="flex" id="connect--form" method="POST" action="{{ route('fo.authenticate') }}">
|
||||
@csrf
|
||||
<div class="edit--blocs flex">
|
||||
<input id="" name="email" type="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$"
|
||||
placeholder="Email*" required>
|
||||
<input id="" name="password" type="password" placeholder="Mot de passe*" required>
|
||||
<a href="{{ route('fo.forgot-password') }}">
|
||||
<h2>Mot de passe oublié ?</h2>
|
||||
</a>
|
||||
<span>* Champs obligatoires</span>
|
||||
</div>
|
||||
<input class="btn" type="submit" value="Connexion">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
55
views/modules/flash-messages.blade.php
Normal file
55
views/modules/flash-messages.blade.php
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
@if (!request()->routeIs('login'))
|
||||
@if ($message = Session::get('success', Session::get('bo.success')))
|
||||
<div class="alert alert-success alert-dismissible fade show m-0 mb-3" role="alert">
|
||||
<i class="fa-solid fa-circle-check"></i>
|
||||
<strong>{!! nl2br(e($message)) !!}</strong>
|
||||
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="{{ __('Fermer') }}"></button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($message = Session::get('error', Session::get('bo.error')))
|
||||
<div class="alert alert-danger alert-dismissible fade show m-0 mb-3" role="alert">
|
||||
<i class="fa-solid fa-circle-xmark"></i>
|
||||
<strong>{!! nl2br(e($message)) !!}</strong>
|
||||
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="{{ __('Fermer') }}"></button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($message = Session::get('warning', Session::get('bo.warning')))
|
||||
<div class="alert alert-warning alert-dismissible fade show m-0 mb-3" role="alert">
|
||||
<i class="fa-solid fa-circle-exclamation"></i>
|
||||
<strong>{!! nl2br(e($message)) !!}</strong>
|
||||
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="{{ __('Fermer') }}"></button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($message = Session::get('status', Session::get('bo.status')))
|
||||
<div class="alert alert-info alert-dismissible fade show m-0 mb-3" role="alert">
|
||||
<i class="fa-solid fa-circle-info"></i>
|
||||
<strong>{!! nl2br(e($message)) !!}</strong>
|
||||
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="{{ __('Fermer') }}"></button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($message = Session::get('info', Session::get('bo.info')))
|
||||
<div class="alert alert-info alert-dismissible fade show m-0 mb-3" role="alert">
|
||||
<i class="fa-solid fa-circle-info"></i>
|
||||
<strong>{!! nl2br(e($message)) !!}</strong>
|
||||
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="{{ __('Fermer') }}"></button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger alert-dismissible fade show m-0 mb-3" role="alert">
|
||||
<p class="fw-bold m-0"><i class="fa-solid fa-circle-exclamation"></i> Liste des erreurs :</p>
|
||||
@if ($errors->any())
|
||||
<ul class="list-unstyled m-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="{{ __('Fermer') }}"></button>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', 'Accueil')
|
||||
@section('title', __('Jeu :site_name', ['site_name' => Config::get('theme.site_name')]))
|
||||
@section('description', __('Jeu :site_name', ['site_name' => Config::get('theme.site_name')]))
|
||||
|
||||
@section('main-class', 'home-page')
|
||||
@section('content')
|
||||
|
|
|
|||
|
|
@ -1,241 +0,0 @@
|
|||
<!doctype html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
|
||||
|
||||
<head>
|
||||
<title>
|
||||
|
||||
</title>
|
||||
<!--[if !mso]><!-->
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<!--<![endif]-->
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style type="text/css">
|
||||
#outlook a {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
table,
|
||||
td {
|
||||
border-collapse: collapse;
|
||||
mso-table-lspace: 0pt;
|
||||
mso-table-rspace: 0pt;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
height: auto;
|
||||
line-height: 100%;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
}
|
||||
|
||||
p {
|
||||
display: block;
|
||||
margin: 13px 0;
|
||||
}
|
||||
</style>
|
||||
<!--[if mso]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:AllowPNG/>
|
||||
<o:PixelsPerInch>96</o:PixelsPerInch>
|
||||
</o:OfficeDocumentSettings>
|
||||
</xml>
|
||||
<![endif]-->
|
||||
<!--[if lte mso 11]>
|
||||
<style type="text/css">
|
||||
.mj-outlook-group-fix { width:100% !important; }
|
||||
</style>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if !mso]><!-->
|
||||
<link type="text/css" href="https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700" rel="stylesheet">
|
||||
<style type="text/css">
|
||||
@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700);
|
||||
</style>
|
||||
<!--<![endif]-->
|
||||
|
||||
<style type="text/css">
|
||||
@media only screen and (min-width:480px) {
|
||||
.mj-column-per-100 {
|
||||
width: 100% !important;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style type="text/css">
|
||||
@media only screen and (max-width:480px) {
|
||||
table.mj-full-width-mobile {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
td.mj-full-width-mobile {
|
||||
width: auto !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body style="word-spacing:normal;background-color:#FFFFFF;">
|
||||
|
||||
<div style="background-color:#FFFFFF;">
|
||||
|
||||
<!--[if mso | IE]><table class="" style="width:600px;" align="center" border="0" cellpadding="0" cellspacing="0" width="600"><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
|
||||
|
||||
<div style="background:#FFFFFF;background-color:#FFFFFF;margin:0px auto;max-width:600px;">
|
||||
|
||||
<table role="presentation" style="background:#FFFFFF;background-color:#FFFFFF;width:100%;" align="center" border="0"
|
||||
cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="direction:ltr;font-size:0px;padding:20px 0;text-align:center;">
|
||||
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:600px;"><![endif]-->
|
||||
|
||||
<div class="mj-column-per-100 mj-outlook-group-fix"
|
||||
style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
|
||||
|
||||
<table role="presentation" style="vertical-align:top;" border="0" cellpadding="0" cellspacing="0"
|
||||
width="100%">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="center">
|
||||
|
||||
<table role="presentation" style="border-collapse:collapse;border-spacing:0px;"
|
||||
border="0" cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width:300px;">
|
||||
|
||||
<img src="{{ Vite::asset('resources/theme/mounted/assets/images/home_logo.png') }}"
|
||||
style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;font-size:13px;"
|
||||
height="auto" width="300">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="center">
|
||||
|
||||
<div
|
||||
style="font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:40px;font-weight:bold;line-height:1;text-align:center;text-transform:uppercase;color:black;">
|
||||
Bonjour</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<!--[if mso | IE]></td></tr></table><![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<!--[if mso | IE]></td></tr></table><table class="" style="width:600px;" align="center" border="0" cellpadding="0" cellspacing="0" width="600"><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
|
||||
|
||||
<div style="background:#FFFFFF;background-color:#FFFFFF;margin:0px auto;max-width:600px;">
|
||||
|
||||
<table role="presentation" style="background:#FFFFFF;background-color:#FFFFFF;width:100%;" align="center" border="0"
|
||||
cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="direction:ltr;font-size:0px;padding:20px 0;text-align:center;">
|
||||
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:600px;"><![endif]-->
|
||||
|
||||
<div class="mj-column-per-100 mj-outlook-group-fix"
|
||||
style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
|
||||
|
||||
<table role="presentation" style="vertical-align:top;" border="0" cellpadding="0" cellspacing="0"
|
||||
width="100%">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="left">
|
||||
|
||||
<div
|
||||
style="font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:20px;line-height:1;text-align:left;color:black;">
|
||||
Pour réinitialiser votre mot de passe, cliquez sur le lien suivant : <br></div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="center"
|
||||
vertical-align="middle">
|
||||
|
||||
<table role="presentation" style="border-collapse:separate;line-height:100%;"
|
||||
border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td role="presentation"
|
||||
style="border:none;border-radius:0;cursor:auto;mso-padding-alt:10px 25px;background:#e30613;"
|
||||
align="center" bgcolor="#e30613" valign="middle">
|
||||
<a href="{{ config('app.url') }}{{ URL::temporarySignedRoute('forgot-password-reset', now()->addHours(3), ['token' => $user->password_token], false) }}"
|
||||
style="display:inline-block;background:#e30613;color:white;font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:20px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:0;"
|
||||
target="_blank">
|
||||
Réinitialisez votre mot de passe
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="left">
|
||||
|
||||
<div
|
||||
style="font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:20px;line-height:1;text-align:left;color:black;">
|
||||
<br>
|
||||
Ce lien expirera dans 3 heures. <br><br>
|
||||
L'équipe Le Gaulois <br><br>
|
||||
Si vous avez des questions, n'hésitez pas à nous contacter via notre <a
|
||||
class="link-nostyle" href="https://www.legaulois.fr/contactez-nous"
|
||||
style="color: inherit;">formulaire de contact</a>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<!--[if mso | IE]></td></tr></table><![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<!--[if mso | IE]></td></tr></table><![endif]-->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
@extends('theme::layout')
|
||||
|
||||
@section('title', 'Connexion')
|
||||
|
||||
@section('content')
|
||||
<div class="register floating grid">
|
||||
<div class="head-bloc"></div>
|
||||
<section class="main--bloc container">
|
||||
<div class="title-inscription1">
|
||||
<h1 class="post-title">S’inscrire au Club Le Gaulois</h1>
|
||||
<p class="info2">Merci de renseigner les champs ci-dessous :</p>
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-inscription1">
|
||||
<form class="flex" name="inscriptionForm" action="{{ route('fo.register') }}" method="POST" novalidate="novalidate">
|
||||
@csrf
|
||||
<p class="section">Votre profil</p>
|
||||
<!-- <select name="civilite">
|
||||
<option value="1">Mr</option>
|
||||
<option value="2">Mme</option>
|
||||
<option value="3">Mlle</option>
|
||||
</select> -->
|
||||
<input name="firstname" type="text" value="{{ old('firstname') }}" placeholder="Prénom*" maxlength="50" required>
|
||||
<input name="lastname" type="text" value="{{ old('lastname') }}" placeholder="Nom*" maxlength="50" required>
|
||||
<input name="birth_date" type="date" value="{{ old('birth_date') }}" placeholder="Date de naissance*" required>
|
||||
|
||||
<p class="section">Vos identifiants</p>
|
||||
<input id="email" name="email" type="email" value="{{ old('email') }}" placeholder="E-mail*" maxlength="50"
|
||||
required>
|
||||
<input name="email_confirmation" type="email" value="{{ old('email_confirmation') }}" placeholder="Confirmation E-mail*"
|
||||
required>
|
||||
|
||||
<input id="password" name="password" type="password" value="" aria-required="true"
|
||||
placeholder="Mot de passe* (min. 8 caractères)" maxlength="50" required>
|
||||
<input name="password_confirmation" type="password" aria-required="true" placeholder="Confirmation mot de passe*" required>
|
||||
|
||||
<p class="section">Vos coordonnées</p>
|
||||
<input name="address" type="text" value="{{ old('address') }}" placeholder="Adresse*" maxlength="200" required>
|
||||
<input name="address2" type="text" value="{{ old('address2') }}" placeholder="Adresse complémentaire*" required>
|
||||
<input name="town" type="text" value="{{ old('town') }}" placeholder="Ville*" maxlength="50" required>
|
||||
<input name="postal_code" type="text" value="{{ old('postal_code') }}" placeholder="Code postal*" maxlength="10"
|
||||
required>
|
||||
<input name="country" type="text" value="{{ old('country') }}" placeholder="Pays*" required>
|
||||
|
||||
<div class="chk--blocs">
|
||||
<div class="check-holder flex">
|
||||
<input id="checknews" name="news" type="checkbox">
|
||||
<label for="checknews">Je souhaite m'inscrire à la newsletter Le Gaulois</label>
|
||||
</div>
|
||||
<div class="check-holder flex">
|
||||
<input id="check" name="reglement" type="checkbox">
|
||||
<label for="check">J’ai lu et j’accepte le <a href="{{ route('fo.reglement') }}">règlement*</a></label>
|
||||
</div>
|
||||
</div>
|
||||
<input name="action" type="hidden" value="inscription_jeu">
|
||||
<div class="btn-form">
|
||||
<button class="btn">Je valide</button>
|
||||
</div>
|
||||
<span class="info">* champs obligatoires</span>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
8
views/vendor/mail/html/header.blade.php
vendored
8
views/vendor/mail/html/header.blade.php
vendored
|
|
@ -2,11 +2,11 @@
|
|||
<td class="header">
|
||||
<a href="{{ $url }}" style="display: inline-block;">
|
||||
@if (trim($slot) === 'Laravel')
|
||||
<img src="https://laravel.com/img/notification-logo.png" class="logo" alt="Laravel Logo">
|
||||
<img class="logo" src="https://laravel.com/img/notification-logo.png" alt="Laravel Logo">
|
||||
@else
|
||||
{{-- FIXME: Personaliser ca --}}
|
||||
<img src="{{ Vite::asset('resources/assets/images/logo.png') }}" class="logo img-fluid" alt="{{ config('app.name') }}">
|
||||
{{ $slot }}
|
||||
<img class="logo img-fluid" src="{{ Vite::asset('resources/theme/mounted/assets/images/logo-footer.png') }}"
|
||||
alt="{{ config('app.name') }}">
|
||||
{{ $slot }}
|
||||
@endif
|
||||
</a>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -1,241 +0,0 @@
|
|||
<!doctype html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
|
||||
|
||||
<head>
|
||||
<title>
|
||||
|
||||
</title>
|
||||
<!--[if !mso]><!-->
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<!--<![endif]-->
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style type="text/css">
|
||||
#outlook a {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
table,
|
||||
td {
|
||||
border-collapse: collapse;
|
||||
mso-table-lspace: 0pt;
|
||||
mso-table-rspace: 0pt;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
height: auto;
|
||||
line-height: 100%;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
}
|
||||
|
||||
p {
|
||||
display: block;
|
||||
margin: 13px 0;
|
||||
}
|
||||
</style>
|
||||
<!--[if mso]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:AllowPNG/>
|
||||
<o:PixelsPerInch>96</o:PixelsPerInch>
|
||||
</o:OfficeDocumentSettings>
|
||||
</xml>
|
||||
<![endif]-->
|
||||
<!--[if lte mso 11]>
|
||||
<style type="text/css">
|
||||
.mj-outlook-group-fix { width:100% !important; }
|
||||
</style>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if !mso]><!-->
|
||||
<link type="text/css" href="https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700" rel="stylesheet">
|
||||
<style type="text/css">
|
||||
@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700);
|
||||
</style>
|
||||
<!--<![endif]-->
|
||||
|
||||
<style type="text/css">
|
||||
@media only screen and (min-width:480px) {
|
||||
.mj-column-per-100 {
|
||||
width: 100% !important;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style type="text/css">
|
||||
@media only screen and (max-width:480px) {
|
||||
table.mj-full-width-mobile {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
td.mj-full-width-mobile {
|
||||
width: auto !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body style="word-spacing:normal;background-color:#FFF;">
|
||||
|
||||
<div style="background-color:#FFF;">
|
||||
|
||||
<!--[if mso | IE]><table class="" style="width:600px;" align="center" border="0" cellpadding="0" cellspacing="0" width="600"><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
|
||||
|
||||
<div style="background:#FFF;background-color:#FFF;margin:0px auto;max-width:600px;">
|
||||
|
||||
<table role="presentation" style="background:#FFF;background-color:#FFF;width:100%;" align="center" border="0"
|
||||
cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="direction:ltr;font-size:0px;padding:20px 0;text-align:center;">
|
||||
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:600px;"><![endif]-->
|
||||
|
||||
<div class="mj-column-per-100 mj-outlook-group-fix"
|
||||
style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
|
||||
|
||||
<table role="presentation" style="vertical-align:top;" border="0" cellpadding="0" cellspacing="0"
|
||||
width="100%">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="center">
|
||||
|
||||
<table role="presentation" style="border-collapse:collapse;border-spacing:0px;"
|
||||
border="0" cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width:300px;">
|
||||
|
||||
<img src="{{ Vite::asset('resources/theme/mounted/assets/images/home_logo.png') }}"
|
||||
style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;font-size:13px;"
|
||||
height="auto" width="300">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="center">
|
||||
|
||||
<div
|
||||
style="font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:40px;font-weight:bold;line-height:1;text-align:center;text-transform:uppercase;color:black;">
|
||||
Bonjour {{ $user->firstname }},</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<!--[if mso | IE]></td></tr></table><![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<!--[if mso | IE]></td></tr></table><table class="" style="width:600px;" align="center" border="0" cellpadding="0" cellspacing="0" width="600"><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
|
||||
|
||||
<div style="background:#FFF;background-color:#FFF;margin:0px auto;max-width:600px;">
|
||||
|
||||
<table role="presentation" style="background:#FFF;background-color:#FFF;width:100%;" align="center" border="0"
|
||||
cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="direction:ltr;font-size:0px;padding:20px 0;text-align:center;">
|
||||
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:600px;"><![endif]-->
|
||||
|
||||
<div class="mj-column-per-100 mj-outlook-group-fix"
|
||||
style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
|
||||
|
||||
<table role="presentation" style="vertical-align:top;" border="0" cellpadding="0" cellspacing="0"
|
||||
width="100%">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="left">
|
||||
|
||||
<div
|
||||
style="font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:20px;line-height:1;text-align:left;color:black;">
|
||||
Vous n'êtes plus qu'à un clic de votre inscription... <br><br>
|
||||
Pour finaliser votre inscription, cliquez sur le lien ci-dessous : <br></div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="center"
|
||||
vertical-align="middle">
|
||||
|
||||
<table role="presentation" style="border-collapse:separate;line-height:100%;"
|
||||
border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td role="presentation"
|
||||
style="border:none;border-radius:0;cursor:auto;mso-padding-alt:10px 25px;background:#e30613;"
|
||||
align="center" bgcolor="#e30613" valign="middle">
|
||||
<a href="{{ route('fo.confirm-email', ['verifyToken' => $user->email_verify_token, 'email' => $user->email]) }}"
|
||||
style="display:inline-block;background:#e30613;color:white;font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:20px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:0;"
|
||||
target="_blank">
|
||||
Je confirme mon inscription
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:0px;padding:10px 25px;word-break:break-word;" align="left">
|
||||
|
||||
<div
|
||||
style="font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:20px;line-height:1;text-align:left;color:black;">
|
||||
<br>
|
||||
L'équipe Le Gaulois <br><br>
|
||||
Si vous avez des questions, n'hésitez pas à nous contacter via notre <a
|
||||
class="link-nostyle" href="https://www.legaulois.fr/contactez-nous"
|
||||
style="color: inherit;">formulaire de contact</a>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<!--[if mso | IE]></td></tr></table><![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<!--[if mso | IE]></td></tr></table><![endif]-->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Loading…
Add table
Reference in a new issue