Skip to content

Commit

Permalink
chore(merge): merge develop into main
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] authored Aug 28, 2024
2 parents 849634d + 8eaa040 commit c7cc87c
Show file tree
Hide file tree
Showing 22 changed files with 371 additions and 212 deletions.
2 changes: 1 addition & 1 deletion apps/badman/src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<link rel="manifest" href="manifest.json" />
<meta name="theme-color" content="#212121" />
<meta name="description" content="Badminton App" />
<meta name="apple-mobile-web-badman-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<link
rel="apple-touch-startup-image"
href="assets/icons/apple-splash-dark-2048-2732.jpg"
Expand Down
111 changes: 111 additions & 0 deletions database/migrations/20240828181837-second change date.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/* eslint-disable @typescript-eslint/no-var-requires */
'use strict';

/** @type {import('sequelize-cli').Migration} */
module.exports = {
up: async (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(async (t) => {
try {
await queryInterface.renameColumn(
{
schema: 'event',
tableName: 'EventCompetitions',
},
'changeCloseDate',
'changeCloseDatePeriod1',
{ transaction: t },
);

await queryInterface.renameColumn(
{
schema: 'event',
tableName: 'EventCompetitions',
},
'changeCloseRequestDate',
'changeCloseRequestDatePeriod1',
{ transaction: t },
);

await queryInterface.addColumn(
{
schema: 'event',
tableName: 'EventCompetitions',
},
'changeCloseDatePeriod2',
{
type: Sequelize.DATE,
defaultValue: null,
allowNull: true,
},
{ transaction: t },
);

await queryInterface.addColumn(
{
schema: 'event',
tableName: 'EventCompetitions',
},
'changeCloseRequestDatePeriod2',
{
type: Sequelize.DATE,
defaultValue: null,
allowNull: true,
},
{ transaction: t },
);


} catch (err) {
console.error('We errored with', err?.message ?? err);
t.rollback();
}
});
},

down: async (queryInterface) => {
return queryInterface.sequelize.transaction(async (t) => {
try {
await queryInterface.renameColumn(
{
schema: 'event',
tableName: 'EventCompetitions',
},
'changeCloseDatePeriod1',
'changeCloseDate',
{ transaction: t },
);

await queryInterface.renameColumn(
{
schema: 'event',
tableName: 'EventCompetitions',
},
'changeCloseRequestDatePeriod1',
'changeCloseRequestDate',
{ transaction: t },
);

await queryInterface.removeColumn(
{
schema: 'event',
tableName: 'EventCompetitions',
},
'changeCloseDatePeriod2',
{ transaction: t },
);

await queryInterface.removeColumn(
{
schema: 'event',
tableName: 'EventCompetitions',
},
'changeCloseRequestDatePeriod2',
{ transaction: t },
);
} catch (err) {
console.error('We errored with', err);
t.rollback();
}
});
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,19 @@ export class EventCompetition extends Model<

@Field(() => Date, { nullable: true })
@Column(DataType.DATE)
changeCloseDate?: Date;
changeCloseDatePeriod1?: Date;

@Field(() => Date, { nullable: true })
@Column(DataType.DATE)
changeCloseRequestDate?: Date;
changeCloseDatePeriod2?: Date;

@Field(() => Date, { nullable: true })
@Column(DataType.DATE)
changeCloseRequestDatePeriod1?: Date;

@Field(() => Date, { nullable: true })
@Column(DataType.DATE)
changeCloseRequestDatePeriod2?: Date;

@Field(() => EventCompetitionMetaType, { nullable: true })
@Column({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,23 +219,29 @@ export class EncounterChangeCompetitionResolver {
include: [
{
model: EventCompetition,
attributes: ['id', 'changeCloseRequestDate'],
attributes: [
'id',
'season',
'changeCloseRequestDatePeriod1',
'changeCloseRequestDatePeriod2',
],
},
],
},
],
logging: (msg) => this.logger.debug(msg),
});

// can request new dates in timezone europe/brussels
const event = draw?.subEventCompetition?.eventCompetition;
const closedDate =
encounter.date?.getFullYear() === event?.season
? event?.changeCloseRequestDatePeriod1
: event?.changeCloseRequestDatePeriod2;

const canRequestNewDates = moment
.tz('europe/brussels')
.isBefore(
moment.tz(
draw?.subEventCompetition?.eventCompetition?.changeCloseRequestDate,
'europe/brussels',
),
);
.isBefore(moment.tz(closedDate, 'europe/brussels'));

await this.changeOrUpdate(
encounterChange,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ <h2 mat-dialog-title>
</mat-form-field>
</div>
}
@if (requestDateControl) {
@if (changeCloseRequestDatePeriod1Control) {
<div>
<mat-form-field>
<mat-label>{{ 'all.competition.open-close.close-new-requets' | translate }}</mat-label>
Expand All @@ -31,15 +31,15 @@ <h2 mat-dialog-title>
></mtx-datetimepicker>
<input
[mtxDatetimepicker]="datetimePicker"
[formControl]="requestDateControl"
[formControl]="changeCloseRequestDatePeriod1Control"
matInput
required
/>
<mtx-datetimepicker-toggle [for]="datetimePicker" matSuffix></mtx-datetimepicker-toggle>
</mat-form-field>
</div>
}
@if (closeControl) {
@if (changeCloseDatePeriod1Control) {
<div>
<mat-form-field>
<mat-label>{{ 'all.competition.open-close.close-accept-requests' | translate }}</mat-label>
Expand All @@ -51,7 +51,50 @@ <h2 mat-dialog-title>
></mtx-datetimepicker>
<input
[mtxDatetimepicker]="datetimePicker"
[formControl]="closeControl"
[formControl]="changeCloseDatePeriod1Control"
matInput
required
/>
<mtx-datetimepicker-toggle [for]="datetimePicker" matSuffix></mtx-datetimepicker-toggle>
</mat-form-field>
</div>
}

<br />

@if (changeCloseRequestDatePeriod2Control) {
<div>
<mat-form-field>
<mat-label>{{ 'all.competition.open-close.close-new-requets' | translate }}</mat-label>
<mtx-datetimepicker
#datetimePicker
type="datetime"
[timeInterval]="15"
[timeInput]="true"
></mtx-datetimepicker>
<input
[mtxDatetimepicker]="datetimePicker"
[formControl]="changeCloseRequestDatePeriod2Control"
matInput
required
/>
<mtx-datetimepicker-toggle [for]="datetimePicker" matSuffix></mtx-datetimepicker-toggle>
</mat-form-field>
</div>
}
@if (changeCloseDatePeriod2Control) {
<div>
<mat-form-field>
<mat-label>{{ 'all.competition.open-close.close-accept-requests' | translate }}</mat-label>
<mtx-datetimepicker
#datetimePicker
type="datetime"
[timeInterval]="15"
[timeInput]="true"
></mtx-datetimepicker>
<input
[mtxDatetimepicker]="datetimePicker"
[formControl]="changeCloseDatePeriod2Control"
matInput
required
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import { TranslateModule } from '@ngx-translate/core';
MatDialogModule,
MatInputModule,
MtxDatetimepickerModule,
MtxMomentDatetimeModule
MtxMomentDatetimeModule,
],
templateUrl: './set-open-close-change-encounter.component.html',
styleUrls: ['./set-open-close-change-encounter.component.scss'],
Expand All @@ -30,22 +30,34 @@ export class OpenCloseChangeEncounterDateDialogComponent implements OnInit {
public dialogRef = inject<MatDialogRef<OpenCloseChangeEncounterDateDialogComponent>>(
MatDialogRef<OpenCloseChangeEncounterDateDialogComponent>,
);
public data = inject<{ openDate: Date; closeDate: Date; requestDate: Date }>(MAT_DIALOG_DATA);
public data = inject<{
openDate: Date;
changeCloseDatePeriod1: Date;
changeCloseDatePeriod2: Date;
changeCloseRequestDatePeriod1: Date;
changeCloseRequestDatePeriod2: Date;
}>(MAT_DIALOG_DATA);
openControl?: FormControl;
closeControl?: FormControl;
requestDateControl?: FormControl;
changeCloseDatePeriod1Control?: FormControl;
changeCloseDatePeriod2Control?: FormControl;
changeCloseRequestDatePeriod1Control?: FormControl;
changeCloseRequestDatePeriod2Control?: FormControl;

ngOnInit(): void {
this.openControl = new FormControl(this.data.openDate);
this.closeControl = new FormControl(this.data.closeDate);
this.requestDateControl = new FormControl(this.data.requestDate);
this.changeCloseDatePeriod1Control = new FormControl(this.data.changeCloseDatePeriod1);
this.changeCloseDatePeriod2Control = new FormControl(this.data.changeCloseDatePeriod2);
this.changeCloseRequestDatePeriod1Control = new FormControl(this.data.changeCloseRequestDatePeriod1);
this.changeCloseRequestDatePeriod2Control = new FormControl(this.data.changeCloseRequestDatePeriod2);
}

save() {
this.dialogRef.close({
openDate: this.openControl?.value,
closeDate: this.closeControl?.value,
requestDate: this.requestDateControl?.value,
changeCloseDatePeriod1: this.changeCloseDatePeriod1Control?.value,
changeCloseDatePeriod2: this.changeCloseDatePeriod2Control?.value,
changeCloseRequestDatePeriod1: this.changeCloseRequestDatePeriod1Control?.value,
changeCloseRequestDatePeriod2: this.changeCloseRequestDatePeriod2Control?.value,
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,7 @@
<mat-icon>more_vert</mat-icon>
</button>
<mat-menu #menu="matMenu">
<button
mat-menu-item
(click)="editClaims()"
[disabled]="this.role()?.locked"
[matTooltip]="'all.security.roles.locked' | translate"
[matTooltipDisabled]="!this.role()?.locked"
>
<button mat-menu-item (click)="editClaims()">
<mat-icon>edit</mat-icon>
<span>{{ 'all.button.edit' | translate }}</span>
</button>
Expand Down
14 changes: 6 additions & 8 deletions libs/frontend/components/src/shell/shell/shell.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,12 @@
}
</badman-has-claim>
<badman-has-claim [any]="['*_change:encounter', 'change-any:encounter']">
@if (this.canChange()) {
<a
mat-list-item
(click)="isHandset() && drawer.close()"
[routerLink]="['/competition', 'change-encounter']"
>{{ 'all.shell.sidebar.competition.change-encounter' | translate }}</a
>
}
<a
mat-list-item
(click)="isHandset() && drawer.close()"
[routerLink]="['/competition', 'change-encounter']"
>{{ 'all.shell.sidebar.competition.change-encounter' | translate }}</a
>
</badman-has-claim>
</mat-nav-list>
</div>
Expand Down
Loading

0 comments on commit c7cc87c

Please sign in to comment.