Files
JetCore/jetc/barant-site/src/music.page
T
Brad Arant fde94acad6 Convert barant.com JET 1.4 marketing pages to jetc/.jtc (local, non-production)
Pulls .page files and shared template infrastructure (mainpagetemplate.temp,
menu.bar, barant.tag, opensource.menu, cart.menu, login.menu) read-only from
barant.com via SFTP into jetc/barant-site/src, then convert.py mechanically
flattens them into self-contained .jet files: linkbutton becomes a plain
anchor link (the old SESSIONCTL PAGE/PROCESS form-postback model has no
equivalent here - each page is its own real #api route now, not a shared
single-form state machine), sectionframe is expanded per its barant.tag
definition, /images/* references are fetched and inlined as data URIs
(APIServer has no static-file serving), and session-gated chrome (cart,
account/admin, login.menu) is resolved to its anonymous-visitor default
state, since no session/DB backend is wired into this conversion.

17 pages convert and serve cleanly end-to-end (verified via a local
apiserver-barant-site.json instance on :8081, kept separate from the
existing demo server on :8080 to avoid a /main route collision with the
earlier hand-cloned barant.jet). Two pages deliberately out of scope for
this pass: davidarant.page (whiledir filesystem iteration) and the
per-topic sub-pages of jet.page (dispatches on an ARGS query param this
conversion does not populate - only the default overview state converts).
vst.page/modular1.page/modular1_patches.page also deferred - they pull
live product rows via sql, a real backend dependency beyond "pages and
their template" scope.

Nothing was written back to barant.com - SFTP access was read-only
throughout, per explicit instruction to convert locally without touching
the original site.
2026-08-25 21:59:55 -07:00

48 lines
1.3 KiB
Plaintext
Executable File

<page template="mainpagetemplate" secure="yes" loggedin="no">
<title>BAE MUSIC</title>
<contents>
<script>
var index = 0;
const paths = [];
const songs = [];
function onselection(path,selection) {
var name = path + '/' + selection;
var player = document.getElementById('player');
var audio = document.getElementById('audio');
var title = document.getElementById('title');
player.src = name;
title.textContent = selection;
audio.load();
audio.play();
}
function selectNext() {
var index = Math.floor(Math.random()*songs.length) + 1;
onselection(paths[index],songs[index]);
}
</script>
<retain name="download_file">
<div style="display: inline-block;">
<audio id="audio" controls onended="selectNext();">
<source id="player" type="audio/mp3">
</audio>
</div>
<div style="font-size: 20px; display: inline-block;" id="title">Click on a title below</div>
<sectionframe title="BARANT Audio Experiments">
<div>
<whiledir name="file" dir="musiclink/bae">
<if expr="left('$[file]',1) != '.' ">
<div style="cursor: pointer;" onclick="onselection('musiclink/bae','$[file]');">$[file]</div>
<script>
paths[index]='musiclink/bae';
songs[index++]='$[file]';
</script>
</if>
</whiledir>
</div>
<script>
</script>
</sectionframe>
</contents>
</page>