-
-
I already have an account
+
\ No newline at end of file
diff --git a/frontend/src/app/pages/signin/signin.component.scss b/frontend/src/app/pages/signin/signin.component.scss
index a8d5b3d..7aa78e0 100644
--- a/frontend/src/app/pages/signin/signin.component.scss
+++ b/frontend/src/app/pages/signin/signin.component.scss
@@ -4,79 +4,4 @@
justify-content: center;
align-items: center;
padding: 1em;
-
- form {
- width: 80%;
- max-width: 20em;
- display: flex;
- flex-direction: column;
- justify-content: center;
- gap: 1em;
- box-shadow: 0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);
- border-radius: .5em;
- padding: 1em 1.5em;
- background-color: #ffffff;
-
- h1 {
- margin: 0;
- }
-
- div {
- display: flex;
- flex-direction: column;
- position: relative;
- gap: .1em;
-
- mat-icon {
- position: absolute;
- top: 1.3em;
- left: .5em;
- color: #777;
- }
-
- &.actions {
- flex-direction: row-reverse;
- justify-content: space-between;
- align-items: center;
-
- button {
- padding: .8em 1.2em;
- border-radius: 10em;
- border: none;
- background-color: #3f51b5;
- color: white;
- transition: background-color .2s ease-in-out;
-
- &:hover {
- background-color: #5b6ed8;
- cursor: pointer;
- }
- }
-
- a {
- color: #3f51b5;
- text-decoration: none;
- }
- }
-
- label {
- flex: 1;
- font-style: italic;
- padding-left: 1em;
- color: #777;
-
- .required {
- color: red;
- }
- }
-
- input {
- flex: 1;
- background-color: #eeeeee;
- border: none;
- border-radius: 10em;
- padding: 1em 1em 1em 3em;
- }
- }
- }
}
\ No newline at end of file
diff --git a/frontend/src/app/pages/signin/signin.component.ts b/frontend/src/app/pages/signin/signin.component.ts
index d2b8005..8781ed0 100644
--- a/frontend/src/app/pages/signin/signin.component.ts
+++ b/frontend/src/app/pages/signin/signin.component.ts
@@ -6,13 +6,21 @@ import { Subscription, debounceTime, distinctUntilChanged, map } from 'rxjs';
import { SigninService } from './signin.service';
import { LoginService } from '../login/login.service';
import { FormError } from '../../core/model/FormError';
+import { SubmitButtonComponent } from "../../components/submit-button/submit-button.component";
+import { MatRippleModule } from '@angular/material/core';
@Component({
selector: 'app-signin',
standalone: true,
- imports: [ReactiveFormsModule, MatIconModule, RouterModule],
templateUrl: './signin.component.html',
styleUrl: './signin.component.scss',
+ imports: [
+ MatIconModule,
+ MatRippleModule,
+ ReactiveFormsModule,
+ RouterModule,
+ SubmitButtonComponent
+ ],
providers: [SigninService, LoginService]
})
export class SigninComponent implements OnInit, OnDestroy {
diff --git a/frontend/src/design_system/button.scss b/frontend/src/design_system/button.scss
new file mode 100644
index 0000000..e8c7b9c
--- /dev/null
+++ b/frontend/src/design_system/button.scss
@@ -0,0 +1,43 @@
+button.cod-button, a.cod-button {
+ padding: .8em 1.2em;
+ border-radius: 10em;
+ border: none;
+ background-color: #3f51b5;
+ color: white;
+ transition: background-color .2s ease-in-out;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ &:hover {
+ background-color: #5b6ed8;
+ cursor: pointer;
+ }
+
+ &.secondary {
+ color: #3f51b5;
+ background-color: white;
+
+ &:hover {
+ background-color: #f2f4ff;
+ }
+ }
+
+ &.icon {
+ $buttonSize: 2.5em;
+ width: $buttonSize;
+ height: $buttonSize;
+ padding: 0;
+
+ &.close {
+ position: absolute;
+ top: 1em;
+ right: 1em;
+ color: black;
+ }
+ }
+}
+
+a.cod-button {
+ text-decoration: none;
+}
\ No newline at end of file
diff --git a/frontend/src/design_system/form.scss b/frontend/src/design_system/form.scss
new file mode 100644
index 0000000..ffc4e80
--- /dev/null
+++ b/frontend/src/design_system/form.scss
@@ -0,0 +1,64 @@
+form.cod-form {
+ &.card {
+ width: 80%;
+ max-width: 20em;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ gap: 1em;
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);
+ border-radius: .5em;
+ padding: 1em 1.5em;
+ background-color: #ffffff;
+ }
+
+ h1 {
+ margin: 0;
+ }
+
+ div {
+ &.actions {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+
+ &.reversed {
+ flex-direction: row-reverse;
+ }
+ }
+
+ &.form-field {
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ gap: .1em;
+
+ mat-icon {
+ position: absolute;
+ top: 1.3em;
+ left: .5em;
+ color: #777;
+ }
+
+ label {
+ flex: 1;
+ font-style: italic;
+ padding-left: 1em;
+ color: #777;
+
+ .required {
+ color: red;
+ }
+ }
+
+ input {
+ flex: 1;
+ background-color: #eeeeee;
+ border: none;
+ border-radius: 10em;
+ padding: 1em 1em 1em 3em;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/frontend/src/design_system/index.scss b/frontend/src/design_system/index.scss
new file mode 100644
index 0000000..c878f89
--- /dev/null
+++ b/frontend/src/design_system/index.scss
@@ -0,0 +1,2 @@
+@use './button.scss';
+@use './form.scss';
\ No newline at end of file
diff --git a/frontend/src/locale/messages-fr.json b/frontend/src/locale/messages-fr.json
index 0ad0f17..5565c25 100644
--- a/frontend/src/locale/messages-fr.json
+++ b/frontend/src/locale/messages-fr.json
@@ -3,7 +3,7 @@
"translations": {
"3603720768157919481": "Non",
"4861926948802653243": "Oui",
- "5277292207846698726": "{$START_TAG_SPAN}©{$CLOSE_TAG_SPAN} 2016 - 2024 Tous droits réservés - 2.0-alpha {$START_LINK}{$START_TAG_MAT_ICON}favorite{$CLOSE_TAG_MAT_ICON}{$CLOSE_LINK}",
+ "6130235414952256120": "{$START_TAG_SPAN}©{$CLOSE_TAG_SPAN} 2016 - 2024 Tous droits réservés - 2.1 {$START_LINK}{$START_TAG_MAT_ICON}favorite{$CLOSE_TAG_MAT_ICON}{$CLOSE_LINK}",
"9214089025589249203": "Les indicateurs de vie du site seront disponibles ultérieurement...",
"1711651175531679766": "La documentation sera disponible ultérieurement...",
"6299155290121808295": "Développements realisés par",
@@ -11,6 +11,7 @@
"3394094310583807145": "{$START_TAG_MAT_ICON}description{$CLOSE_TAG_MAT_ICON} Mes publications",
"5690703874094076840": "{$START_TAG_MAT_ICON}logout{$CLOSE_TAG_MAT_ICON} Déconnexion",
"2454050363478003966": "Connexion",
+ "7819314041543176992": "Fermer",
"6379828571327118783": "Ajouter un bloc de code",
"933522671092765466": "Langage de programmation",
"5953425146193292178": "Bloc de code",
@@ -22,7 +23,6 @@
"4491342806775118195": "Il n'y a aucune image.",
"5036131155743433968": "{$START_TAG_MAT_ICON}upload_file{$CLOSE_TAG_MAT_ICON} Ajouter une nouvelle image",
"6852365376059142995": "Une erreur est survenue lors du chargements de vos images.",
- "7819314041543176992": "Fermer",
"6198966268398913224": "Une erreur technique est survenue lors de l'ajout de votre image.",
"3603937053948195893": "Édition",
"5701618810648052610": "Titre",
@@ -32,8 +32,8 @@
"382530603854484923": "Cliquez pour ajouter une section titre de niveau 1",
"7918008528690631661": "Cliquez pour ajouter une section titre de niveau 2",
"200884310255063303": "Cliquez pour ajouter une section titre de niveau 3",
- "327371240590280003": "Cliquez pour ajouter une image",
"2615926469669796978": "Cliquez pour ajouter un lien",
+ "327371240590280003": "Cliquez pour ajouter une image",
"4689637499823680515": "Cliquez pour ajouter un bloc de code",
"1065684538660053227": "Cliquez pour afficher l'aide",
"6205355627445317276": "Contenu",
@@ -60,6 +60,7 @@
"2308975396733519902": "Créer un compte",
"1037765878727976611": "Connexion réussie",
"6034686865111167926": "Une erreur est survenue lors de la connexion.",
+ "5304730975301536612": "Veuillez renseigner tous les champs avant de valider.",
"1041423751558601074": "Vos publications",
"5463894166935799864": "Rédiger une nouvelle publication",
"1519054954638405159": "Chargement de la liste de vos publications...",
diff --git a/frontend/src/locale/messages.json b/frontend/src/locale/messages.json
index 79b4ea4..8c8117d 100644
--- a/frontend/src/locale/messages.json
+++ b/frontend/src/locale/messages.json
@@ -3,7 +3,7 @@
"translations": {
"3603720768157919481": " No ",
"4861926948802653243": " Yes ",
- "5277292207846698726": "{$START_TAG_SPAN}©{$CLOSE_TAG_SPAN} 2016 - 2024 All rights reserved - 2.0-alpha {$START_LINK}{$START_TAG_MAT_ICON}favorite{$CLOSE_TAG_MAT_ICON}{$CLOSE_LINK}",
+ "6130235414952256120": "{$START_TAG_SPAN}©{$CLOSE_TAG_SPAN} 2016 - 2024 All rights reserved - 2.1 {$START_LINK}{$START_TAG_MAT_ICON}favorite{$CLOSE_TAG_MAT_ICON}{$CLOSE_LINK}",
"9214089025589249203": "Health checking will be available in future...",
"1711651175531679766": "Documentation will be available in future...",
"6299155290121808295": "Development realised by",
@@ -11,6 +11,7 @@
"3394094310583807145": "{$START_TAG_MAT_ICON}description{$CLOSE_TAG_MAT_ICON} My publications ",
"5690703874094076840": "{$START_TAG_MAT_ICON}logout{$CLOSE_TAG_MAT_ICON} Disconnect ",
"2454050363478003966": "Login",
+ "7819314041543176992": "Close",
"6379828571327118783": "Add a code block",
"933522671092765466": "Programming language",
"5953425146193292178": "Code block",
@@ -22,7 +23,6 @@
"4491342806775118195": "There is no any picture.",
"5036131155743433968": "{$START_TAG_MAT_ICON}upload_file{$CLOSE_TAG_MAT_ICON} Add new picture ",
"6852365376059142995": "An error occured while loading pictures.",
- "7819314041543176992": "Close",
"6198966268398913224": "A technical error occured while uploading your picture.",
"3603937053948195893": "Edition",
"5701618810648052610": "Title",
@@ -32,8 +32,8 @@
"382530603854484923": "Click to insert a title 1 section",
"7918008528690631661": "Click to insert a title 2 section",
"200884310255063303": "Click to insert a title 3 section",
- "327371240590280003": "Click to insert a picture",
"2615926469669796978": "Click to insert a link",
+ "327371240590280003": "Click to insert a picture",
"4689637499823680515": "Click to insert a code block",
"1065684538660053227": "Click to display editor help",
"6205355627445317276": "Content",
@@ -60,6 +60,7 @@
"2308975396733519902": "Create an account",
"1037765878727976611": "Authentication succeeded!",
"6034686865111167926": "Authentication failed.",
+ "5304730975301536612": "Please, fill the inputs before send.",
"1041423751558601074": "Your publications",
"5463894166935799864": "Add a new publication",
"1519054954638405159": "Publication loading...",
diff --git a/frontend/src/styles.scss b/frontend/src/styles.scss
index a8021ad..269712a 100644
--- a/frontend/src/styles.scss
+++ b/frontend/src/styles.scss
@@ -1,4 +1,5 @@
/* You can add global styles to this file, and also import other style files */
+@use './design_system/index.scss';
html, body { height: 100%; }
body {