Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
ff2balex
Manage
Activity
Members
Labels
Plan
Issues
9
Issue boards
Milestones
Wiki
External wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Lex gaMe
ff2balex
Commits
e75be92a
Commit
e75be92a
authored
4 months ago
by
Lucie Bader
Browse files
Options
Downloads
Patches
Plain Diff
Désactivation extension à la déconnexion
parent
ea0a6c51
No related branches found
No related tags found
2 merge requests
!8
Test final
,
!6
Améliorations du menu de l'extension
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/background/background.js
+11
-1
11 additions, 1 deletion
src/background/background.js
src/popup/popup.js
+17
-19
17 additions, 19 deletions
src/popup/popup.js
with
28 additions
and
20 deletions
src/background/background.js
+
11
−
1
View file @
e75be92a
...
@@ -115,7 +115,16 @@ async function disconnectFromLexicalDB() {
...
@@ -115,7 +115,16 @@ async function disconnectFromLexicalDB() {
console
.
log
(
"
🔓 Token supprimé avec succès.
"
);
console
.
log
(
"
🔓 Token supprimé avec succès.
"
);
await
browser
.
storage
.
local
.
remove
(
"
lexiconColors
"
);
await
browser
.
storage
.
local
.
remove
(
"
lexiconColors
"
);
disableExtensionFeatures
();
// Désactivation automatique de l'extension
await
browser
.
storage
.
local
.
set
({
extensionActive
:
false
});
disableExtensionFeatures
();
browser
.
runtime
.
sendMessage
({
action
:
"
updateUI
"
,
extensionActive
:
false
,
isTrackingActive
:
false
,
autoAdd
:
false
});
setTimeout
(
async
()
=>
{
setTimeout
(
async
()
=>
{
await
refreshAllUI
();
await
refreshAllUI
();
...
@@ -386,6 +395,7 @@ async function enableExtensionFeatures() {
...
@@ -386,6 +395,7 @@ async function enableExtensionFeatures() {
});
});
getOrCreateWhiteBox
();
getOrCreateWhiteBox
();
browser
.
sidebarAction
.
open
();
}
}
...
...
This diff is collapsed.
Click to expand it.
src/popup/popup.js
+
17
−
19
View file @
e75be92a
...
@@ -29,7 +29,7 @@ async function updateLanguageSelection() {
...
@@ -29,7 +29,7 @@ async function updateLanguageSelection() {
const
lexicons
=
await
getLexicons
(
accessToken
);
const
lexicons
=
await
getLexicons
(
accessToken
);
const
userLanguages
=
[...
new
Set
(
lexicons
.
map
(
lex
=>
lex
.
language
))];
const
userLanguages
=
[...
new
Set
(
lexicons
.
map
(
lex
=>
lex
.
language
))];
// Récupérer les langues
actuellement
suivies depuis le
local
sto
r
age
// Récupérer les langues suivies depuis le sto
ck
age
const
{
trackedLanguages
}
=
await
browser
.
storage
.
local
.
get
(
"
trackedLanguages
"
)
||
{
trackedLanguages
:
[]
};
const
{
trackedLanguages
}
=
await
browser
.
storage
.
local
.
get
(
"
trackedLanguages
"
)
||
{
trackedLanguages
:
[]
};
languageSelection
.
innerHTML
=
""
;
// Suppression du message de chargement
languageSelection
.
innerHTML
=
""
;
// Suppression du message de chargement
...
@@ -45,7 +45,7 @@ async function updateLanguageSelection() {
...
@@ -45,7 +45,7 @@ async function updateLanguageSelection() {
langButton
.
textContent
=
lang
.
toUpperCase
();
langButton
.
textContent
=
lang
.
toUpperCase
();
langButton
.
dataset
.
value
=
lang
;
langButton
.
dataset
.
value
=
lang
;
//
Vérifier s
i la langue est suivie
et
ajoute
r
la classe
`
selected
`
//
S
i la langue est suivie
,
ajoute la classe
"
selected
"
if
(
trackedLanguages
&&
trackedLanguages
.
includes
(
lang
))
{
if
(
trackedLanguages
&&
trackedLanguages
.
includes
(
lang
))
{
langButton
.
classList
.
add
(
"
selected
"
);
langButton
.
classList
.
add
(
"
selected
"
);
}
}
...
@@ -60,7 +60,7 @@ async function updateLanguageSelection() {
...
@@ -60,7 +60,7 @@ async function updateLanguageSelection() {
console
.
log
(
"
✅ Sélection des langues mise à jour avec :
"
,
userLanguages
);
console
.
log
(
"
✅ Sélection des langues mise à jour avec :
"
,
userLanguages
);
}
}
// === 3.
Gestion de l'affichage
des options utilisateur et des statistiques ===
// === 3.
Mise à jour
des options utilisateur et des statistiques ===
async
function
updateOptionsUI
()
{
async
function
updateOptionsUI
()
{
const
{
accessToken
}
=
await
browser
.
storage
.
local
.
get
(
"
accessToken
"
);
const
{
accessToken
}
=
await
browser
.
storage
.
local
.
get
(
"
accessToken
"
);
const
isLoggedIn
=
!!
accessToken
;
const
isLoggedIn
=
!!
accessToken
;
...
@@ -73,19 +73,16 @@ async function updateOptionsUI() {
...
@@ -73,19 +73,16 @@ async function updateOptionsUI() {
const
thresholdInput
=
document
.
getElementById
(
"
threshold
"
);
const
thresholdInput
=
document
.
getElementById
(
"
threshold
"
);
const
saveOptionsBtn
=
document
.
getElementById
(
"
save-options
"
);
const
saveOptionsBtn
=
document
.
getElementById
(
"
save-options
"
);
// Masquer l'option "Ajout Automatique" si l'utilisateur n'est pas connecté
if
(
autoAddContainer
)
{
if
(
autoAddContainer
)
{
autoAddContainer
.
style
.
display
=
isLoggedIn
?
"
block
"
:
"
none
"
;
autoAddContainer
.
style
.
display
=
isLoggedIn
?
"
block
"
:
"
none
"
;
}
}
// Charger les préférences utilisateur
const
{
isTrackingActive
,
autoAdd
,
threshold
}
=
await
browser
.
storage
.
local
.
get
([
const
{
isTrackingActive
,
autoAdd
,
threshold
}
=
await
browser
.
storage
.
local
.
get
([
"
isTrackingActive
"
,
"
isTrackingActive
"
,
"
autoAdd
"
,
"
autoAdd
"
,
"
threshold
"
"
threshold
"
])
||
{
isTrackingActive
:
false
};
])
||
{
isTrackingActive
:
false
};
// Mettre à jour le bouton des statistiques et le bloc associé
if
(
toggleStatsBtn
)
{
if
(
toggleStatsBtn
)
{
toggleStatsBtn
.
textContent
=
isTrackingActive
?
"
Désactiver les statistiques
"
:
"
Activer les statistiques
"
;
toggleStatsBtn
.
textContent
=
isTrackingActive
?
"
Désactiver les statistiques
"
:
"
Activer les statistiques
"
;
}
}
...
@@ -119,7 +116,7 @@ async function updateOptionsUI() {
...
@@ -119,7 +116,7 @@ async function updateOptionsUI() {
}
}
}
}
// === 4. Gestion des événements
utilisateur
===
// === 4. Gestion des événements
pour options/statistiques
===
document
.
getElementById
(
"
toggleStatsBtn
"
).
addEventListener
(
"
click
"
,
async
()
=>
{
document
.
getElementById
(
"
toggleStatsBtn
"
).
addEventListener
(
"
click
"
,
async
()
=>
{
const
current
=
await
browser
.
storage
.
local
.
get
(
"
isTrackingActive
"
);
const
current
=
await
browser
.
storage
.
local
.
get
(
"
isTrackingActive
"
);
const
newState
=
!
current
.
isTrackingActive
;
const
newState
=
!
current
.
isTrackingActive
;
...
@@ -178,6 +175,7 @@ async function updateExtensionToggleButton() {
...
@@ -178,6 +175,7 @@ async function updateExtensionToggleButton() {
toggleButton
.
textContent
=
extensionActive
?
"
Désactiver l'extension
"
:
"
Activer l'extension
"
;
toggleButton
.
textContent
=
extensionActive
?
"
Désactiver l'extension
"
:
"
Activer l'extension
"
;
if
(
!
toggleButton
.
dataset
.
listenerAdded
)
{
if
(
!
toggleButton
.
dataset
.
listenerAdded
)
{
// Attachement unique du gestionnaire de clic
toggleButton
.
addEventListener
(
"
click
"
,
handleToggleExtension
);
toggleButton
.
addEventListener
(
"
click
"
,
handleToggleExtension
);
toggleButton
.
dataset
.
listenerAdded
=
"
true
"
;
toggleButton
.
dataset
.
listenerAdded
=
"
true
"
;
}
}
...
@@ -186,16 +184,13 @@ async function updateExtensionToggleButton() {
...
@@ -186,16 +184,13 @@ async function updateExtensionToggleButton() {
}
}
}
}
//
Fonction de g
estion du clic sur le bouton d'activation/désactivation
//
G
estion du clic sur le bouton d'activation/désactivation
function
handleToggleExtension
(
event
)
{
function
handleToggleExtension
(
event
)
{
// Pour que l'appel à browser.sidebarAction.close() soit autorisé,
// L'appel à browser.sidebarAction.close() est fait directement dans le gestionnaire de clic (geste utilisateur)
// il doit être déclenché directement dans ce gestionnaire
// Nous fermons la sidebar immédiatement si l'extension est activée.
browser
.
storage
.
local
.
get
(
"
extensionActive
"
).
then
(({
extensionActive
})
=>
{
browser
.
storage
.
local
.
get
(
"
extensionActive
"
).
then
(({
extensionActive
})
=>
{
if
(
extensionActive
)
{
if
(
extensionActive
)
{
browser
.
sidebarAction
.
close
();
browser
.
sidebarAction
.
close
();
}
}
// Ensuite, procéder à la mise à jour de l'état.
proceedToggleExtension
();
proceedToggleExtension
();
});
});
}
}
...
@@ -210,19 +205,23 @@ async function proceedToggleExtension() {
...
@@ -210,19 +205,23 @@ async function proceedToggleExtension() {
toggleButton
.
textContent
=
newState
?
"
Désactiver l'extension
"
:
"
Activer l'extension
"
;
toggleButton
.
textContent
=
newState
?
"
Désactiver l'extension
"
:
"
Activer l'extension
"
;
}
}
// Envoi du message
vers le
background pour mettre à jour les fonctionnalités
// Envoi du message
au
background pour mettre à jour
l'UI et
les fonctionnalités
browser
.
runtime
.
sendMessage
({
action
:
"
toggleExtension
"
,
isActive
:
newState
});
browser
.
runtime
.
sendMessage
({
action
:
"
toggleExtension
"
,
isActive
:
newState
});
//
Ouvrir la sidebar s
i l'extension est activée,
sinon el
le
r
est
e fermée.
//
S
i l'extension est activée,
ouvrir la sidebar dans
le
g
est
ionnaire de clic
if
(
newState
)
{
if
(
newState
)
{
browser
.
sidebarAction
.
open
();
try
{
browser
.
sidebarAction
.
open
();
console
.
log
(
"
Sidebar ouverte directement depuis le popup.
"
);
}
catch
(
err
)
{
console
.
error
(
"
Erreur lors de l'ouverture de la sidebar :
"
,
err
);
}
}
}
showNotification
(
`Extension
${
newState
?
"
activée
"
:
"
désactivée
"
}
.`
);
showNotification
(
`Extension
${
newState
?
"
activée
"
:
"
désactivée
"
}
.`
);
}
}
// === 6. Mise à jour de l'UI du popup en fonction d'un message ===
// === 6. Fonction pour mettre à jour l'UI du popup en fonction d'un message ===
async
function
updatePopupUI
(
message
)
{
async
function
updatePopupUI
(
message
)
{
console
.
log
(
"
🔄 Mise à jour du popup avec :
"
,
message
);
console
.
log
(
"
🔄 Mise à jour du popup avec :
"
,
message
);
...
@@ -280,8 +279,7 @@ browser.storage.onChanged.addListener((changes, area) => {
...
@@ -280,8 +279,7 @@ browser.storage.onChanged.addListener((changes, area) => {
}
}
});
});
// === 8. Notification d'activation/désactivation ===
// === 8. Fonction pour gérer la notification d'activation/désactivation ===
function
showNotification
(
message
)
{
function
showNotification
(
message
)
{
const
notificationBox
=
document
.
getElementById
(
"
extension-notification
"
);
const
notificationBox
=
document
.
getElementById
(
"
extension-notification
"
);
const
notificationText
=
document
.
getElementById
(
"
notification-text
"
);
const
notificationText
=
document
.
getElementById
(
"
notification-text
"
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment