Components/delete-modal: reformat

This commit is contained in:
Toast 2025-02-05 01:08:38 +01:00
parent 093180f5b2
commit d1fd09ab75
3 changed files with 75 additions and 69 deletions

View file

@ -1,25 +1,25 @@
<div class="modal-header">
<h4 class="modal-title text-truncate">Delete {{ showName }}?</h4>
<button type="button" class="btn-close" aria-label="Close" (click)="this.activeModal.dismiss()"></button>
<h4 class="modal-title text-truncate">Delete {{ showName }}?</h4>
<button type="button" class="btn-close" aria-label="Close" (click)="this.activeModal.dismiss()"></button>
</div>
<div class="modal-body">
<p>Are you sure you want to delete this show?</p>
<b class="text-danger-emphasis">This cannot be reversed</b>
<div class="card" #collapse="ngbCollapse" [(ngbCollapse)]="formHidden">
<div class="card-body">
<form [formGroup]="confirmationForm" (ngSubmit)="formSubmitted()">
<label class="form-label">To avoid mistakes, please type the name of the show to continue:</label>
<input formControlName="name" type="text" class="form-control">
</form>
</div>
<p>Are you sure you want to delete this show?</p>
<b class="text-danger-emphasis">This cannot be reversed</b>
<div class="card" #collapse="ngbCollapse" [(ngbCollapse)]="formHidden">
<div class="card-body">
<form [formGroup]="confirmationForm" (ngSubmit)="formSubmitted()">
<label class="form-label">To avoid mistakes, please type the name of the show to continue:</label>
<input formControlName="name" type="text" class="form-control">
</form>
</div>
</div>
</div>
<div class="modal-footer">
<button
type="submit"
class="btn btn-danger"
(click)="deletePressed()"
[disabled]="confirmationForm.invalid && buttonDisabled"
>Delete
</button>
<button
type="submit"
class="btn btn-danger"
(click)="deletePressed()"
[disabled]="confirmationForm.invalid && buttonDisabled"
>Delete
</button>
</div>

View file

@ -1,23 +1,23 @@
import {ComponentFixture, TestBed} from '@angular/core/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import {DeleteModalComponent} from './delete-modal.component';
import { DeleteModalComponent } from './delete-modal.component';
describe('DeleteModalComponent', () => {
let component: DeleteModalComponent;
let fixture: ComponentFixture<DeleteModalComponent>;
let component: DeleteModalComponent;
let fixture: ComponentFixture<DeleteModalComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [DeleteModalComponent]
})
.compileComponents();
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [DeleteModalComponent]
})
.compileComponents();
fixture = TestBed.createComponent(DeleteModalComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
fixture = TestBed.createComponent(DeleteModalComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -1,46 +1,52 @@
import {Component, inject} from '@angular/core';
import {NgbActiveModal, NgbCollapse} from '@ng-bootstrap/ng-bootstrap';
import {FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';
import {
FormControl,
FormGroup,
FormsModule,
ReactiveFormsModule,
Validators
} from '@angular/forms';
@Component({
selector: 'app-delete-modal',
imports: [
NgbCollapse,
FormsModule,
ReactiveFormsModule
],
templateUrl: './delete-modal.component.html',
styleUrl: './delete-modal.component.css'
selector: 'app-delete-modal',
imports: [
NgbCollapse,
FormsModule,
ReactiveFormsModule
],
templateUrl: './delete-modal.component.html',
styleUrl: './delete-modal.component.css'
})
export class DeleteModalComponent {
protected activeModal: NgbActiveModal = inject(NgbActiveModal)
showName: string = ""
formHidden: boolean = true;
buttonDisabled: boolean = false;
confirmationForm: FormGroup
protected activeModal: NgbActiveModal = inject(NgbActiveModal)
showName: string = ""
formHidden: boolean = true;
buttonDisabled: boolean = false;
confirmationForm: FormGroup
constructor() {
this.confirmationForm = new FormGroup({
name: new FormControl("", Validators.required)
})
constructor() {
this.confirmationForm = new FormGroup({
name: new FormControl("",Validators.required)
})
}
deletePressed() {
const regex = new RegExp(this.showName)
const control = new FormControl("", [Validators.required, Validators.pattern(regex)])
this.confirmationForm.setControl("name", control)
if (this.formHidden) {
this.formHidden = false;
this.buttonDisabled = true;
} else {
this.formSubmitted()
}
}
deletePressed() {
if (this.formHidden) {
const regex = new RegExp(this.showName)
const control = new FormControl("", [Validators.required, Validators.pattern(regex)])
this.confirmationForm.setControl("name", control)
this.formHidden = false;
this.buttonDisabled = true;
} else {
this.formSubmitted()
}
}
formSubmitted() {
if (this.confirmationForm.valid) {
this.activeModal.close(true)
}
formSubmitted() {
if (this.confirmationForm.valid) {
this.activeModal.close(true)
}
}
}