-
+
${i+1}.
${entry.title}
@@ -879,10 +898,8 @@
if(entry.feature){
featureIndex = i;
}
- trackEl.querySelector('button').onclick = () => {
- loadedFirst = true;
- autoPlay = true;
- playEntry(entry);
+ if(entry.locked && featureIndex === i){
+ featureIndex++;
}
if(entry.info){
let infoContainerEl = trackEl.querySelector('.infoContainer');
@@ -891,32 +908,39 @@
infoContainerEl.classList.toggle('active');
});
}
- let loaderEl;
- if(entry.type === 'video'){
- loaderEl = document.createElement('video');
- } else {
- loaderEl = document.createElement('audio');
- }
- loaderEl.addEventListener('loadedmetadata', e => {
- entry.duration = e.target.duration;
- trackEl.querySelector('.duration').textContent = toHMS(entry.duration);
- if(entry === currentEntry){
- updateScrubPosition(0);
+ if(!entry.locked){
+ trackEl.querySelector('button').onclick = () => {
+ loadedFirst = true;
+ autoPlay = true;
+ playEntry(entry);
}
- });
- loaderEl.addEventListener('error', e => {
- entry.error = true;
- entry.errorMessage = e.target.error;
- removeLoading(entry, true);
- trackEl.querySelector('button').classList.add('error', 'icon-warning');
- trackEl.querySelector('button').setAttribute('title', 'error loading file');
- });
- loaderEl.addEventListener('canplay', e => {
- removeLoading(entry, true);
- });
- loaderEl.volume = 0;
- loaderEl.src = entry.file;
- entry.loading = true;
+ let loaderEl;
+ if(entry.type === 'video'){
+ loaderEl = document.createElement('video');
+ } else {
+ loaderEl = document.createElement('audio');
+ }
+ loaderEl.addEventListener('loadedmetadata', e => {
+ entry.duration = e.target.duration;
+ trackEl.querySelector('.duration').textContent = toHMS(entry.duration);
+ if(entry === currentEntry){
+ updateScrubPosition(0);
+ }
+ });
+ loaderEl.addEventListener('error', e => {
+ entry.error = true;
+ entry.errorMessage = e.target.error;
+ removeLoading(entry, true);
+ trackEl.querySelector('button').classList.add('error', 'icon-warning');
+ trackEl.querySelector('button').setAttribute('title', 'error loading file');
+ });
+ loaderEl.addEventListener('canplay', e => {
+ removeLoading(entry, true);
+ });
+ loaderEl.volume = 0;
+ loaderEl.src = entry.file;
+ entry.loading = true;
+ }
});
loadEntry(media[featureIndex]);
}
@@ -1135,6 +1159,10 @@
}
}
+ function canPlay(entry){
+ return !entry.error && !entry.locked;
+ }
+
function nextTrack(loop=true){
let idx = media.indexOf(currentEntry)+1;
if(!loop && idx >= media.length){
@@ -1142,7 +1170,7 @@
}
let entry = media[mod(idx, media.length)];
let i = 0;
- while(entry.error && i < media.length){
+ while(!canPlay(entry) && i < media.length){
i++;
idx++;
if(!loop && idx >= media.length){
@@ -1159,7 +1187,7 @@
let idx = media.indexOf(currentEntry)-1;
let entry = media[mod(idx, media.length)];
let i = 0;
- while(entry.error && i < media.length){
+ while(!canPlay(entry) && i < media.length){
i++;
idx--;
entry = media[mod(idx, media.length)];
@@ -1199,6 +1227,9 @@
if(entry.error){
return;
}
+ if(entry.locked){
+ return;
+ }
media.forEach(entry => {
entry.trackEl.classList.remove('active');
entry.trackEl.querySelector('button').classList.remove('pause');