Added lilypond edition

This commit is contained in:
marc
2025-04-04 15:27:23 +02:00
parent 6962d70468
commit 379a6653ce
30 changed files with 2078 additions and 42 deletions

View File

@@ -0,0 +1,73 @@
<div id="tema-score-{{ score.id }}">
<h4 class="mp-4 text-xl text-beige">
<i class="fa fa-code mr-2" aria-hidden="true"></i> Editor de partitura
</h4>
<h5 class="text-sm text-beige text-right">
<input name="title"
id="score-{{ score.id }}-editor-title"
placeholder="Nom de la partitura"
value="{{ score.title }}"
class="border border-beige focus:outline-none
rounded
bg-brown px-2"
/>
<button title="Desa els canvis"
class="mx-1"
hx-put="/api/tema/{{ score.tema_id }}/score/{{ score.id }}"
hx-vals="js:{title: document.getElementById('score-{{ score.id }}-editor-title').value, source: editor_{{ score.id }}.getValue()}"
hx-target="#tema-score-{{ score.id }}"
hx-swap="outerHTML">
<i class="fa fa-check" aria-hidden="true"></i>
</button>
<button title="Descarta els canvis"
class="mx-1"
hx-get="/api/tema/{{ score.tema_id }}/score/{{ score.id }}"
hx-target="#tema-score-{{ score.id }}"
hx-swap="outerHTML">
<i class="fa fa-times" aria-hidden="true"></i>
</button>
</h5>
<h5 class="mp-4 text text-beige">
Codi Lilypond
<a href="https://lilypond.org/doc/v2.24/Documentation/learning/simple-notation"
target="_blank">
<i class="fa fa-info-circle" aria-hidden="true"></i>
</a>
</h5>
<hr class="h-px mt-1 mb-3 bg-beige border-0">
<div class="flex flex-col">
<form class="flex flex-col"
hx-post="/api/tema/{{ score.tema_id }}/editor/score/{{ score.id }}/render"
hx-target="#score-{{ score.id }}-render-target"
hx-swap="outerHTML"
onsubmit="document.getElementById('lilypond-editor-{{ score.id }}').value = editor_{{ score.id }}.getValue()"
>
{% if score.source %}
<textarea id="lilypond-editor-{{ score.id }}"
name="source">{{ score.source | safe }}</textarea>
{% else %}
<textarea id="lilypond-editor-{{ score.id }}"
name="source">{% include "lilypond/score_template.ly" %}</textarea>
{% endif %}
<script>
var editor_{{ score.id }} = CodeMirror.fromTextArea(
document.getElementById("lilypond-editor-{{ score.id }}"), {
mode: "lilypond",
lineNumbers: true,
}
);
</script>
<button title="Previsualitza els canvis"
type="submit"
class="flex flex-col items-center">
<div class="m-2 mt-3 p-1 text-beige
border border-beige rounded">
Previsualitza els canvis
</div>
</button>
</form>
<div id="score-{{ score.id }}-render-target">
</div>
</div>
</div>

View File

@@ -0,0 +1,13 @@
<div id="score-{{ score_id }}-render-target">
<h5 class="text text-beige"> Previsualització </h5>
<hr class="h-px mt-1 mb-3 bg-beige border-0">
{% if score_render_url %}
<img class="my-2" src="{{ score_render_url }}" />
{% else %}
<ol class="text-red-400">
{% for error in errors %}
<li class="text-red-500">Línia {{ error.line }} posició {{ error.pos }}: {{ error.error }}</p>
{% endfor %}
</ol>
{% endif %}
</div>