From a37f462f26e0e1abf63c1443da84d69988442bf8 Mon Sep 17 00:00:00 2001 From: David Trattnig <david@subsquare.at> Date: Wed, 7 Sep 2022 20:09:49 +0200 Subject: [PATCH] feat: optionally render link in programme table --- src/components/Programme.svelte | 2 ++ src/paper/ProgrammePaper.svelte | 33 ++++++++++++++++++--------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/components/Programme.svelte b/src/components/Programme.svelte index cbe2907..385b202 100644 --- a/src/components/Programme.svelte +++ b/src/components/Programme.svelte @@ -19,6 +19,7 @@ export let refreshTime = '60' export let view = 'card' // 'card' or 'paper' /* Nested Component Props */ + export let renderLinks = true export let renderhtml = false // Attention: to avoid XSS attack vectors use with trusted API sources only export let displayCatTitle = false export let displayCatIcons = false @@ -131,6 +132,7 @@ {programme} {urlEpisodeDetail} {urlShowDetail} + {renderLinks} {renderhtml} /> </div> {:else} diff --git a/src/paper/ProgrammePaper.svelte b/src/paper/ProgrammePaper.svelte index 225f995..be4263e 100644 --- a/src/paper/ProgrammePaper.svelte +++ b/src/paper/ProgrammePaper.svelte @@ -7,6 +7,7 @@ export let programme = undefined export let urlEpisodeDetail = undefined export let urlShowDetail = undefined + export let renderLinks = true export let renderhtml = false </script> @@ -22,16 +23,17 @@ background-color: var(--mdc-theme-primary); color: var(--mdc-theme-text-secondary-on-background); } - .episode.active a { - color: var(--mdc-theme-text-primary-on-background); - } + .episode.active > .episode-time:after { content: 'NOW'; font-weight: bold; } - /* SMUI components need to be selected via global namespace */ + /* sub-components need to be selected via global namespace */ + :global(.episode.active a) { + color: var(--mdc-theme-text-primary-on-background); + } * :global(.episode.active > .episode-time .time-start) { display: none; } @@ -60,20 +62,21 @@ <div class="details-wrapper"> <div class="episode-title"> {#if episode.customUrl} - <a href={episode.customUrl}> - <Display value={episode.note_title} {renderhtml} /> - </a> + <Display + value={episode.note_title} + url={renderLinks ? episode.customUrl : null} + {renderhtml} /> {:else if hasEpisodeTitle(episode)} <!-- #FIXME "emmission_ID" should be "timeslot_id", "episode_id" or "id" only --> - <a href={urlEpisodeDetail + episode.emission_ID}> - <Display value={episode.title} {renderhtml} /> - </a> + <Display + value={episode.title} + url={renderLinks ? urlEpisodeDetail + episode.emission_ID : null} + {renderhtml} /> {:else} - <a href={urlShowDetail + episode.show.slug}> - <Display - value={episode.show ? episode.show.name : ''} - {renderhtml} /> - </a> + <Display + value={episode.show ? episode.show.name : ''} + url={renderLinks ? urlShowDetail + episode.show.slug : null} + {renderhtml} /> {/if} </div> <div class="episode-tagline"> -- GitLab