Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
| ------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

## Table of contents

- [Demo](#demo)
- [Tech Stack](#tech-stack)
- [Features](#features)
Expand All @@ -19,7 +20,6 @@
- [Used By](#used-by)
- [FAQ](#faq)


## Demo

Link to demo
Expand Down
43 changes: 43 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
"@angular/platform-browser": "~13.3.0",
"@angular/platform-browser-dynamic": "~13.3.0",
"@angular/router": "~13.3.0",
"@ngx-translate/core": "^14.0.0",
"@ngx-translate/http-loader": "^7.0.0",
"jwt-decode": "^3.1.2",
"moment": "^2.29.3",
"ng-zorro-antd": "^13.2.1",
Expand Down
1 change: 1 addition & 0 deletions src/app/app.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
</section>
<app-footer class="main-container__footer"></app-footer>
</main>
<app-localization></app-localization>
2 changes: 2 additions & 0 deletions src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { BoardModule } from './board/board.module';
import { DialogModule } from './dialog/dialog.module';

import { ErrorIntercept } from './services/error.interceptor';
import { LocalizationModule } from './localization/localization.module';

registerLocaleData(en);

Expand All @@ -32,6 +33,7 @@ registerLocaleData(en);
SpaceModule,
BoardModule,
DialogModule,
LocalizationModule,
],
providers: [
{ provide: NZ_I18N, useValue: en_US },
Expand Down
49 changes: 23 additions & 26 deletions src/app/auth/auth.component.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
<app-localization></app-localization>
<div class="login-page">
<div class="login-wrapper">
<nz-tabset class="login-tabs">
<nz-tab nzTitle="Sign in">
<nz-tab [nzTitle]="'signin' | translate">
<form class="login-form" [formGroup]="form" novalidate (ngSubmit)="submit()">
<label class="label">
Login:
{{ 'loginH' | translate }}:
<input
type="text"
placeholder="your login"
[placeholder]="'yourLogin' | translate"
#myLogin
[value]="authService.login"
(input)="authService.loginHandle(myLogin.value)"
Expand All @@ -21,23 +22,20 @@
class="alert alert-danger"
*ngIf="form.controls['userEmail'].errors?.['required'] && form.controls['userEmail'].touched"
>
Please enter a login
{{ 'enterALogin' | translate }}
</div>
</label>
<label class="label">
Password:
{{ 'password' | translate }}:
<input
[type]="showPassSighIn ? 'text' : 'password'"
placeholder="your password"
[placeholder]="'yourPassword' | translate"
#myPassword
[value]="authService.password"
(input)="authService.passwordHandle(myPassword.value)"
formControlName="userPassword"
[class]="{
input: true,
error: form.controls['userPassword'].errors?.['required']
&& form.controls['userPassword'].touched
}"
[class]="{ input: true, error:
form.controls['userPassword'].errors?.['required'] && form.controls['userPassword'].touched }"
/>
<div class="input-eye" *ngIf="!showPassSighIn" (click)="showPassSighInHandle()">
<i nz-icon nzType="eye-invisible" nzTheme="outline"></i>
Expand All @@ -50,19 +48,19 @@
*ngIf="form.controls['userPassword'].errors?.['required']
&& form.controls['userPassword'].touched"
>
Please enter a password
{{ 'enterAPassword' | translate }}
</div>
</label>
<button class="login-button" nzType="primary" nz-button>Sign in</button>
<button class="login-button" nzType="primary" nz-button>{{ 'signin' | translate }}</button>
</form>
</nz-tab>
<nz-tab nzTitle="Sign up">
<nz-tab [nzTitle]="'signup' | translate">
<form class="login-form" [formGroup]="formSignUp" novalidate (ngSubmit)="submitSignUp()">
<label class="label">
Name:
{{ 'name' | translate }}:
<input
type="text"
placeholder="your name"
[placeholder]="'yourName' | translate"
#mySName
[value]="authService.signUpName"
(input)="authService.signUpNameHandle(mySName.value)"
Expand All @@ -76,14 +74,14 @@
class="alert alert-danger"
*ngIf="formSignUp.controls['userName'].errors?.['required'] && formSignUp.controls['userName'].touched"
>
Please enter your name
{{ 'enterYourName' | translate }}
</div>
</label>
<label class="label">
Login:
{{ 'loginH' | translate }}:
<input
type="text"
placeholder="your login"
[placeholder]="'yourLogin' | translate"
#mySLogin
[value]="authService.signUpLogin"
(input)="authService.signUpLoginHandle(mySLogin.value)"
Expand All @@ -97,14 +95,14 @@
class="alert alert-danger"
*ngIf="formSignUp.controls['userLogin'].errors?.['required'] && formSignUp.controls['userLogin'].touched"
>
Please enter a login
{{ 'enterALogin' | translate }}
</div>
</label>
<label class="label">
Password:
{{ 'password' | translate }}:
<input
[type]="showPassSighUp ? 'text' : 'password'"
placeholder="your password"
[placeholder]="'yourPassword' | translate"
#mySPassword
[value]="authService.signUpPassword"
(input)="authService.signUpPasswordHandle(mySPassword.value)"
Expand All @@ -127,18 +125,17 @@
*ngIf="formSignUp.controls['userNewPassword'].errors?.['required']
&& formSignUp.controls['userNewPassword'].touched"
>
Please enter a password
{{ 'enterAPassword' | translate }}
</div>
<div
class="alert alert-danger"
*ngIf="formSignUp.controls['userNewPassword'].errors?.['pattern']
&& formSignUp.controls['userNewPassword'].touched"
>
Your password isn't strong enough! You should have one upper letter, one lower letter, one number, one
special symbol (?, !, @, #, $, %, ^, &, *, -) and length more 8 symbols.
{{ 'passwordVar' | translate }}
</div>
</label>
<button class="login-button" nzType="primary" nz-button>Sign up</button>
<button class="login-button" nzType="primary" nz-button>{{ 'signup' | translate }}</button>
</form>
</nz-tab>
</nz-tabset>
Expand Down
2 changes: 2 additions & 0 deletions src/app/auth/auth.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { AuthComponent } from './auth.component';
import { AuthRoutingModule } from './auth-routing.module';
import { AuthButtonComponent } from './components/auth-button/auth-button.component';
import { LoaderModule } from '../loader/loader.module';
import { LocalizationModule } from '../localization/localization.module';

@NgModule({
declarations: [AuthButtonComponent, AuthComponent],
Expand All @@ -23,6 +24,7 @@ import { LoaderModule } from '../loader/loader.module';
NzTabsModule,
LoaderModule,
NzIconModule,
LocalizationModule,
],
exports: [AuthButtonComponent],
providers: [NzMessageService],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
<svg class="login__authorization" viewBox="0 0 70 70" width="100%">
<path d="M35,35m-23,0a23,23 0 1,1 46,0a23,23 0 1,1 -46,0" fill="transparent" id="tophalf" />
<text>
<textPath xlink:href="#tophalf" startOffset="0%">{{ isLogged ? 'Log out ·' : 'Log in ·' }}</textPath>
<textPath xlink:href="#tophalf" startOffset="33%">{{ isLogged ? 'Log out ·' : 'Log in ·' }}</textPath>
<textPath xlink:href="#tophalf" startOffset="66%">{{ isLogged ? 'Log out ·' : 'Log in ·' }}</textPath>
<textPath xlink:href="#tophalf" startOffset="0%">{{ (isLogged ? 'logout' : 'login') | translate }} ·</textPath>
<textPath xlink:href="#tophalf" startOffset="33%">{{ (isLogged ? 'logout' : 'login') | translate }} ·</textPath>
<textPath xlink:href="#tophalf" startOffset="66%">{{ (isLogged ? 'logout' : 'login') | translate }} ·</textPath>
</text>
</svg>
</ng-template>
Expand Down
6 changes: 3 additions & 3 deletions src/app/board/board-item/board-item.component.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<app-dialog (emitText)="editTask($event, item)" [isNeedDescription]="true" [question]="'Edit task: ' + item.text">
<div nz-tooltip nzTooltipTitle="Edit" nzTooltipPlacement="left">
<div nz-tooltip [nzTooltipTitle]="'edit' | translate" nzTooltipPlacement="left">
<div class="board-item">
<div class="board-item__text">
<div class="mt-1">{{ item.text }}</div>
<div class="mt-1">{{ item.description }}</div>
</div>
<app-confirm
[question]="'Are you sure you want to delete \'' + item.text + '\'?'"
[question]="('deleteColumn' | translate) + item.text + '?'"
(click)="$event.stopPropagation()"
(emitConfirm)="onCardDelete($event, item.id)"
>
Expand Down Expand Up @@ -42,7 +42,7 @@

<div *ngIf="open" (click)="$event.stopPropagation()">
<form class="w-100 mb-2">
<div>Leave a comment</div>
<div>{{ 'leaveAComment' | translate }}</div>
<div class="board-comment-add">
<input
class="input"
Expand Down
2 changes: 2 additions & 0 deletions src/app/board/board.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { SpaceModule } from '../space/space.module';
import { ConfirmModule } from '../confirm/confirm.module';
import { EditColumnTitleComponent } from './edit-column-title/edit-column-title.component';
import { LoaderModule } from '../loader/loader.module';
import { LocalizationModule } from '../localization/localization.module';

@NgModule({
declarations: [
Expand All @@ -38,6 +39,7 @@ import { LoaderModule } from '../loader/loader.module';
ConfirmModule,
NzToolTipModule,
LoaderModule,
LocalizationModule,
],
exports: [BoardComponent, BoardItemComponent],
})
Expand Down
7 changes: 4 additions & 3 deletions src/app/board/board/board.component.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<app-localization></app-localization>
<div class="space">
<space-left-aside pageName="Board Page"></space-left-aside>
<space-left-aside [pageName]="'boardPage' | translate"></space-left-aside>
<div
class="space__main"
[class]="{
Expand All @@ -19,7 +20,7 @@
<div class="board-title column-header" cdkDropList (cdkDropListDropped)="drop($event)">
<app-edit-column-title [column]="column"></app-edit-column-title>
<app-confirm
[question]="'Are you sure you want to delete \'' + column.title + '\'?'"
[question]="('deleteColumn' | translate) + column.title + '?'"
(click)="$event.stopPropagation()"
(emitConfirm)="onDeleteColumn($event, column.id)"
>
Expand All @@ -31,7 +32,7 @@
<app-dialog
(emitText)="onAddCard($event, column.id)"
[isNeedDescription]="true"
[question]="'Add new card in ' + column.title + ' column'"
[question]="('addCard' | translate) + column.title + ' ' + ('column' | translate)"
>
<button class="btn-add" nzType="default" nz-button>+</button>
</app-dialog>
Expand Down
4 changes: 2 additions & 2 deletions src/app/board/header/header.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<span class="mat-h2 header__title">{{ title }}</span>
</div>
<div>
<app-dialog (emitText)="addColumn($event)" question="Add new column">
<app-dialog (emitText)="addColumn($event)" [question]="'addNewColum' | translate">
<button nz-button nzType="primary" [disabled]="boardService.isLoadingDesk" class="header__button">
New Column
{{ 'newColumn' | translate }}
</button>
</app-dialog>
</div>
Expand Down
7 changes: 4 additions & 3 deletions src/app/confirm/confirm-body/confirm-body.component.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
<div>
<h3>{{ data.question }}</h3>
<form class="w-100">
<div>Confirmation modal</div>
<div>{{ 'confirmationModal' | translate }}</div>
</form>
</div>
<div class="gap-10">
<button nz-button nzType="primary" [mat-dialog-close]="true">Confirm</button>
<button nz-button nzType="default" (click)="onNoClick()">Cancel</button>
<button nz-button nzType="primary" [mat-dialog-close]="true">{{ 'сonfirm' | translate }}</button>
<button nz-button nzType="default" (click)="onNoClick()">{{ 'cancel' | translate }}</button>
</div>
<app-localization></app-localization>
3 changes: 2 additions & 1 deletion src/app/confirm/confirm.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ import { MatDialogModule } from '@angular/material/dialog';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { ConfirmComponent } from './confirm/confirm.component';
import { ConfirmBodyComponent } from './confirm-body/confirm-body.component';
import { LocalizationModule } from '../localization/localization.module';

@NgModule({
declarations: [ConfirmComponent, ConfirmBodyComponent],
imports: [CommonModule, MatDialogModule, NzButtonModule],
imports: [CommonModule, MatDialogModule, NzButtonModule, LocalizationModule],
exports: [ConfirmComponent],
})
export class ConfirmModule {}
3 changes: 2 additions & 1 deletion src/app/core/components/footer/footer.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
</a>
<b class="footer__text">2022</b>
<p class="footer__text footer__links">
<strong>App developers: </strong>
<strong>{{ 'appDevelopers' | translate }}: </strong>
<a class="footer__link" href="https://github.com/PoMaKoM" target="_blank" rel="author">
<i nz-icon nzType="github" nzTheme="outline"></i>
PoMaKoM,
Expand All @@ -23,3 +23,4 @@
</a>
</p>
</footer>
<app-localization></app-localization>
Loading