Skip to content

Commit 8fb21d0

Browse files
authored
Merge pull request #630 from arabcoders/dev
Minor WebUI design update to include random background
2 parents e80c0a6 + 23ab782 commit 8fb21d0

9 files changed

Lines changed: 252 additions & 63 deletions

File tree

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ out of the box, this tool support `Jellyfin`, `Plex` and `Emby` media servers.
99

1010
## Updates
1111

12+
### 2025-03-13
13+
14+
We have recently added support for plex webhooks via tautulli which you can use if you don't have PlexPass. This should help
15+
close the gap with other media servers.
16+
1217
### 2025-02-19
1318

1419
We have introduced new experimental feature to allow syncing watch progress for played items. This feature is still in

composer.lock

Lines changed: 30 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/assets/css/style.css

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
border-radius: 15px;
1515
}
1616

17-
html,
18-
body {
17+
html {
1918
background-color: #eaeaea;
2019
}
2120

@@ -60,8 +59,7 @@ body {
6059
border-radius: 15px;
6160
}
6261

63-
html,
64-
body {
62+
html {
6563
background-color: #000000;
6664
}
6765

@@ -81,6 +79,7 @@ body {
8179
.is-full-mask :not(figure) {
8280
text-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
8381
}
82+
8483
.has-tooltip {
8584
border-bottom-color: rgba(255, 255, 255, 0.3);
8685
}
@@ -163,19 +162,18 @@ body {
163162
color: #5f00d1;
164163
}
165164

166-
@media screen and (min-width: 769px),
167-
print {
165+
@media screen and (min-width: 769px), print {
168166
.field.is-grouped-tablet {
169167
display: flex;
170168
gap: 0.75rem;
171169
justify-content: flex-start;
172170
}
173171

174-
.field.is-grouped-tablet>.control {
172+
.field.is-grouped-tablet > .control {
175173
flex-shrink: 0;
176174
}
177175

178-
.field.is-grouped-tablet>.control.is-expanded {
176+
.field.is-grouped-tablet > .control.is-expanded {
179177
flex-grow: 1;
180178
flex-shrink: 1;
181179
}
@@ -214,3 +212,15 @@ print {
214212
.page-leave-to {
215213
opacity: 0;
216214
}
215+
216+
.transparent-bg {
217+
opacity: 0.8;
218+
}
219+
220+
.bg-fanart {
221+
background-size: cover;
222+
background-position: center;
223+
background-attachment: fixed;
224+
background-repeat: no-repeat;
225+
background-blend-mode: darken;
226+
}

frontend/components/Connection.vue

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,26 @@
8484
</div>
8585
</div>
8686

87+
<div class="field">
88+
<label class="label" for="random_bg">Backgrounds</label>
89+
<div class="control">
90+
<input id="random_bg" type="checkbox" class="switch is-success" v-model="bg_enable">
91+
<label for="random_bg">Enable</label>
92+
<p class="help">Use random background image from your media backends.</p>
93+
</div>
94+
</div>
95+
96+
<div class="field">
97+
<label class="label" for="random_bg_opacity">
98+
Background Visibility: (<code>{{ bg_opacity }}</code>)
99+
</label>
100+
<div class="control">
101+
<input id="random_bg_opacity" style="width: 100%" type="range" v-model="bg_opacity" min="0.60"
102+
max="1.00" step="0.05">
103+
<p class="help">How visible the background image should be.</p>
104+
</div>
105+
</div>
106+
87107
<div class="field has-text-right">
88108
<div class="control">
89109
<button type="submit" class="button is-primary" :disabled="!api_url || !api_token">
@@ -148,13 +168,16 @@ const real_api_url = useStorage('api_url', window.location.origin)
148168
const real_api_path = useStorage('api_path', '/v1/api')
149169
const real_api_token = useStorage('api_token', '')
150170
171+
151172
const api_url = ref(toRaw(real_api_url.value))
152173
const api_path = ref(toRaw(real_api_path.value))
153174
const api_user = ref(toRaw(real_api_user.value))
154175
const api_token = ref(toRaw(real_api_token.value))
155-
156176
const exposeToken = ref(false)
157177
178+
const bg_enable = useStorage('bg_enable', true)
179+
const bg_opacity = useStorage('bg_opacity', 0.95)
180+
158181
const testApi = async () => {
159182
try {
160183
const response = await fetch(`${api_url.value}${api_path.value}/system/version`, {

frontend/components/EventView.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
<span>{{ !toggleData ? 'Show' : 'Hide' }} attached data</span>
9797
</h2>
9898
<div v-if="toggleData" class="is-relative">
99-
<code class="text-container is-block" :class="{ 'is-pre': !wrapLines, 'is-pre-wrap': wrapLines }">
99+
<code class="text-container is-block p-4" :class="{ 'is-pre': !wrapLines, 'is-pre-wrap': wrapLines }">
100100
{{ JSON.stringify(item.event_data, null, 2) }}
101101
</code>
102102
<button class="button m-4" v-tooltip="'Copy event data'"
@@ -115,7 +115,7 @@
115115
<span>{{ !toggleLogs ? 'Show' : 'Hide' }} event logs</span>
116116
</h2>
117117
<div v-if="toggleLogs" class="is-relative">
118-
<code class="is-block text-container" :class="{ 'is-pre': !wrapLines, 'is-pre-wrap': wrapLines }">
118+
<code class="is-block text-container p-4" :class="{ 'is-pre': !wrapLines, 'is-pre-wrap': wrapLines }">
119119
<span class="is-log-line is-block pt-1" v-for="(item, index) in filteredRows" :key="'log_line-' + index"
120120
v-text="item"/>
121121
</code>
@@ -134,7 +134,7 @@
134134
<span>{{ !toggleOptions ? 'Show' : 'Hide' }} attached options</span>
135135
</h2>
136136
<div v-if="toggleOptions" class="is-relative">
137-
<code class="is-block text-container" :class="{ 'is-pre': !wrapLines, 'is-pre-wrap': wrapLines }">
137+
<code class="is-block text-container p-4" :class="{ 'is-pre': !wrapLines, 'is-pre-wrap': wrapLines }">
138138
{{ JSON.stringify(item.options, null, 2) }}
139139
</code>
140140
<button class="button m-4" v-tooltip="'Copy options'"

0 commit comments

Comments
 (0)