@@ -2,10 +2,12 @@ const choicelist = document.getElementById("partner_choices");
2
2
const template = document . getElementById ( "partner_template" ) ;
3
3
const search = document . getElementById ( "partner_search" ) ;
4
4
const missing_permissions_btn = document . getElementById ( "missing_permissions" ) ;
5
+ const openLinksCheckbox = document . getElementById ( "open_links_new_tab" ) ;
5
6
6
- const settings_promise = getSettings ( ) ;
7
+ let settings = { } ;
7
8
8
- function add_partner ( name , settings ) {
9
+ // Fonction pour ajouter un partenaire à la liste
10
+ function add_partner ( name ) {
9
11
const clone = template . content . cloneNode ( true ) ;
10
12
const span = clone . getElementById ( "partner_name" ) ;
11
13
/** @type {HTMLInputElement } */
@@ -17,37 +19,49 @@ function add_partner(name, settings) {
17
19
if ( input . checked ) {
18
20
try {
19
21
await ophirofoxAskPermissions ( name ) ;
20
- setSettings ( { ...settings , partner_name : name } ) ;
22
+ settings . partner_name = name ;
23
+ await setSettings ( settings ) ;
21
24
reCheckPermissions ( name ) ;
22
25
} catch ( err ) {
23
26
console . error ( err ) ;
24
- // restore previous value
25
27
input . checked = false ;
26
28
}
27
29
}
28
30
} ;
29
31
}
30
32
33
+ // Fonction pour vérifier les permissions
31
34
async function reCheckPermissions ( name ) {
32
35
missing_permissions_btn . hidden = await ophirofoxCheckPermissions ( name ) ;
33
36
}
34
37
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 ) ) ;
37
42
reCheckPermissions ( settings . partner_name ) ;
43
+ openLinksCheckbox . checked = settings . open_links_new_tab || false ;
38
44
} ) ;
39
45
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
40
53
missing_permissions_btn . onclick = async ( ) => {
41
- const partner_name = current_settings . partner_name ;
54
+ const partner_name = settings . partner_name ;
42
55
await ophirofoxAskPermissions ( partner_name ) ;
43
56
missing_permissions_btn . hidden = true ;
44
- }
57
+ } ;
45
58
59
+ // Gestion de la recherche de partenaires
46
60
search . oninput = ( ) => {
47
- const search_term = search . value ;
61
+ const search_term = search . value . toLowerCase ( ) ;
48
62
const partners = choicelist . getElementsByClassName ( "partner" ) ;
49
63
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 ) ;
52
66
} ) ;
53
- }
67
+ } ;
0 commit comments