še interaktivna kontrola za prelom #3
This commit is contained in:
@@ -62,6 +62,7 @@ def get_state():
|
||||
'current_text': 'Napaka: Aplikacija ni inicijalizirana',
|
||||
'page_info': '',
|
||||
'caps_mode': False,
|
||||
'split_by_stanza': False,
|
||||
'can_prev': False,
|
||||
'can_next': False
|
||||
})
|
||||
@@ -89,6 +90,7 @@ def get_state():
|
||||
'current_text': current_text,
|
||||
'page_info': page_info,
|
||||
'caps_mode': _projector_app.all_caps_mode,
|
||||
'split_by_stanza': _projector_app.settings.get("split_by_stanza", False),
|
||||
'can_prev': can_prev,
|
||||
'can_next': can_next
|
||||
})
|
||||
@@ -149,6 +151,15 @@ def toggle_caps():
|
||||
return jsonify({'status': 'ok'})
|
||||
|
||||
|
||||
@app.route('/api/toggle_split', methods=['POST'])
|
||||
def toggle_split():
|
||||
"""Preklop med načinom preloma po kiticah in prostim prelomom"""
|
||||
if _projector_app is not None:
|
||||
_projector_app.toggle_split_mode()
|
||||
|
||||
return jsonify({'status': 'ok'})
|
||||
|
||||
|
||||
@app.route('/api/search_songs', methods=['POST'])
|
||||
def search_songs():
|
||||
"""Iskanje besedil po naslovu"""
|
||||
|
||||
@@ -7,6 +7,7 @@ const displayArea = document.getElementById('display-area');
|
||||
const prevBtn = document.getElementById('prev-btn');
|
||||
const nextBtn = document.getElementById('next-btn');
|
||||
const darkBtn = document.getElementById('dark-btn');
|
||||
const splitBtn = document.getElementById('split-btn');
|
||||
const pageInfo = document.getElementById('page-info');
|
||||
const clearBtn = document.getElementById('clear-btn');
|
||||
const keypadButtons = document.querySelectorAll('.btn-key');
|
||||
@@ -37,6 +38,7 @@ const infoMessage = document.getElementById('info-message');
|
||||
const infoOkBtn = document.getElementById('info-ok-btn');
|
||||
|
||||
let capsMode = false;
|
||||
let splitByStanza = false;
|
||||
let wakeLock = null;
|
||||
let lastStateSignature = "";
|
||||
let lastPageInfo = "";
|
||||
@@ -81,6 +83,7 @@ async function updateState(force = false) {
|
||||
current_text: data.current_text || '',
|
||||
page_info: data.page_info || '',
|
||||
caps_mode: data.caps_mode || false,
|
||||
split_by_stanza: data.split_by_stanza || false,
|
||||
can_prev: !!data.can_prev
|
||||
});
|
||||
|
||||
@@ -102,6 +105,13 @@ async function updateState(force = false) {
|
||||
darkBtn.classList.remove('active');
|
||||
}
|
||||
|
||||
splitByStanza = data.split_by_stanza || false;
|
||||
if (splitByStanza) {
|
||||
splitBtn.classList.add('active');
|
||||
} else {
|
||||
splitBtn.classList.remove('active');
|
||||
}
|
||||
|
||||
prevBtn.disabled = !data.can_prev;
|
||||
} catch (error) {
|
||||
console.error('Napaka pri posodabljanju stanja:', error);
|
||||
@@ -237,6 +247,16 @@ async function toggleCaps() {
|
||||
}
|
||||
}
|
||||
|
||||
// Preklop načina preloma po kiticah
|
||||
async function toggleSplit() {
|
||||
try {
|
||||
await fetch('/api/toggle_split', { method: 'POST' });
|
||||
await updateState(true);
|
||||
} catch (error) {
|
||||
console.error('Napaka pri preklopu načina preloma:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// Odpri urejevalnik
|
||||
async function openEditor(songId = null) {
|
||||
try {
|
||||
@@ -383,6 +403,14 @@ darkBtn.addEventListener('click', () => {
|
||||
toggleCaps();
|
||||
});
|
||||
|
||||
// Prelom po kiticah
|
||||
if (splitBtn) {
|
||||
splitBtn.addEventListener('click', () => {
|
||||
vibrate();
|
||||
toggleSplit();
|
||||
});
|
||||
}
|
||||
|
||||
// Skrij/Pokaži tipkovnico
|
||||
if (toggleKeypadBtn) {
|
||||
toggleKeypadBtn.addEventListener('click', (e) => {
|
||||
@@ -551,10 +579,10 @@ document.addEventListener('keydown', (e) => {
|
||||
return;
|
||||
}
|
||||
|
||||
// AAaa
|
||||
// preklopi prelom
|
||||
if (e.key === '*' || e.code === 'NumpadMultiply') {
|
||||
e.preventDefault();
|
||||
toggleCaps();
|
||||
toggleSplit();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
<div id="menu-dropdown" class="menu-dropdown">
|
||||
<button id="toggle-keypad-btn" class="menu-item" type="button">Skrij tipkovnico</button>
|
||||
<button id="dark-btn" class="menu-item" type="button">Velike/male črke (AAaa)</button>
|
||||
<button id="split-btn" class="menu-item" type="button">Prelom po kiticah</button>
|
||||
<button id="edit-song-btn" class="menu-item" type="button">Uredi besedilo</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user