class QueryResultList extends RessourceList { static autoInit() { for (let queryResultListElement of document.querySelectorAll('.query-result-list:not(.no-autoinit)')) { new QueryResultList(queryResultListElement); } } static options = { item: `


delete send `.trim(), ressourceMapper: queryResult => { return { 'id': queryResult.id, 'corpus-title': queryResult.corpus_title, 'creation-date': queryResult.creation_date, 'description': queryResult.description, 'query': queryResult.query, 'title': queryResult.title }; }, sortArgs: ['creation-date', {order: 'desc'}], valueNames: [ {data: ['id']}, {data: ['creation-date']}, 'corpus-title', '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; } } onPATCH(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.replace('_', '-'), operation.value); } break; default: break; } } } }