mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-15 21:56:18 -08:00
feat(m3u): open the programme guide in place with a docked player
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
e20b9cc7a0
commit
44ad33beb9
13 files changed
+728
-386
No files matched your search
+6
-6
@@ -41,11 +41,11 @@ describe('WorkspaceCommandPaletteComponent', () => {
|
||||
run: () => undefined,
|
||||
},
|
||||
{
|
||||
id: 'multi-epg',
|
||||
label: 'Open Multi-EPG',
|
||||
id: 'epg-guide',
|
||||
label: 'Open programme guide',
|
||||
description: '',
|
||||
group: 'view',
|
||||
icon: 'view_list',
|
||||
icon: 'grid_view',
|
||||
keywords: ['epg', 'guide'],
|
||||
priority: 0,
|
||||
visible: true,
|
||||
@@ -126,7 +126,7 @@ describe('WorkspaceCommandPaletteComponent', () => {
|
||||
component.query.set('guide');
|
||||
|
||||
expect(component.flatCommands().map((command) => command.id)).toEqual([
|
||||
'multi-epg',
|
||||
'epg-guide',
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -135,7 +135,7 @@ describe('WorkspaceCommandPaletteComponent', () => {
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(component.flatCommands().map((command) => command.id)).toEqual([
|
||||
'multi-epg',
|
||||
'epg-guide',
|
||||
'playlist-search',
|
||||
'global-search',
|
||||
]);
|
||||
@@ -158,7 +158,7 @@ describe('WorkspaceCommandPaletteComponent', () => {
|
||||
component.onCommandClick(command);
|
||||
|
||||
expect(dialogRef.close).toHaveBeenCalledWith({
|
||||
commandId: 'multi-epg',
|
||||
commandId: 'epg-guide',
|
||||
query: '',
|
||||
});
|
||||
});
|
||||
|
||||
+2
@@ -120,6 +120,8 @@
|
||||
type="button"
|
||||
class="header-shortcut"
|
||||
mat-icon-button
|
||||
[class.is-active]="action.active?.() ?? false"
|
||||
[attr.aria-pressed]="action.active ? action.active() : null"
|
||||
(click)="onHeaderShortcutRequested()"
|
||||
[matTooltip]="action.tooltipKey | translate"
|
||||
[attr.aria-label]="action.ariaLabelKey | translate"
|
||||
|
||||
+5
@@ -394,3 +394,8 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.header-shortcut.is-active {
|
||||
background: var(--app-selection-surface);
|
||||
color: var(--app-selection-color);
|
||||
}
|
||||
+9
-9
@@ -877,7 +877,7 @@ describe('WorkspaceShellFacade', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('includes M3U navigation, playlist actions, and Multi-EPG on playlist routes', () => {
|
||||
it('includes M3U navigation, playlist actions, and the programme guide on playlist routes', () => {
|
||||
const headerContext = TestBed.inject(WorkspaceHeaderContextService);
|
||||
|
||||
activePlaylistSignal.set({
|
||||
@@ -889,14 +889,14 @@ describe('WorkspaceShellFacade', () => {
|
||||
});
|
||||
facade.currentUrl.set('/workspace/playlists/pl-m3u/groups');
|
||||
headerContext.setAction({
|
||||
id: 'm3u-multi-epg',
|
||||
icon: 'view_list',
|
||||
tooltipKey: 'TOP_MENU.OPEN_MULTI_EPG',
|
||||
ariaLabelKey: 'TOP_MENU.OPEN_MULTI_EPG',
|
||||
id: 'm3u-epg-guide',
|
||||
icon: 'grid_view',
|
||||
tooltipKey: 'TOP_MENU.OPEN_EPG_GUIDE',
|
||||
ariaLabelKey: 'TOP_MENU.OPEN_EPG_GUIDE',
|
||||
palette: {
|
||||
labelKey: 'TOP_MENU.OPEN_MULTI_EPG',
|
||||
labelKey: 'TOP_MENU.OPEN_EPG_GUIDE',
|
||||
descriptionKey:
|
||||
'WORKSPACE.SHELL.COMMANDS.OPEN_MULTI_EPG_DESCRIPTION',
|
||||
'WORKSPACE.SHELL.COMMANDS.OPEN_EPG_GUIDE_DESCRIPTION',
|
||||
keywords: ['epg', 'guide', 'schedule'],
|
||||
priority: 10,
|
||||
},
|
||||
@@ -907,7 +907,7 @@ describe('WorkspaceShellFacade', () => {
|
||||
|
||||
expect(commands.map((command) => command.id)).toEqual(
|
||||
expect.arrayContaining([
|
||||
'm3u-multi-epg',
|
||||
'm3u-epg-guide',
|
||||
'go-to-all',
|
||||
'go-to-favorites',
|
||||
'go-to-recent',
|
||||
@@ -915,7 +915,7 @@ describe('WorkspaceShellFacade', () => {
|
||||
])
|
||||
);
|
||||
expect(
|
||||
commands.find((command) => command.id === 'm3u-multi-epg')?.group
|
||||
commands.find((command) => command.id === 'm3u-epg-guide')?.group
|
||||
).toBe('view');
|
||||
expect(commands.some((command) => command.id === 'account-info')).toBe(
|
||||
false
|
||||
|
||||
Reference in new issue
Block a user