class QueryResultList extends RessourceList { static options = { item: `


delete send `.trim(), ressourceMapper: queryResult => { return { id: queryResult.id, corpusTitle: queryResult.corpus_title, creationDate: queryResult.creation_date, description: queryResult.description, query: queryResult.query, title: queryResult.title }; }, sortValueName: 'creationDate', valueNames: [ {data: ['id']}, {data: ['creationDate']}, 'corpusTitle', 'description', 'query', 'title' ] }; constructor(listElement, options = {}) { super(listElement, {...QueryResultList.options, ...options}); } init(user) { super._init(user.query_results); } onclick(event) { let action; let actionButtonElement; let deleteModal; let deleteModalElement; let queryResultElement; let queryResultId; let tmp; queryResultElement = event.target.closest('tr[data-id]'); if (queryResultElement === null) {return;} queryResultId = queryResultElement.dataset.id; actionButtonElement = event.target.closest('.action-button[data-action]'); action = actionButtonElement === null ? 'view' : actionButtonElement.dataset.action; switch (action) { case 'delete': tmp = document.createElement('div'); tmp.innerHTML = ` `.trim(); deleteModalElement = document.querySelector('#modals').appendChild(tmp.firstChild); deleteModal = M.Modal.init( deleteModalElement, { onCloseEnd: () => { deleteModal.destroy(); deleteModalElement.remove(); } } ); deleteModal.open(); break; case 'view': window.location.href = `/query_results/${queryResultId}`; break; default: break; } } usersPatchHandler(patch) { let filteredPatch; let match; let operation; let queryResultId; let re; let valueName; re = new RegExp(`^/users/${this.userId}/query_results/([A-Za-z0-9]*)`); filteredPatch = patch.filter(operation => re.test(operation.path)); for (operation of filteredPatch) { switch(operation.op) { case 'add': re = new RegExp(`^/users/${this.userId}/query_results/([A-Za-z0-9]*)$`); if (re.test(operation.path)) { this.add(operation.value); } break; case 'remove': re = new RegExp(`^/users/${this.userId}/query_results/([A-Za-z0-9]*)$`); if (re.test(operation.path)) { [match, queryResultId] = operation.path.match(re); this.remove(queryResultId); } break; case 'replace': re = new RegExp(`^/users/${this.userId}/query_results/([A-Za-z0-9]*)/(corpus_title|description|query|title)$`); if (re.test(operation.path)) { [match, queryResultId, valueName] = operation.path.match(re); this.replace(queryResultId, valueName, operation.value); } break; default: break; } } } }