import { Component } from '@angular/core'; import { TopLevelFilter } from '@yourcause/common'; import { I18nService } from '@yourcause/common/i18n'; import { ModalFactory } from '@yourcause/common/modals'; import { CreateEditReleaseNotesModalComponent } from '../create-edit-release-notes-modal/create-edit-release-notes-modal.component'; import { ReleaseNoteFromApi } from '../release-notes.typing'; import { ReleaseNoteService } from '../services/release-notes.service'; @Component({ selector: 'gc-release-notes-page', templateUrl: './release-notes-page.component.html', styleUrls: ['./release-notes-page.component.scss'] }) export class ReleaseNotesPageComponent { topLevelFilters: TopLevelFilter[] = [ new TopLevelFilter( 'text', 'releaseNumber', '', this.i18n.translate( 'common:textSearchByReleaseNumber', {}, 'Search by release number' ) ) ]; constructor ( private releaseNoteService: ReleaseNoteService, private i18n: I18nService, private modalFactory: ModalFactory ) { } get releaseNotes () { return this.releaseNoteService.releaseNotes; } async releaseNotesModal (row?: ReleaseNoteFromApi) { const response = await this.modalFactory.open( CreateEditReleaseNotesModalComponent, { row } ); if (response) { await this.releaseNoteService.saveReleaseNote({ id: row?.id, ...response }); } } async deleteReleaseNote (row: ReleaseNoteFromApi) { await this.releaseNoteService.deleteReleaseNote(row.id, row.releaseNumber); } }