@@ -12,22 +12,20 @@ function loadOptions() {
12
12
mode : 'highlight' ,
13
13
highlightPotentialMdpiSites : false ,
14
14
potentialMdpiHighlightColor : '#FFFF99' ,
15
- loggingEnabled : false
15
+ loggingEnabled : false ,
16
+ ncbiApiEnabled : true
16
17
} , ( settings ) => {
17
18
if ( chrome . runtime . lastError ) {
18
19
console . error ( "Error loading options:" , chrome . runtime . lastError ) ;
19
20
return ;
20
21
}
21
- radios . forEach ( r => r . checked = ( r . value === settings . mode ) ) ;
22
- if ( highlightPotentialMdpiCheckboxOptions ) {
23
- highlightPotentialMdpiCheckboxOptions . checked = settings . highlightPotentialMdpiSites ;
24
- }
25
- if ( potentialMdpiColorInputOptions ) {
26
- potentialMdpiColorInputOptions . value = settings . potentialMdpiHighlightColor ;
27
- }
28
- if ( loggingCheckboxOptions ) {
29
- loggingCheckboxOptions . checked = settings . loggingEnabled ;
30
- }
22
+ // populate UI
23
+ Array . from ( radios ) . find ( r => r . value === settings . mode ) . checked = true ;
24
+ if ( highlightPotentialMdpiCheckboxOptions ) highlightPotentialMdpiCheckboxOptions . checked = settings . highlightPotentialMdpiSites ;
25
+ if ( potentialMdpiColorInputOptions ) potentialMdpiColorInputOptions . value = settings . potentialMdpiHighlightColor ;
26
+ if ( loggingCheckboxOptions ) loggingCheckboxOptions . checked = settings . loggingEnabled ;
27
+ const ncbiCheckbox = document . getElementById ( 'ncbiApiEnabledOptions' ) ;
28
+ if ( ncbiCheckbox ) ncbiCheckbox . checked = settings . ncbiApiEnabled ;
31
29
} ) ;
32
30
}
33
31
@@ -36,12 +34,21 @@ function saveOptions() {
36
34
const highlightPotential = highlightPotentialMdpiCheckboxOptions ? highlightPotentialMdpiCheckboxOptions . checked : false ;
37
35
const potentialColor = potentialMdpiColorInputOptions ? potentialMdpiColorInputOptions . value : '#FFFF99' ;
38
36
const loggingEnabled = loggingCheckboxOptions ? loggingCheckboxOptions . checked : false ;
37
+ const ncbiApiEnabled = document . getElementById ( 'ncbiApiEnabledOptions' ) ?. checked ?? true ;
38
+ // Confirm if user is disabling NCBI API lookups
39
+ if ( ! ncbiApiEnabled ) {
40
+ const proceed = confirm ( 'Disabling NCBI API lookups will reduce detection accuracy and may miss or mislabel MDPI citations. Continue?' ) ;
41
+ if ( ! proceed ) {
42
+ return ; // Abort save
43
+ }
44
+ }
39
45
40
46
chrome . storage . sync . set ( {
41
47
mode : selectedMode ,
42
48
highlightPotentialMdpiSites : highlightPotential ,
43
49
potentialMdpiHighlightColor : potentialColor ,
44
- loggingEnabled
50
+ loggingEnabled,
51
+ ncbiApiEnabled
45
52
} , ( ) => {
46
53
if ( chrome . runtime . lastError ) {
47
54
status . textContent = 'Error saving options.' ;
0 commit comments