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() })