Skip to content

Commit aa00e5f

Browse files
committed
Apply custom patches after upstream reset
1 parent 3a330ce commit aa00e5f

6 files changed

Lines changed: 139 additions & 23 deletions

File tree

merge_results.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## Merge Results
2+
3+
✅ Merged PR 5011 successfully
4+
✅ Merged PR 6735 successfully
5+
✅ Merged PR 7058 successfully
6+
✅ Merged PR 7090 successfully
7+
✅ Merged PR 7100 successfully
8+
✅ Merged PR 7307 successfully
9+
✅ Merged PR 7355 successfully
10+
✅ Merged PR 7391 successfully
11+
✅ Merged PR 7410 successfully
12+
✅ Merged PR 7414 successfully
13+
✅ Merged PR 7419 successfully
14+
✅ Merged PR 7431 successfully
15+
✅ Merged PR 7446 successfully
16+
✅ Merged PR 7453 successfully
17+
✅ Merged PR 7455 successfully
18+
✅ Merged PR 7469 successfully
19+
✅ Merged PR 7471 successfully
20+
✅ Merged PR 7477 successfully
21+
✅ Merged PR 7478 successfully
22+
✅ Merged PR 7480 successfully
23+
✅ Merged PR 7487 successfully
24+
✅ Merged PR 7538 successfully
25+
❌ Failed to merge PR 7554 (unexpected error)

pr_status.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## PR Status Check
2+
3+
⭕ PR 5011 needs to be merged
4+
⭕ PR 6735 needs to be merged
5+
⭕ PR 7058 needs to be merged
6+
⭕ PR 7090 needs to be merged
7+
⭕ PR 7100 needs to be merged
8+
⭕ PR 7307 needs to be merged
9+
⭕ PR 7355 needs to be merged
10+
⭕ PR 7391 needs to be merged
11+
⭕ PR 7410 needs to be merged
12+
⭕ PR 7414 needs to be merged
13+
⭕ PR 7419 needs to be merged
14+
⭕ PR 7431 needs to be merged
15+
⭕ PR 7446 needs to be merged
16+
⭕ PR 7453 needs to be merged
17+
⭕ PR 7455 needs to be merged
18+
⭕ PR 7469 needs to be merged
19+
⭕ PR 7471 needs to be merged
20+
⭕ PR 7477 needs to be merged
21+
⭕ PR 7478 needs to be merged
22+
⭕ PR 7480 needs to be merged
23+
⭕ PR 7487 needs to be merged
24+
⭕ PR 7538 needs to be merged
25+
⭕ PR 7554 needs to be merged

prs_to_merge.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
5011
2+
6735
3+
7058
4+
7090
5+
7100
6+
7307
7+
7355
8+
7391
9+
7410
10+
7414
11+
7419
12+
7431
13+
7446
14+
7453
15+
7455
16+
7469
17+
7471
18+
7477
19+
7478
20+
7480
21+
7487
22+
7538
23+
7554

src/components/subtitlesettings/subtitlesettings.js

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,27 @@ function getSubtitleAppearanceObject(context) {
3939
};
4040
}
4141

