mirror of
https://github.com/krateng/maloja.git
synced 2025-07-09 03:04:07 -04:00
Can now cancel editing
This commit is contained in:
parent
0525ff400b
commit
83e3157ad1
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
<script src="/rangeselect.js"></script>
|
<script src="/rangeselect.js"></script>
|
||||||
|
<script src="/edit.js"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% set artist = filterkeys.artist %}
|
{% set artist = filterkeys.artist %}
|
||||||
@ -32,6 +33,7 @@
|
|||||||
<script>
|
<script>
|
||||||
const entity_id = {{ info.id }};
|
const entity_id = {{ info.id }};
|
||||||
const entity_type = 'artist';
|
const entity_type = 'artist';
|
||||||
|
const entity_name = {{ artist | tojson }};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
<script src="/edit.js"></script>
|
|
||||||
<div title="Edit" id="editicon" class="clickable_icon" onclick="editEntity()">
|
<div title="Edit" id="editicon" class="clickable_icon" onclick="editEntity()">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="20px" y="20px"
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="20px" y="20px"
|
||||||
viewBox="0 0 59.985 59.985" style="enable-background:new 0 0 59.985 59.985;" xml:space="preserve">
|
viewBox="0 0 59.985 59.985" style="enable-background:new 0 0 59.985 59.985;" xml:space="preserve">
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
<script src="/rangeselect.js"></script>
|
<script src="/rangeselect.js"></script>
|
||||||
|
<script src="/edit.js"></script>
|
||||||
<script>
|
<script>
|
||||||
function scrobble(encodedtrack) {
|
function scrobble(encodedtrack) {
|
||||||
neo.xhttprequest('/apis/mlj_1/newscrobble?nofix&' + encodedtrack,data={},method="POST").then(response=>{window.location.reload()});
|
neo.xhttprequest('/apis/mlj_1/newscrobble?nofix&' + encodedtrack,data={},method="POST").then(response=>{window.location.reload()});
|
||||||
@ -26,6 +27,7 @@
|
|||||||
<script>
|
<script>
|
||||||
const entity_id = {{ info.id }};
|
const entity_id = {{ info.id }};
|
||||||
const entity_type = 'track';
|
const entity_type = 'track';
|
||||||
|
const entity_name = {{ track.title | tojson }};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
// JS for all web interface editing / deletion of scrobble data
|
// JS for all web interface editing / deletion of scrobble data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function toggleDeleteConfirm(element) {
|
function toggleDeleteConfirm(element) {
|
||||||
element.parentElement.parentElement.classList.toggle('active');
|
element.parentElement.parentElement.classList.toggle('active');
|
||||||
}
|
}
|
||||||
@ -22,15 +24,22 @@ function selectAll(e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function editEntity() {
|
function editEntity() {
|
||||||
|
|
||||||
var namefield = document.getElementById('main_entity_name');
|
var namefield = document.getElementById('main_entity_name');
|
||||||
namefield.contentEditable = "plaintext-only";
|
namefield.contentEditable = "plaintext-only";
|
||||||
|
|
||||||
// dont allow new lines, done on enter
|
namefield.addEventListener('keydown',function(e){
|
||||||
namefield.addEventListener('keypress',function(e){
|
// dont allow new lines, done on enter
|
||||||
if (e.which === 13) {
|
if (e.key === "Enter") {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
namefield.blur(); // this leads to below
|
namefield.blur(); // this leads to below
|
||||||
}
|
}
|
||||||
|
// cancel on esc
|
||||||
|
else if (e.key === "Escape" || e.key === "Esc") {
|
||||||
|
e.preventDefault();
|
||||||
|
namefield.innerHTML = entity_name;
|
||||||
|
namefield.blur();
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
// emergency, not pretty because it will move cursor
|
// emergency, not pretty because it will move cursor
|
||||||
@ -54,25 +63,30 @@ function editEntity() {
|
|||||||
function doneEditing() {
|
function doneEditing() {
|
||||||
var namefield = document.getElementById('main_entity_name');
|
var namefield = document.getElementById('main_entity_name');
|
||||||
namefield.contentEditable = "false";
|
namefield.contentEditable = "false";
|
||||||
newname = document.getElementById('main_entity_name').innerHTML;
|
newname = namefield.innerHTML;
|
||||||
var searchParams = new URLSearchParams(window.location.search);
|
|
||||||
|
|
||||||
if (entity_type == 'artist') {
|
if (newname != entity_name) {
|
||||||
var endpoint = "/apis/mlj_1/edit_artist";
|
var searchParams = new URLSearchParams(window.location.search);
|
||||||
searchParams.set("artist", newname);
|
|
||||||
var payload = {'id':entity_id,'name':newname};
|
if (entity_type == 'artist') {
|
||||||
}
|
var endpoint = "/apis/mlj_1/edit_artist";
|
||||||
else if (entity_type == 'track') {
|
searchParams.set("artist", newname);
|
||||||
var endpoint = "/apis/mlj_1/edit_track";
|
var payload = {'id':entity_id,'name':newname};
|
||||||
searchParams.set("title", newname);
|
}
|
||||||
var payload = {'id':entity_id,'title':newname}
|
else if (entity_type == 'track') {
|
||||||
|
var endpoint = "/apis/mlj_1/edit_track";
|
||||||
|
searchParams.set("title", newname);
|
||||||
|
var payload = {'id':entity_id,'title':newname}
|
||||||
|
}
|
||||||
|
|
||||||
|
neo.xhttpreq(
|
||||||
|
endpoint,
|
||||||
|
data=payload,
|
||||||
|
method="POST",
|
||||||
|
callback=(()=>window.location = "?" + searchParams.toString()),
|
||||||
|
json=true
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
neo.xhttpreq(
|
|
||||||
endpoint,
|
|
||||||
data=payload,
|
|
||||||
method="POST",
|
|
||||||
callback=(()=>window.location = "?" + searchParams.toString()),
|
|
||||||
json=true
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user