Cerys 4 weeks ago
parent
commit
93c1abdcd0
  1. 156
      Templates/Pages/tune/uuid.html.twig

156
Templates/Pages/tune/uuid.html.twig

@ -8,11 +8,11 @@
<div class="InnerContent">
<h1>{{ TuneDetails.Title }}</h1>
<div>
<div class="container">
<div class="left">
<div class="DLContainer">
<h2>{{ "Tune Overview"|translate }}</h2>
<dl>
<dt>{{ "Time Signature"|translate }}</dt>
<dd>{{ TuneDetails.TimeSignature }}</dd>
@ -46,70 +46,6 @@
</div>
</div>
<div class="InnerContent">
<h1>
{{ "Dances for"|translate }}
"{{ TuneDetails.Title }}"
<span>
<sup>
<a href="/tune/{{ TuneDetails.ID }}/suggest-dance">
{{ "Suggest another"|translate }}
</a>
</sup>
</span>
</h1>
{% for x in Dances %}
<div>
<button class="accordion">{{ TuneDetails.Title }}</button>
<div class="panel">
<h2>Steps</h2>
<table>
<thead>
<tr>
<th colspan="2">{{ "Bars"|translate }}</th>
<th>{{ "Description"|translate }}</th>
</tr>
</thead>
<tbody>
{% for step in TuneDetails.Steps %}
<tr>
<th>{{ step.BarCountAtStart }}</th>
<th>{{ step.BarCountAtEnd }}</th>
<td>{{ step.Description }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endfor %}
</div>
<script>
var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].addEventListener("click", function() {
/* Toggle between adding and removing the "active" class,
to highlight the button that controls the panel */
this.classList.toggle("active");
/* Toggle between hiding and showing the active panel */
var panel = this.nextElementSibling;
if (panel.style.display === "block") {
panel.style.display = "none";
} else {
panel.style.display = "block";
}
});
}
</script>
<script>
if (!window.ABCJS) {
console.error("ABCJS library failed to load.");
@ -117,57 +53,53 @@
</script>
<script>
document.addEventListener("DOMContentLoaded", function () {
function RenderABC(targetTuneID) {
API_GET("/V1/GetABCFile.php?tune-variant-id=" + targetTuneID)
.then(payload => {
// Ensure required DOM elements exist
const notationContainer = document.getElementById("NotationContainer--" + targetTuneID);
const rawABCContainer = document.getElementById("RawABCReadout--" + targetTuneID);
const midiContainer = document.getElementById("MIDI--" + targetTuneID);
if (!notationContainer || !rawABCContainer || !midiContainer) {
console.error(`Missing DOM elements for targetTuneID: ${targetTuneID}`);
return;
const targetTuneID = '{{ TuneDetails.ID }}';
API_GET("/V1/GetABCFile.php?tune-variant-id=" + targetTuneID)
.then(payload => {
// Ensure required DOM elements exist
const notationContainer = document.getElementById("NotationContainer--" + targetTuneID);
const rawABCContainer = document.getElementById("RawABCReadout--" + targetTuneID);
const midiContainer = document.getElementById("MIDI--" + targetTuneID);
if (!notationContainer || !rawABCContainer || !midiContainer) {
console.error(`Missing DOM elements for targetTuneID: ${targetTuneID}`);
return;
}
console.log(window.ABCJS);
// Render the ABC notation
const tunes = window.ABCJS.renderAbc(
notationContainer.id,
payload,
{
add_classes: true,
format: {
gchordfont: "Atkinson Hyperlegible",
annotationfont: "Atkinson Hyperlegible",
headerfont: "Atkinson Hyperlegible",
infofont: "Atkinson Hyperlegible",
repeatfont: "Atkinson Hyperlegible",
tempofont: "Atkinson Hyperlegible",
titlefont: "Atkinson Hyperlegible",
voicefont: "Atkinson Hyperlegible",
wordsfont: "Atkinson Hyperlegible",
},
}
);
console.log(window.ABCJS);
// Render the ABC notation
const tunes = window.ABCJS.renderAbc(
notationContainer.id,
payload,
{
add_classes: true,
format: {
gchordfont: "Atkinson Hyperlegible",
annotationfont: "Atkinson Hyperlegible",
headerfont: "Atkinson Hyperlegible",
infofont: "Atkinson Hyperlegible",
repeatfont: "Atkinson Hyperlegible",
tempofont: "Atkinson Hyperlegible",
titlefont: "Atkinson Hyperlegible",
voicefont: "Atkinson Hyperlegible",
wordsfont: "Atkinson Hyperlegible",
},
}
);
// Display raw ABC notation
rawABCContainer.innerHTML = payload;
window.ABCJS.startAnimation(notationContainer.id, tunes[0], {
showCursor: true,
});
})
.catch(error => {
console.error("Error fetching ABC data:", error);
});
}
// Display raw ABC notation
rawABCContainer.innerHTML = payload;
RenderABC('{{ TuneDetails.ID }}');
window.ABCJS.startAnimation(notationContainer.id, tunes[0], {
showCursor: true,
});
})
.catch(error => {
console.error("Error fetching ABC data:", error);
});
});
</script>
{% endblock %}
Loading…
Cancel
Save