From a676475b553e598a4f3d5fe0f60fae7b8f95f7df Mon Sep 17 00:00:00 2001 From: Patrick Jentsch <p.jentsch@uni-bielefeld.de> Date: Tue, 21 Mar 2023 09:14:16 +0100 Subject: [PATCH] Fix JobList delete function --- app/static/js/ResourceLists/CorpusList.js | 2 +- app/static/js/ResourceLists/JobList.js | 34 +++++++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/app/static/js/ResourceLists/CorpusList.js b/app/static/js/ResourceLists/CorpusList.js index 955bb424..00ddd7c1 100644 --- a/app/static/js/ResourceLists/CorpusList.js +++ b/app/static/js/ResourceLists/CorpusList.js @@ -56,7 +56,7 @@ class CorpusList extends ResourceList { <div class="input-field"> <i class="material-icons prefix">search</i> <input id="${listSearchElementId}" class="search" type="text"></input> - <label for="${listSearchElementId}">Search corpus</label> + <label for="${listSearchElementId}">Search Corpus</label> </div> <table> <thead> diff --git a/app/static/js/ResourceLists/JobList.js b/app/static/js/ResourceLists/JobList.js index 2c48996e..ff09d3cf 100644 --- a/app/static/js/ResourceLists/JobList.js +++ b/app/static/js/ResourceLists/JobList.js @@ -56,7 +56,7 @@ class JobList extends ResourceList { <div class="input-field"> <i class="material-icons prefix">search</i> <input id="${listSearchElementId}" class="search" type="text"></input> - <label for="${listSearchElementId}">Search job</label> + <label for="${listSearchElementId}">Search Job</label> </div> <table> <thead> @@ -96,7 +96,37 @@ class JobList extends ResourceList { let listAction = listActionElement === null ? 'view' : listActionElement.dataset.listAction; switch (listAction) { case 'delete-request': { - Requests.jobs.entity.delete(itemId); + let values = this.listjs.get('id', itemId)[0].values(); + let modalElement = Utils.HTMLToElement( + ` + <div class="modal"> + <div class="modal-content"> + <h4>Confirm Job deletion</h4> + <p>Do you really want to delete the Job <b>${values.title}</b>? All files will be permanently deleted!</p> + </div> + <div class="modal-footer"> + <a class="btn modal-close waves-effect waves-light">Cancel</a> + <a class="action-button btn modal-close red waves-effect waves-light" data-action="confirm">Delete</a> + </div> + </div> + ` + ); + document.querySelector('#modals').appendChild(modalElement); + let modal = M.Modal.init( + modalElement, + { + dismissible: false, + onCloseEnd: () => { + modal.destroy(); + modalElement.remove(); + } + } + ); + let confirmElement = modalElement.querySelector('.action-button[data-action="confirm"]'); + confirmElement.addEventListener('click', (event) => { + Requests.jobs.entity.delete(itemId); + }); + modal.open(); break; } case 'view': { -- GitLab