Add delete word with confirmation
This commit is contained in:
parent
d737ec9944
commit
3a29d56072
|
@ -1,6 +1,6 @@
|
||||||
import {showSection} from './displayToggles';
|
import {showSection} from './displayToggles';
|
||||||
import { renderWords, renderEditForm, renderMaximizedTextbox } from './render';
|
import { renderWords, renderEditForm, renderMaximizedTextbox } from './render';
|
||||||
import { validateWord, addWord, confirmEditWord, cancelEditWord } from './wordManagement';
|
import { validateWord, addWord, confirmEditWord, cancelEditWord, confirmDeleteWord } from './wordManagement';
|
||||||
import { removeTags } from '../helpers';
|
import { removeTags } from '../helpers';
|
||||||
import { getNextId } from './utilities';
|
import { getNextId } from './utilities';
|
||||||
import { openEditModal, save, saveAndClose } from './dictionaryManagement';
|
import { openEditModal, save, saveAndClose } from './dictionaryManagement';
|
||||||
|
@ -185,6 +185,8 @@ export function setupWordOptionSelections() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'Delete': {
|
case 'Delete': {
|
||||||
|
option.removeEventListener('click', confirmDeleteWord);
|
||||||
|
option.addEventListener('click', confirmDeleteWord);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,14 @@ export function addWord(word, render = true) {
|
||||||
sortWords(render);
|
sortWords(render);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function deleteWord(wordId) {
|
||||||
|
const wordIndex = window.currentDictionary.words.findIndex(word => word.wordId === wordId);
|
||||||
|
if (wordIndex > -1) {
|
||||||
|
window.currentDictionary.words.splice(wordIndex, 1);
|
||||||
|
}
|
||||||
|
sortWords(true);
|
||||||
|
}
|
||||||
|
|
||||||
export function updateWord(word, wordId) {
|
export function updateWord(word, wordId) {
|
||||||
const wordIndex = window.currentDictionary.words.findIndex(word => word.wordId === wordId);
|
const wordIndex = window.currentDictionary.words.findIndex(word => word.wordId === wordId);
|
||||||
|
|
||||||
|
@ -86,13 +94,27 @@ export function confirmEditWord() {
|
||||||
|
|
||||||
export function cancelEditWord() {
|
export function cancelEditWord() {
|
||||||
const wordId = parseInt(this.parentElement.id.replace('editForm_', ''));
|
const wordId = parseInt(this.parentElement.id.replace('editForm_', ''));
|
||||||
console.log('wordId', wordId);
|
|
||||||
if (confirm(`Are you sure you want to cancel?\n(Any changes will be lost!)`)) {
|
if (confirm(`Are you sure you want to cancel?\n(Any changes will be lost!)`)) {
|
||||||
document.getElementById('editForm_' + wordId).classList.add('done');
|
document.getElementById('editForm_' + wordId).classList.add('done');
|
||||||
renderWords();
|
renderWords();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function confirmDeleteWord(wordId) {
|
||||||
|
wordId = typeof wordId.target === 'undefined' ? wordId : parseInt(wordId.target.id.replace('delete_', ''));
|
||||||
|
const word = window.currentDictionary.words.find(w => w.wordId === wordId);
|
||||||
|
|
||||||
|
if (!word) {
|
||||||
|
console.error('Something went wrong! Couldn\'t find word with id of ' + wordId);
|
||||||
|
} else {
|
||||||
|
if (confirm(`Are you sure you want to delete "${word.name}"?`)) {
|
||||||
|
if (confirm(`Just to double-check:\nDo you really want to delete "${word.name}"?\n\nYou won't be able to undo it!`)) {
|
||||||
|
deleteWord(wordId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function getOpenEditForms() {
|
export function getOpenEditForms() {
|
||||||
const openEditForms = document.getElementsByClassName('edit-form');
|
const openEditForms = document.getElementsByClassName('edit-form');
|
||||||
const formsToReopen = [];
|
const formsToReopen = [];
|
||||||
|
|
Loading…
Reference in New Issue