From 0d1338f6345052e652534cb10852a2b8bdee8808 Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 30 Dec 2021 13:42:23 +0000 Subject: start of browse ui --- resources/index.html | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/resources/index.html b/resources/index.html index de19121..6711048 100644 --- a/resources/index.html +++ b/resources/index.html @@ -32,18 +32,6 @@ return newElement; } - // example usage - function addRow() { - document.querySelector('#list').appendChild( - fillTemplate( - document.querySelector('#row'), - { - 'play-url':'http://foo.bar', - 'name':'something', - }, - ) - ); - } function call(method,path,args) { args ||= {}; @@ -84,9 +72,32 @@ currentPos.value=time; } + async function browseTo(id) { + const list = document.querySelector('#files ul'); + const itemTemplate = document.querySelector('#file-item'); + const files = await (await call('get',`media${ id ? '/' + id : ''}`)).json(); + const items = files.children.map(f => { + return fillTemplate(itemTemplate, { + 'play-url': f.is_dir ? `javascript:browseTo(${f.id})` : `javascript:vlcCommand('play/${f.id}')`, + 'name': f.name, + }); + }); + list.replaceChildren(...items); + } + + async function fillFiles() { + const filesDetails = document.querySelector('#files'); + if (document.querySelector('#files').open) { + filesDetails.removeEventListener('toggle',fillFiles); + await browseTo(null); + } + } + document.addEventListener('readystatechange', (event) => { if (document.readyState == 'complete') { - setInterval(updateView, 1000); + //setInterval(updateView, 1000); + + document.querySelector('#files').addEventListener('toggle', fillFiles); } }) @@ -149,6 +160,11 @@ +
+ files + +
@@ -253,7 +269,7 @@
-