update song text in show

This commit is contained in:
2022-04-03 13:01:04 +02:00
parent 66ba0759ed
commit 253d92e34a
3 changed files with 62 additions and 20 deletions

View File

@@ -6,11 +6,16 @@ import {getScale} from '../../../songs/services/key.helper';
import {FormControl} from '@angular/forms';
import {ChordMode} from '../../../../widget-modules/components/song-text/song-text.component';
import {Show} from '../../services/show';
import {faPenToSquare} from '@fortawesome/free-solid-svg-icons/faPenToSquare';
import {faSave} from '@fortawesome/free-solid-svg-icons/faSave';
import {faEraser} from '@fortawesome/free-solid-svg-icons/faEraser';
import {fade} from '../../../../animations';
@Component({
selector: 'app-song',
templateUrl: './song.component.html',
styleUrls: ['./song.component.less'],
animations: [fade],
})
export class SongComponent implements OnInit {
@Input() public show: Show | null = null;
@@ -20,8 +25,13 @@ export class SongComponent implements OnInit {
public keys: string[] = [];
public faDelete = faTrash;
public faEdit = faPenToSquare;
public faSave = faSave;
public faEraser = faEraser;
public keyFormControl: FormControl = new FormControl();
public iSong: ShowSong | null = null;
public edit = false;
public editSongControl = new FormControl();
public constructor(private showSongService: ShowSongService) {}
@@ -40,6 +50,22 @@ export class SongComponent implements OnInit {
});
}
public onEdit(): void {
if (this.iSong) this.editSongControl.setValue(this.iSong.text);
this.edit = true;
}
public onDiscard(): void {
this.editSongControl.setValue(null);
this.edit = false;
}
public onSave(): void {
if (this.showId && this.iSong) void this.showSongService.update$(this.showId, this.iSong.id, {text: this.editSongControl.value as string});
this.editSongControl.setValue(null);
this.edit = false;
}
public async onDelete(): Promise<void> {
if (!this.showId || !this.iSong || this.index === -1) return;
await this.showSongService.delete$(this.showId, this.iSong.id, this.index);