diff --git a/maloja/web/jinja/artist.jinja b/maloja/web/jinja/artist.jinja index f738c8b..244b9c9 100644 --- a/maloja/web/jinja/artist.jinja +++ b/maloja/web/jinja/artist.jinja @@ -47,7 +47,8 @@ {% endif %} -

{{ info.artist }}

+

{{ info.artist }}

+ {% if adminmode %}{% include 'icons/edit.jinja' %}{% endif %} {% if competes %}#{{ info.position }}{% endif %}
{% if competes and included %} diff --git a/maloja/web/jinja/icons/edit.jinja b/maloja/web/jinja/icons/edit.jinja new file mode 100644 index 0000000..8d3ee34 --- /dev/null +++ b/maloja/web/jinja/icons/edit.jinja @@ -0,0 +1,12 @@ + +
+ + + + + + +
diff --git a/maloja/web/jinja/track.jinja b/maloja/web/jinja/track.jinja index 03762c6..c3e3ce6 100644 --- a/maloja/web/jinja/track.jinja +++ b/maloja/web/jinja/track.jinja @@ -42,7 +42,7 @@ {{ links.links(track.artists) }}
-

{{ info.track.title }}

+

{{ info.track.title }}

{{ awards.certs(track) }} #{{ info.position }}
diff --git a/maloja/web/static/css/maloja.css b/maloja/web/static/css/maloja.css index 3056671..abf70aa 100644 --- a/maloja/web/static/css/maloja.css +++ b/maloja/web/static/css/maloja.css @@ -72,6 +72,10 @@ div#settingsicon { right:30px; top:30px; } +div#editicon { + height:20px; + width:20px; +} /** diff --git a/maloja/web/static/js/edit.js b/maloja/web/static/js/edit.js index 0a415ba..7f3d788 100644 --- a/maloja/web/static/js/edit.js +++ b/maloja/web/static/js/edit.js @@ -10,3 +10,42 @@ function deleteScrobble(id,element) { neo.xhttpreq("/apis/mlj_1/delete_scrobble",data={'timestamp':id},method="POST",callback=(()=>null),json=true); } + + +function selectAll(e) { + // https://stackoverflow.com/a/6150060/6651341 + var range = document.createRange(); + range.selectNodeContents(e); + var sel = window.getSelection(); + sel.removeAllRanges(); + sel.addRange(range); +} + +function editEntity() { + var namefield = document.getElementById('main_entity_name'); + namefield.contentEditable = "plaintext-only"; + + // dont allow new lines, done on enter + namefield.addEventListener('keypress',function(e){ + if (e.which === 13) { + e.preventDefault(); + doneEditing(); + } + + }) + // emergency, not pretty because it will move cursor + namefield.addEventListener('input',function(e){ + if (namefield.innerHTML.includes("\n")) { + namefield.innerHTML = namefield.innerHTML.replace("\n",""); + } + + }) + + namefield.focus(); + selectAll(namefield); +} + +function doneEditing() { + var namefield = document.getElementById('main_entity_name'); + namefield.contentEditable = "false"; +}