Skip to content

Commit d02ff6a

Browse files
Show warning when adding YT videos as HV source
1 parent 5fa6e8a commit d02ff6a

5 files changed

Lines changed: 49 additions & 7 deletions

File tree

src/_shared/modules/Localization/locale/de.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,5 +369,6 @@ window.FrameTrail_L10n['de'] = {
369369
"UserRegister": "Neue Nutzer:innen registrieren",
370370
"UserRoleAdmin": "Admin",
371371
"UserRoleUser": "User",
372-
"UserSelect": "Nutzer:in auswählen"
372+
"UserSelect": "Nutzer:in auswählen",
373+
"WarningYouTubeSource": "Wenn du ein YouTube-Video als Quelle auswählst, funktioniert das Hypervideo nicht, wenn es als HTML-Datei exportiert und lokal geöffnet wird (YouTube verhindert das)."
373374
}

src/_shared/modules/Localization/locale/en.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,5 +369,6 @@ window.FrameTrail_L10n['en'] = {
369369
"UserRegister": "Register New User",
370370
"UserRoleAdmin": "Admin",
371371
"UserRoleUser": "User",
372-
"UserSelect": "Select a User"
372+
"UserSelect": "Select a User",
373+
"WarningYouTubeSource": "If you choose a YouTube video as a source, the hypervideo will not work when exported as an HTML file and opened locally (YouTube prevents that)."
373374
}

src/_shared/modules/Localization/locale/fr.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,5 +369,6 @@ window.FrameTrail_L10n['fr'] = {
369369
"UserRegister": "Inscrire un nouvel utilisateur",
370370
"UserRoleAdmin": "Admin",
371371
"UserRoleUser": "Utilisateur",
372-
"UserSelect": "Sélectionner un utilisateur"
372+
"UserSelect": "Sélectionner un utilisateur",
373+
"WarningYouTubeSource": "Si vous choisissez une vidéo YouTube comme source, l'hypervidéo ne fonctionnera pas lorsque vous l'exporterez en tant que fichier HTML et l'ouvrez localement (YouTube empêche cela)."
373374
}

src/player/modules/HypervideoSettingsDialog/module.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,14 +345,24 @@ FrameTrail.defineModule('HypervideoSettingsDialog', function(FrameTrail){
345345
if (!_thumb) return;
346346
EditHypervideoForm.querySelectorAll('.videoResourceList .resourceThumb').forEach(function(el) { el.classList.remove('selected'); });
347347
_thumb.classList.add('selected');
348-
348+
349349
var resourceId = _thumb.dataset.resourceid;
350350
var resource = database.resources[resourceId];
351-
351+
352352
EditHypervideoForm.querySelector('input[name="newResourceId"]').value = resourceId;
353353
EditHypervideoForm.querySelector('input[name="newResourceSrc"]').value = resource ? resource.src : '';
354354
// Duration will be determined when video loads - for now use 0 as placeholder
355355
EditHypervideoForm.querySelector('input[name="newResourceDuration"]').value = resource ? (resource.duration || 0) : 0;
356+
357+
// Show YouTube warning when selecting a YouTube resource
358+
var ytWarning = hypervideoDialogCtrl && hypervideoDialogCtrl.widget().querySelector('.youtubeLocalWarning');
359+
if (ytWarning) {
360+
if (_thumb.dataset.type === 'youtube') {
361+
ytWarning.classList.add('active');
362+
} else {
363+
ytWarning.classList.remove('active');
364+
}
365+
}
356366
});
357367

358368
// Helper to get new empty video duration
@@ -942,6 +952,19 @@ FrameTrail.defineModule('HypervideoSettingsDialog', function(FrameTrail){
942952
}
943953
]
944954
});
955+
956+
// Add YouTube warning to buttonpane
957+
var buttonPane = hypervideoDialogCtrl.widget().querySelector('.ft-dialog-buttonpane');
958+
var ytWarningEl = document.createElement('div');
959+
ytWarningEl.className = 'youtubeLocalWarning message warning mt-1';
960+
ytWarningEl.style.flexBasis = '100%';
961+
ytWarningEl.textContent = labels['WarningYouTubeSource'];
962+
buttonPane.prepend(ytWarningEl);
963+
964+
// Show warning if current source is YouTube
965+
if (originalResourceId && database.resources[originalResourceId] && database.resources[originalResourceId].type === 'youtube') {
966+
ytWarningEl.classList.add('active');
967+
}
945968
}
946969

947970
/**

src/player/modules/Sidebar/module.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,16 @@ FrameTrail.defineModule('Sidebar', function(FrameTrail){
393393
thumb.classList.add('selected');
394394
newDialog.querySelector('input[name="resourcesID"]').value = thumb.dataset.resourceid;
395395

396+
// Show YouTube warning when selecting a YouTube resource
397+
var ytWarning = newDialogCtrl && newDialogCtrl.widget().querySelector('.youtubeLocalWarning');
398+
if (ytWarning) {
399+
if (thumb.dataset.type === 'youtube') {
400+
ytWarning.classList.add('active');
401+
} else {
402+
ytWarning.classList.remove('active');
403+
}
404+
}
405+
396406
// Update button state when video is selected
397407
updateAddButtonState();
398408
};
@@ -612,8 +622,14 @@ FrameTrail.defineModule('Sidebar', function(FrameTrail){
612622
content: newDialog,
613623
autoOpen: false,
614624
open: function() {
615-
newDialogCtrl.widget().querySelector('.ft-dialog-buttonpane').append(newDialog.querySelector('.message.error'));
616-
addHypervideoButton = newDialogCtrl.widget().querySelector('.ft-dialog-buttonpane button');
625+
var buttonPane = newDialogCtrl.widget().querySelector('.ft-dialog-buttonpane');
626+
var ytWarningEl = document.createElement('div');
627+
ytWarningEl.className = 'youtubeLocalWarning message warning mt-1';
628+
ytWarningEl.style.flexBasis = '100%';
629+
ytWarningEl.textContent = labels['WarningYouTubeSource'];
630+
buttonPane.prepend(ytWarningEl);
631+
buttonPane.append(newDialog.querySelector('.message.error'));
632+
addHypervideoButton = buttonPane.querySelector('button');
617633
addHypervideoButton.disabled = true;
618634
updateAddButtonState();
619635
},

0 commit comments

Comments
 (0)