+
+ /**
+ * Bulk actions
+ *
+ * Note: Requires a modern browser.
+ */
+ if (testEs6Compatibility()) {
+ let linkCheckboxes = document.querySelectorAll('.delete-checkbox');
+ for(let checkbox of linkCheckboxes) {
+ checkbox.style.display = 'block';
+ checkbox.addEventListener('click', function(event) {
+ let count = 0;
+ for(let checkbox of linkCheckboxes) {
+ count = checkbox.checked ? count + 1 : count;
+ }
+ let bar = document.getElementById('actions');
+ if (count == 0 && bar.classList.contains('open')) {
+ bar.classList.toggle('open');
+ } else if (count > 0 && ! bar.classList.contains('open')) {
+ bar.classList.toggle('open');
+ }
+ });
+ }
+
+ let deleteButton = document.getElementById('actions-delete');
+ let token = document.querySelector('input[type="hidden"][name="token"]');
+ if (deleteButton != null && token != null) {
+ deleteButton.addEventListener('click', function(event) {
+ event.preventDefault();
+
+ let links = [];
+ for(let checkbox of linkCheckboxes) {
+ if (checkbox.checked) {
+ links.push({
+ 'id': checkbox.value,
+ 'title': document.querySelector('.linklist-item[data-id="'+ checkbox.value +'"] .linklist-link').innerHTML
+ });
+ }
+ }
+
+ let message = 'Are you sure you want to delete '+ links.length +' links?\n';
+ message += 'This action is IRREVERSIBLE!\n\nTitles:\n';
+ let ids = '';
+ for (let item of links) {
+ message += ' - '+ item['title'] +'\n';
+ ids += item['id'] +'+';
+ }
+ if (window.confirm(message)) {
+ window.location = '?delete_link&lf_linkdate='+ ids +'&token='+ token.value;
+ }
+ });
+ }
+ }