diff --git a/www/js/app.js b/www/js/app.js index 1cb5b3f91..7ccb946de 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -1341,13 +1341,16 @@ let webKitFileList = null */ function displayFileSelect () { const isFireFoxOsNativeFileApiAvailable = typeof navigator.getDeviceStorages === 'function'; + let isPlatformMobilePhone = false; + if (/Android/i.test(navigator.userAgent)) isPlatformMobilePhone = true; + if (/iphone|ipad|ipod/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) isPlatformMobilePhone = true; console.debug(`File system api is ${params.isFileSystemApiSupported ? '' : 'not '}supported`); console.debug(`Webkit directory api ${params.isWebkitDirApiSupported ? '' : 'not '}supported`); console.debug(`Firefox os native file ${isFireFoxOsNativeFileApiAvailable ? '' : 'not '}support api`) - + console.log('ASSSSS'); document.getElementById('openLocalFiles').style.display = 'block'; - if (params.isFileSystemApiSupported || params.isWebkitDirApiSupported) { + if ((params.isFileSystemApiSupported || params.isWebkitDirApiSupported) && !isPlatformMobilePhone) { document.getElementById('chooseArchiveFromLocalStorage').style.display = ''; document.getElementById('folderSelect').style.display = ''; } @@ -1398,10 +1401,12 @@ function displayFileSelect () { document.getElementById('folderSelect').addEventListener('change', async function (e) { e.preventDefault(); const filenames = []; + const previousZimFile = [] - const lastFilename = localStorage.getItem('previousZimFileName'); + const lastFilename = localStorage.getItem('previousZimFileName') ?? ''; const filenameWithoutExtension = lastFilename.replace(/\.zim\w\w$/i, ''); const regex = new RegExp(`\\${filenameWithoutExtension}.zim\\w\\w$`, 'i'); + for (const file of e.target.files) { filenames.push(file.name); if (regex.test(file.name) || file.name === lastFilename) previousZimFile.push(file); diff --git a/www/js/lib/abstractFilesystemAccess.js b/www/js/lib/abstractFilesystemAccess.js index aff6524a4..b3c180ca5 100644 --- a/www/js/lib/abstractFilesystemAccess.js +++ b/www/js/lib/abstractFilesystemAccess.js @@ -104,17 +104,22 @@ async function updateZimDropdownOptions (files, selectedFile) { if (isFireFoxOsNativeFileApiAvailable) return // do nothing let other function handle it const select = document.getElementById('archiveList'); - let options = ''; + const options = []; let count = 0; - if (files.length !== 0) options += ``; + select.innerHTML = ''; + if (files.length !== 0) { + const placeholderOption = new Option(translateUI.t('configure-select-file-first-option'), ''); + placeholderOption.disabled = true; + select.appendChild(placeholderOption); + }; files.forEach((fileName) => { if (fileName.endsWith('.zim') || fileName.endsWith('.zimaa')) { - options += ``; + options.push(new Option(fileName, fileName)); + select.appendChild(new Option(fileName, fileName)); count++; } }); - select.innerHTML = options; document.getElementById('archiveList').value = selectedFile; document.getElementById('numberOfFilesCount').style.display = ''; document.getElementById('fileCountDisplay').style.display = '';