42+
function hasUserModifiedSettings(user, appSettings) {
43+
// Check if user has explicitly set subtitle mode
44+
const hasSubtitleMode = user.Configuration.SubtitleMode !== undefined &&
45+
user.Configuration.SubtitleMode !== null &&
46+
user.Configuration.SubtitleMode !== '';
47+
48+
// Check if user has explicitly set burn-in setting
49+
const burnInSetting = appSettings.get('subtitleburnin');
50+
const hasBurnInSetting = burnInSetting !== null && burnInSetting !== undefined;
51+
52+
// Check if user has explicitly set always burn-in setting
53+
const alwaysBurnInSetting = appSettings.get('alwaysburnintranscoding');
54+
const hasAlwaysBurnInSetting = alwaysBurnInSetting !== null && alwaysBurnInSetting !== undefined;
55+
56+
return {
57+
subtitleMode: hasSubtitleMode,
58+
burnIn: hasBurnInSetting,
59+
alwaysBurnIn: hasAlwaysBurnInSetting
60+
};
61+
}
62+
4263
function loadForm(context, user, userSettings, appearanceSettings, apiClient) {
4364
apiClient.getCultures().then(function (allCultures) {
4465
if (appHost.supports(AppFeature.SubtitleBurnIn) && user.Policy.EnableVideoPlaybackTranscoding) {
@@ -50,7 +71,13 @@ function loadForm(context, user, userSettings, appearanceSettings, apiClient) {
5071
settingsHelper.populateLanguages(selectSubtitleLanguage, allCultures);
5172

5273
selectSubtitleLanguage.value = user.Configuration.SubtitleLanguagePreference || '';
53-
context.querySelector('#selectSubtitlePlaybackMode').value = user.Configuration.SubtitleMode || '';
74+
75+
// Check if user has modified settings
76+
const userModifications = hasUserModifiedSettings(user, appSettings);
77+
78+
// Set subtitle mode - default to 'Smart' if not modified by user
79+
context.querySelector('#selectSubtitlePlaybackMode').value =
80+
userModifications.subtitleMode ? user.Configuration.SubtitleMode : 'Smart';
5481

5582
context.querySelector('#selectSubtitlePlaybackMode').dispatchEvent(new CustomEvent('change', {}));
5683

@@ -65,11 +92,18 @@ function loadForm(context, user, userSettings, appearanceSettings, apiClient) {
6592
context.querySelector('#selectFont').value = appearanceSettings.font || '';
6693
context.querySelector('#sliderVerticalPosition').value = appearanceSettings.verticalPosition;
6794

68-
context.querySelector('#selectSubtitleBurnIn').value = appSettings.get('subtitleburnin') || '';
95+
// Set burn-in mode - default to 'Auto' (empty string) if not modified by user
96+
const burnInValue = appSettings.get('subtitleburnin');
97+
context.querySelector('#selectSubtitleBurnIn').value =
98+
userModifications.burnIn ? burnInValue : '';
99+
69100
context.querySelector('#chkSubtitleRenderPgs').checked = appSettings.get('subtitlerenderpgs') === 'true';
70101

71102
context.querySelector('#selectSubtitleBurnIn').dispatchEvent(new CustomEvent('change', {}));
72-
context.querySelector('#chkAlwaysBurnInSubtitleWhenTranscoding').checked = appSettings.alwaysBurnInSubtitleWhenTranscoding();
103+
104+
// Set always burn-in - default to true if not modified by user
105+
context.querySelector('#chkAlwaysBurnInSubtitleWhenTranscoding').checked =
106+
userModifications.alwaysBurnIn ? appSettings.alwaysBurnInSubtitleWhenTranscoding() : true;
73107

74108
onAppearanceFieldChange({
75109
target: context.querySelector('#selectTextSize')

src/controllers/itemDetails/index.js

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -814,42 +814,45 @@ function renderNextUp(page, item, user) {
814814
}
815815

816816
function setInitialCollapsibleState(page, item, apiClient, context, user) {
817-
page.querySelector('.collectionItems').innerHTML = '';
817+
const collectionItems = page.querySelector('.collectionItems');
818+
if (collectionItems) {
819+
collectionItems.innerHTML = '';
820+
}
818821

819822
if (item.Type == 'Playlist') {
820-
page.querySelector('#listChildrenCollapsible').classList.remove('hide');
821-
page.querySelector('#childrenCollapsible').classList.add('hide');
823+
page.querySelector('#listChildrenCollapsible')?.classList.remove('hide');
824+
page.querySelector('#childrenCollapsible')?.classList.add('hide');
822825
renderPlaylistItems(page, item);
823826
} else if (item.Type == 'Studio' || item.Type == 'Person' || item.Type == 'Genre' || item.Type == 'MusicGenre' || item.Type == 'MusicArtist') {
824-
page.querySelector('#listChildrenCollapsible').classList.remove('hide');
825-
page.querySelector('#childrenCollapsible').classList.add('hide');
827+
page.querySelector('#listChildrenCollapsible')?.classList.remove('hide');
828+
page.querySelector('#childrenCollapsible')?.classList.add('hide');
826829
renderItemsByName(page, item);
827830
} else if (item.IsFolder) {
828831
if (item.Type == 'BoxSet') {
829-
page.querySelector('#listChildrenCollapsible').classList.add('hide');
830-
page.querySelector('#childrenCollapsible').classList.add('hide');
832+
page.querySelector('#listChildrenCollapsible')?.classList.add('hide');
833+
page.querySelector('#childrenCollapsible')?.classList.add('hide');
831834
}
832835

833836
renderChildren(page, item);
834837
} else {
835-
page.querySelector('#listChildrenCollapsible').classList.add('hide');
836-
page.querySelector('#childrenCollapsible').classList.add('hide');
838+
page.querySelector('#listChildrenCollapsible')?.classList.add('hide');
839+
page.querySelector('#childrenCollapsible')?.classList.add('hide');
837840
}
838841

839842
if (item.Type == 'Series') {
840843
renderSeriesSchedule(page, item);
841844
renderNextUp(page, item, user);
842845
} else {
843-
page.querySelector('.nextUpSection').classList.add('hide');
846+
page.querySelector('.nextUpSection')?.classList.add('hide');
844847
}
845848

846849
renderScenes(page, item);
847850

848851
if (item.SpecialFeatureCount > 0) {
849-
page.querySelector('#specialsCollapsible').classList.remove('hide');
852+
page.querySelector('#specialsCollapsible')?.classList.remove('hide');
850853
renderSpecials(page, item, user);
851854
} else {
852-
page.querySelector('#specialsCollapsible').classList.add('hide');
855+
page.querySelector('#specialsCollapsible')?.classList.add('hide');
853856
}
854857

855858
const cast = [];
@@ -866,16 +869,16 @@ function setInitialCollapsibleState(page, item, apiClient, context, user) {
866869
renderGuestCast(page, item, guestCast);
867870

868871
if (item.PartCount && item.PartCount > 1) {
869-
page.querySelector('#additionalPartsCollapsible').classList.remove('hide');
872+
page.querySelector('#additionalPartsCollapsible')?.classList.remove('hide');
870873
renderAdditionalParts(page, item, user);
871874
} else {
872-
page.querySelector('#additionalPartsCollapsible').classList.add('hide');
875+
page.querySelector('#additionalPartsCollapsible')?.classList.add('hide');
873876
}
874877

875878
if (item.Type == BaseItemKind.MusicAlbum) {
876879
renderMusicVideos(page, item, user);
877880
} else {
878-
page.querySelector('#musicVideosCollapsible').classList.add('hide');
881+
page.querySelector('#musicVideosCollapsible')?.classList.add('hide');
879882
}
880883
}
881884

@@ -1703,8 +1706,12 @@ function canPlaySomeItemInCollection(items) {
17031706
}
17041707

17051708
function renderCollectionItems(page, parentItem, types, items) {
1706-
page.querySelector('.collectionItems').classList.remove('hide');
1707-
page.querySelector('.collectionItems').innerHTML = '';
1709+
const collectionItems = page.querySelector('.collectionItems');
1710+
if (!collectionItems) {
1711+
return;
1712+
}
1713+
collectionItems.classList.remove('hide');
1714+
collectionItems.innerHTML = '';
17081715

17091716
if (!items.length) {
17101717
renderCollectionItemType(page, parentItem, {
@@ -1777,8 +1784,10 @@ function renderCollectionItemType(page, parentItem, type, items) {
17771784
html += '</div>';
17781785
html += '</div>';
17791786
const collectionItems = page.querySelector('.collectionItems');
1780-
collectionItems.insertAdjacentHTML('beforeend', html);
1781-
imageLoader.lazyChildren(collectionItems.lastChild);
1787+
if (collectionItems) {
1788+
collectionItems.insertAdjacentHTML('beforeend', html);
1789+
imageLoader.lazyChildren(collectionItems.lastChild);
1790+
}
17821791
}
17831792

17841793
function renderMusicVideos(page, item, user) {

src/scripts/settings/userSettings.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ export class UserSettings {
321321
return this.set('cardRatings', val.toString(), false);
322322
}
323323

324-
return this.get('cardRatings', false) === 'true';
324+
return toBoolean(this.get('cardRatings', false), true);
325325
}
326326

327327
/**

0 commit comments

Comments
 (0)