diff --git a/src/app/portals/epg-view/epg-view.component.html b/src/app/portals/epg-view/epg-view.component.html new file mode 100644 index 000000000..d1e7b3da3 --- /dev/null +++ b/src/app/portals/epg-view/epg-view.component.html @@ -0,0 +1,26 @@ +
Electronic Program Guide
+ + @for (item of epgItems; track $index) { + +
{{ item.title }}
+
+ {{ item.description }} +
+
+ {{ item.start | date: 'HH:mm' }} - + {{ item.end | date: 'HH:mm (dd.MM.yyyy)' }} +
+ + + +
+ } + + @if (epgItems?.length === 0) { + + {{ 'EPG.EPG_NOT_AVAILABLE_CHANNEL_TITLE' | translate }} + + } +
diff --git a/src/app/portals/epg-view/epg-view.component.ts b/src/app/portals/epg-view/epg-view.component.ts new file mode 100644 index 000000000..45c56e92b --- /dev/null +++ b/src/app/portals/epg-view/epg-view.component.ts @@ -0,0 +1,39 @@ +import { DatePipe } from '@angular/common'; +import { Component, Input, inject } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialog } from '@angular/material/dialog'; +import { MatDividerModule } from '@angular/material/divider'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; +import { TranslateModule } from '@ngx-translate/core'; +import { EpgItemDescriptionComponent } from '../../player/components/epg-list/epg-item-description/epg-item-description.component'; +import { EpgItem } from '../../xtream/epg-item.interface'; + +@Component({ + standalone: true, + selector: 'app-epg-view', + templateUrl: './epg-view.component.html', + imports: [ + DatePipe, + EpgItemDescriptionComponent, + MatButtonModule, + MatDividerModule, + MatIconModule, + MatListModule, + TranslateModule, + ], +}) +export class EpgViewComponent { + @Input() epgItems: EpgItem[]; + + dialog = inject(MatDialog); + + showDetails(item: EpgItem) { + this.dialog.open(EpgItemDescriptionComponent, { + data: { + title: [{ value: item.title, lang: item.lang }], + desc: [{ value: item.description }], + }, + }); + } +} diff --git a/src/app/xtream/epg-item.interface.ts b/src/app/xtream/epg-item.interface.ts new file mode 100644 index 000000000..da680ab70 --- /dev/null +++ b/src/app/xtream/epg-item.interface.ts @@ -0,0 +1,12 @@ +export interface EpgItem { + id: string; + epg_id: string; + title: string; + lang: string; + start: string; + end: string; + description: string; + channel_id: string; + start_timestamp: string; + stop_timestamp: string; +}