Merge pull request #344 from wanhose/v6.4.5

6.4.5
This commit is contained in:
wanhose 2023-11-09 19:01:53 +01:00 committed by GitHub
commit e689021638
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 101 additions and 3 deletions

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Ausnahmeliste verwalten" "message": "Ausnahmeliste verwalten"
}, },
"options_addButton": {
"message": "Ausschluss hinzufügen"
},
"options_addPrompt": {
"message": "Domain eingeben"
},
"options_clearButton": { "options_clearButton": {
"message": "Liste leeren" "message": "Liste leeren"
}, },

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Manage exclusion list" "message": "Manage exclusion list"
}, },
"options_addButton": {
"message": "Add exclusion"
},
"options_addPrompt": {
"message": "Enter domain"
},
"options_clearButton": { "options_clearButton": {
"message": "Clear list" "message": "Clear list"
}, },

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Gestionar lista de exclusión" "message": "Gestionar lista de exclusión"
}, },
"options_addButton": {
"message": "Agregar exclusión"
},
"options_addPrompt": {
"message": "Ingrese el dominio"
},
"options_clearButton": { "options_clearButton": {
"message": "Borrar lista" "message": "Borrar lista"
}, },

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Gérer la liste d'exclusion" "message": "Gérer la liste d'exclusion"
}, },
"options_addButton": {
"message": "Ajouter une exclusion"
},
"options_addPrompt": {
"message": "Entrez le domaine"
},
"options_clearButton": { "options_clearButton": {
"message": "Effacer la liste" "message": "Effacer la liste"
}, },

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Gestisci elenco di esclusione" "message": "Gestisci elenco di esclusione"
}, },
"options_addButton": {
"message": "Aggiungi esclusione"
},
"options_addPrompt": {
"message": "Inserisci il dominio"
},
"options_clearButton": { "options_clearButton": {
"message": "Cancella elenco" "message": "Cancella elenco"
}, },

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Gerenciar lista de exclusão" "message": "Gerenciar lista de exclusão"
}, },
"options_addButton": {
"message": "Adicionar exclusão"
},
"options_addPrompt": {
"message": "Digite o domínio"
},
"options_clearButton": { "options_clearButton": {
"message": "Limpar lista" "message": "Limpar lista"
}, },

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Gerenciar lista de exclusão" "message": "Gerenciar lista de exclusão"
}, },
"options_addButton": {
"message": "Adicionar exclusão"
},
"options_addPrompt": {
"message": "Digite o domínio"
},
"options_clearButton": { "options_clearButton": {
"message": "Limpar lista" "message": "Limpar lista"
}, },

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Gestionați lista de excludere" "message": "Gestionați lista de excludere"
}, },
"options_addButton": {
"message": "Adăugați excludere"
},
"options_addPrompt": {
"message": "Introduceți domeniul"
},
"options_clearButton": { "options_clearButton": {
"message": "Ștergeți lista" "message": "Ștergeți lista"
}, },

View File

@ -8,6 +8,12 @@
"contextMenu_settingsOption": { "contextMenu_settingsOption": {
"message": "Управление списком исключений" "message": "Управление списком исключений"
}, },
"options_addButton": {
"message": "Добавить исключение"
},
"options_addPrompt": {
"message": "Введите домен"
},
"options_clearButton": { "options_clearButton": {
"message": "Очистить список" "message": "Очистить список"
}, },

View File

@ -1,7 +1,7 @@
{ {
"manifest_version": 3, "manifest_version": 3,
"name": "Cookie Dialog Monster", "name": "Cookie Dialog Monster",
"version": "6.4.4", "version": "6.4.5",
"default_locale": "en", "default_locale": "en",
"description": "__MSG_appDesc__", "description": "__MSG_appDesc__",
"icons": { "icons": {

View File

@ -17,6 +17,22 @@
</header> </header>
<main> <main>
<div class="button-group"> <div class="button-group">
<button data-variant="large" id="add-button">
<span data-i18n="options_addButton"></span>
<svg
fill="none"
height="14"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
stroke="currentColor"
viewBox="0 0 24 24"
width="14"
>
<line x1="12" y1="5" x2="12" y2="19"></line>
<line x1="5" y1="12" x2="19" y2="12"></line>
</svg>
</button>
<button data-variant="large" id="clear-button"> <button data-variant="large" id="clear-button">
<span data-i18n="options_clearButton"></span> <span data-i18n="options_clearButton"></span>
<svg <svg
@ -76,7 +92,6 @@
</svg> </svg>
</button> </button>
</div> </div>
<input id="filter-input" data-i18n-placeholder="options_filterPlaceholder" /> <input id="filter-input" data-i18n-placeholder="options_filterPlaceholder" />
<ul id="exclusion-list"> <ul id="exclusion-list">
<li id="exclusion-list-item-template" style="display: none"> <li id="exclusion-list-item-template" style="display: none">

View File

@ -89,7 +89,7 @@ function getHostname() {
let hostname = document.location.hostname; let hostname = document.location.hostname;
const referrer = document.referrer; const referrer = document.referrer;
if (referrer) { if (referrer && window.self !== window.top) {
hostname = new URL(referrer).hostname; hostname = new URL(referrer).hostname;
} }

View File

@ -4,6 +4,12 @@
const dispatch = chrome.runtime.sendMessage; const dispatch = chrome.runtime.sendMessage;
/**
* @description Domain RegExp
*/
const domainRx = /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/g;
/** /**
* @description Exclusion list, URLs where the user prefers to disable the extension * @description Exclusion list, URLs where the user prefers to disable the extension
* @type {string[]} * @type {string[]}
@ -46,6 +52,26 @@ function createList() {
} }
} }
/**
* @async
* @description Add a new item to the exclusion list
* @returns {Promise<void>}
*/
async function handleAddClick() {
const exclusionValue = window.prompt(chrome.i18n.getMessage('options_addPrompt'));
if (exclusionValue?.trim() && (domainRx.test(exclusionValue) || exclusionValue === 'localhost')) {
const filterInputElement = document.getElementById('filter-input');
const state = { enabled: false };
await dispatch({ hostname: exclusionValue, state, type: 'SET_HOSTNAME_STATE' });
exclusionList = [...new Set([...exclusionList, exclusionValue])].sort();
createList();
updateList(filterInputElement.value.trim());
}
}
/** /**
* @async * @async
* @description Clear all items from the exclusion list * @description Clear all items from the exclusion list
@ -74,6 +100,9 @@ async function handleContentLoaded() {
exclusionList = await dispatch({ type: 'GET_EXCLUSION_LIST' }); exclusionList = await dispatch({ type: 'GET_EXCLUSION_LIST' });
createList(); createList();
const addButtonElement = document.getElementById('add-button');
addButtonElement.addEventListener('click', handleAddClick);
const clearButtonElement = document.getElementById('clear-button'); const clearButtonElement = document.getElementById('clear-button');
clearButtonElement.addEventListener('click', handleClearClick); clearButtonElement.addEventListener('click', handleClearClick);