Make the selection and download buttons on the download page functional

This commit is contained in:
Alex Ling 2020-02-25 02:29:00 +00:00
parent d782995bac
commit 9f6261e02d
2 changed files with 34 additions and 6 deletions

View File

@ -10,6 +10,35 @@ $(() => {
});
});
});
const selectAll = () => {
$('tbody > tr').each((i, e) => {
$(e).addClass('ui-selected');
});
};
const unselect = () => {
$('tbody > tr').each((i, e) => {
$(e).removeClass('ui-selected');
});
};
const download = () => {
const selected = $('tbody > tr.ui-selected');
if (selected.length === 0) return;
UIkit.modal.confirm(`Download ${selected.length} selected chapters?`).then(() => {
const ids = selected.map((i, e) => {
return $(e).find('td').first().text();
}).get();
console.log(ids);
$.post('/api/admin/download', {
chapters: ids
})
.done(() => {
console.log('post succeed');
})
.fail((jqXHR, status) => {
alert('danger', `Failed to add chapters to the download queue. Error: [${jqXHR.status}] ${jqXHR.statusText}`);
});
});
};
const toggleSpinner = () => {
var attr = $('#spinner').attr('hidden');
if (attr) {
@ -111,7 +140,7 @@ const search = () => {
buildTable();
})
.fail((jqXHR, status) => {
alert('danger', 'Failed to get manga info. Error: ' + status);
alert('danger', `Failed to get manga info. Error: [${jqXHR.status}] ${jqXHR.statusText}`);
})
.always(() => {
toggleSpinner();
@ -241,8 +270,7 @@ const buildTable = () => {
$('table').append(tbody);
$('table').removeAttr('hidden');
$("#selectable").selectable({
filter: 'tr',
autoRefresh: false
filter: 'tr'
});
$('#selection-controls').removeAttr('hidden');
};

View File

@ -51,9 +51,9 @@
</div>
<div id="selection-controls" class="uk-margin" hidden>
<div class="uk-margin">
<button class="uk-button uk-button-default">Select All</button>
<button class="uk-button uk-button-default">Clear Selections</button>
<button class="uk-button uk-button-primary">Download Selected</button>
<button class="uk-button uk-button-default" onclick="selectAll()">Select All</button>
<button class="uk-button uk-button-default" onclick="unselect()">Clear Selections</button>
<button class="uk-button uk-button-primary" onclick="download()">Download Selected</button>
</div>
<p class="uk-text-meta">Click on a table row to select the chapter. Drag your mouse over multiple rows to select them all. Hold Ctrl to make multiple non-adjacent selections.</p>
</div>