Skip to content

Commit 916d915

Browse files
authored
Actually add link open in new tab support... (#322)
1 parent a690f04 commit 916d915

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

ophirofox/settings/options_ui.html

+7
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@
8787
<button id="missing_permissions" hidden type="button">
8888
Autoriser l'accès à Europresse
8989
</button>
90+
<fieldset>
91+
<legend>Général</legend>
92+
<label>
93+
<input type="checkbox" id="open_links_new_tab">
94+
Ouvrir les liens Europresse dans un nouvel onglet
95+
</label>
96+
</fieldset>
9097
<fieldset>
9198
<legend>Partenaire Europresse</legend>
9299
<p>

ophirofox/settings/options_ui.js

+26-12
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ const choicelist = document.getElementById("partner_choices");
22
const template = document.getElementById("partner_template");
33
const search = document.getElementById("partner_search");
44
const missing_permissions_btn = document.getElementById("missing_permissions");
5+
const openLinksCheckbox = document.getElementById("open_links_new_tab");
56

6-
const settings_promise = getSettings();
7+
let settings = {};
78

8-
function add_partner(name, settings) {
9+
// Fonction pour ajouter un partenaire à la liste
10+
function add_partner(name) {
911
const clone = template.content.cloneNode(true);
1012
const span = clone.getElementById("partner_name");
1113
/** @type {HTMLInputElement} */
@@ -17,37 +19,49 @@ function add_partner(name, settings) {
1719
if (input.checked) {
1820
try {
1921
await ophirofoxAskPermissions(name);
20-
setSettings({ ...settings, partner_name: name });
22+
settings.partner_name = name;
23+
await setSettings(settings);
2124
reCheckPermissions(name);
2225
} catch (err) {
2326
console.error(err);
24-
// restore previous value
2527
input.checked = false;
2628
}
2729
}
2830
};
2931
}
3032

33+
// Fonction pour vérifier les permissions
3134
async function reCheckPermissions(name) {
3235
missing_permissions_btn.hidden = await ophirofoxCheckPermissions(name);
3336
}
3437

35-
settings_promise.then((settings) => {
36-
ophirofox_config_list.forEach(p => add_partner(p.name, settings));
38+
// Récupération des paramètres et initialisation de l'interface
39+
getSettings().then((retrievedSettings) => {
40+
settings = retrievedSettings;
41+
ophirofox_config_list.forEach(p => add_partner(p.name));
3742
reCheckPermissions(settings.partner_name);
43+
openLinksCheckbox.checked = settings.open_links_new_tab || false;
3844
});
3945

46+
// Gestion des modifications de la case à cocher
47+
openLinksCheckbox.onchange = () => {
48+
settings.open_links_new_tab = openLinksCheckbox.checked;
49+
setSettings(settings);
50+
};
51+
52+
// Gestion du bouton de permissions manquantes
4053
missing_permissions_btn.onclick = async () => {
41-
const partner_name = current_settings.partner_name;
54+
const partner_name = settings.partner_name;
4255
await ophirofoxAskPermissions(partner_name);
4356
missing_permissions_btn.hidden = true;
44-
}
57+
};
4558

59+
// Gestion de la recherche de partenaires
4660
search.oninput = () => {
47-
const search_term = search.value;
61+
const search_term = search.value.toLowerCase();
4862
const partners = choicelist.getElementsByClassName("partner");
4963
Array.from(partners).forEach((partner) => {
50-
const partner_name = partner.textContent;
51-
partner.hidden = !partner_name.toLowerCase().includes(search_term.toLowerCase());
64+
const partner_name = partner.textContent.toLowerCase();
65+
partner.hidden = !partner_name.includes(search_term);
5266
});
53-
}
67+
};

0 commit comments

Comments
 (0)