diff --git a/apps/ops/src/pages/PlanificationPage.vue b/apps/ops/src/pages/PlanificationPage.vue index 7a88536..525a6d1 100644 --- a/apps/ops/src/pages/PlanificationPage.vue +++ b/apps/ops/src/pages/PlanificationPage.vue @@ -98,7 +98,7 @@ garde ·libre Jmodifié (non publié) - · glisser = sélection · shift+clic = bloc · clic en-tête = colonne · clic nom = rangée · ctrl+clic = +1 · ctrl+C/V = copier/coller une case + · glisser = sélection · shift+clic = bloc · clic en-tête = colonne · clic nom = rangée · ctrl+clic = +1 · ctrl+C/V = copier/coller · Suppr/⌫ = vider
@@ -645,10 +645,19 @@ async function togglePause (t) { try { const paused = !isPaused(t); await roster function err (e) { $q.notify({ type: 'negative', message: '' + (e.message || e) }) } function onKey (e) { + const tag = (e.target && e.target.tagName) || '' + if (/INPUT|TEXTAREA|SELECT/.test(tag) || (e.target && e.target.isContentEditable)) return // ne pas intercepter quand on tape dans un champ const k = e.key.toLowerCase() if ((e.ctrlKey || e.metaKey) && k === 'z') { e.preventDefault(); if (e.shiftKey) redo(); else undo(); return } if ((e.ctrlKey || e.metaKey) && k === 'c' && (selection.value.length || activeCell.value)) { e.preventDefault(); menu.show = false; copyCell(); return } - if ((e.ctrlKey || e.metaKey) && k === 'v' && (selection.value.length || activeCell.value)) { e.preventDefault(); menu.show = false; pasteCells() } + if ((e.ctrlKey || e.metaKey) && k === 'v' && (selection.value.length || activeCell.value)) { e.preventDefault(); menu.show = false; pasteCells(); return } + if ((k === 'delete' || k === 'backspace') && (selection.value.length || activeCell.value)) { + e.preventDefault(); menu.show = false + const targets = selection.value.length ? selection.value.slice() : [activeCell.value.id + '|' + activeCell.value.iso] + pushHistory() + for (const key of targets) { const [tid, iso] = key.split('|'); clearLocal(tid, iso) } + if (selection.value.length) selection.value = [] + } } function onUnload (e) { if (dirty.value) { e.preventDefault(); e.returnValue = '' } } onMounted(async () => { loadLS(); document.addEventListener('keydown', onKey); document.addEventListener('mouseup', onUp); window.addEventListener('beforeunload', onUnload); try { await loadBase() } catch (e) { err(e) } await loadWeek() })