return str.replace(/[\u00A0-\u9999<>&]/gim, i => `&#${i.charCodeAt(0)};`);
}
-function activateFirefoxSocial(node) {
- const loc = location.href;
- const baseURL = loc.substring(0, loc.lastIndexOf('/') + 1);
-
- const data = {
- name: document.title,
- description: document.getElementById('translation-delete-link').innerHTML,
- author: 'Shaarli',
- version: '1.0.0',
-
- iconURL: `${baseURL}/images/favicon.ico`,
- icon32URL: `${baseURL}/images/favicon.ico`,
- icon64URL: `${baseURL}/images/favicon.ico`,
-
- shareURL: `${baseURL}?post=%{url}&title=%{title}&description=%{text}&source=firefoxsocialapi`,
- homepageURL: baseURL,
- };
- node.setAttribute('data-service', JSON.stringify(data));
-
- const activate = new CustomEvent('ActivateSocialFeature');
- node.dispatchEvent(activate);
-}
-
/**
* Add the class 'hidden' to city options not attached to the current selected continent.
*
});
});
- /**
- * Firefox Social
- */
- const ffButton = document.getElementById('ff-social-button');
- if (ffButton != null) {
- ffButton.addEventListener('click', (event) => {
- activateFirefoxSocial(event.target);
- });
- }
-
const continent = document.getElementById('continent');
const city = document.getElementById('city');
if (continent != null && city != null) {
/**
* Bulk actions
*/
- const linkCheckboxes = document.querySelectorAll('.delete-checkbox');
+ const linkCheckboxes = document.querySelectorAll('.link-checkbox');
const bar = document.getElementById('actions');
[...linkCheckboxes].forEach((checkbox) => {
checkbox.style.display = 'inline-block';
- checkbox.addEventListener('click', () => {
- const linkCheckedCheckboxes = document.querySelectorAll('.delete-checkbox:checked');
+ checkbox.addEventListener('change', () => {
+ const linkCheckedCheckboxes = document.querySelectorAll('.link-checkbox:checked');
const count = [...linkCheckedCheckboxes].length;
if (count === 0 && bar.classList.contains('open')) {
bar.classList.toggle('open');
event.preventDefault();
const links = [];
- const linkCheckedCheckboxes = document.querySelectorAll('.delete-checkbox:checked');
+ const linkCheckedCheckboxes = document.querySelectorAll('.link-checkbox:checked');
[...linkCheckedCheckboxes].forEach((checkbox) => {
links.push({
id: checkbox.value,
});
}
+ /**
+ * Select all button
+ */
+ const selectAllButtons = document.querySelectorAll('.select-all-button');
+ [...selectAllButtons].forEach((selectAllButton) => {
+ selectAllButton.addEventListener('click', (e) => {
+ e.preventDefault();
+ const checked = selectAllButton.classList.contains('filter-off');
+ [...selectAllButtons].forEach((selectAllButton2) => {
+ selectAllButton2.classList.toggle('filter-off');
+ selectAllButton2.classList.toggle('filter-on');
+ });
+ [...linkCheckboxes].forEach((linkCheckbox) => {
+ linkCheckbox.checked = checked;
+ linkCheckbox.dispatchEvent(new Event('change'));
+ });
+ });
+ });
+
/**
* Tag list operations
*
event.preventDefault();
const block = findParent(event.target, 'div', { class: 'tag-list-item' });
const tag = block.getAttribute('data-tag');
- const refreshedToken = document.getElementById('token');
+ const refreshedToken = document.getElementById('token').value;
if (confirm(`Are you sure you want to delete the tag "${tag}"?`)) {
const xhr = new XMLHttpRequest();