1
+
1
2
var enableToggleElement = document . getElementById ( 'enable' ) ;
2
3
var githubUsernameElement = document . getElementById ( 'githubUsername' ) ;
3
4
var projectNameElement = document . getElementById ( 'projectName' ) ;
@@ -7,6 +8,7 @@ var startingDateElement = document.getElementById('startingDate');
7
8
var endingDateElement = document . getElementById ( 'endingDate' ) ;
8
9
var showOpenLabelElement = document . getElementById ( 'showOpenLabel' ) ;
9
10
var userReasonElement = document . getElementById ( 'userReason' ) ;
11
+
10
12
function handleBodyOnLoad ( ) {
11
13
chrome . storage . local . get (
12
14
[
@@ -70,22 +72,49 @@ function handleBodyOnLoad() {
70
72
} ,
71
73
) ;
72
74
}
75
+
76
+ document . getElementById ( 'refreshCache' ) . addEventListener ( 'click' , async ( e ) => {
77
+ const button = e . currentTarget ;
78
+ button . classList . add ( 'loading' ) ;
79
+ button . disabled = true ;
80
+
81
+ try {
82
+ const tabs = await chrome . tabs . query ( { active : true , currentWindow : true } ) ;
83
+ await chrome . tabs . sendMessage ( tabs [ 0 ] . id , {
84
+ action : 'forceRefresh' ,
85
+ timestamp : Date . now ( )
86
+ } ) ;
87
+
88
+ // Reload the active tab to re-inject content
89
+ chrome . tabs . reload ( tabs [ 0 ] . id ) ;
90
+
91
+ M . toast ( { html : 'Data refreshed successfully!' , classes : 'green' } ) ;
92
+ } catch ( err ) {
93
+ console . error ( 'Refresh failed:' , err ) ;
94
+ M . toast ( { html : 'Failed to refresh data' , classes : 'red' } ) ;
95
+ } finally {
96
+ setTimeout ( ( ) => {
97
+ button . classList . remove ( 'loading' ) ;
98
+ button . disabled = false ;
99
+ } , 500 ) ;
100
+ }
101
+ } ) ;
102
+
73
103
function handleEnableChange ( ) {
74
- var value = enableToggleElement . checked ;
104
+ let value = enableToggleElement . checked ;
75
105
chrome . storage . local . set ( { enableToggle : value } ) ;
76
106
}
77
107
function handleStartingDateChange ( ) {
78
- var value = startingDateElement . value ;
108
+ let value = startingDateElement . value ;
79
109
chrome . storage . local . set ( { startingDate : value } ) ;
80
110
}
81
111
function handleEndingDateChange ( ) {
82
- var value = endingDateElement . value ;
112
+ let value = endingDateElement . value ;
83
113
chrome . storage . local . set ( { endingDate : value } ) ;
84
114
}
85
115
function handleLastWeekContributionChange ( ) {
86
- var value = lastWeekContributionElement . checked ;
87
- var labelElement = document . querySelector ( "label[for='lastWeekContribution']" ) ;
88
-
116
+ let value = lastWeekContributionElement . checked ;
117
+ let labelElement = document . querySelector ( "label[for='lastWeekContribution']" ) ;
89
118
if ( value ) {
90
119
startingDateElement . disabled = true ;
91
120
endingDateElement . disabled = true ;
@@ -128,12 +157,14 @@ function handleYesterdayContributionChange() {
128
157
}
129
158
130
159
function getLastWeek ( ) {
160
+
131
161
var today = new Date ( ) ;
132
162
var lastWeek = new Date ( today . getFullYear ( ) , today . getMonth ( ) , today . getDate ( ) - 1 ) ;
133
163
var lastWeekMonth = lastWeek . getMonth ( ) + 1 ;
134
164
var lastWeekDay = lastWeek . getDate ( ) ;
135
165
var lastWeekYear = lastWeek . getFullYear ( ) ;
136
166
var lastWeekDisplayPadded =
167
+
137
168
( '0000' + lastWeekYear . toString ( ) ) . slice ( - 4 ) +
138
169
'-' +
139
170
( '00' + lastWeekMonth . toString ( ) ) . slice ( - 2 ) +
@@ -156,12 +187,12 @@ function getYesterday() {
156
187
return yesterdayPadded ;
157
188
}
158
189
function getToday ( ) {
159
- var today = new Date ( ) ;
160
- var Week = new Date ( today . getFullYear ( ) , today . getMonth ( ) , today . getDate ( ) ) ;
161
- var WeekMonth = Week . getMonth ( ) + 1 ;
162
- var WeekDay = Week . getDate ( ) ;
163
- var WeekYear = Week . getFullYear ( ) ;
164
- var WeekDisplayPadded =
190
+ let today = new Date ( ) ;
191
+ let Week = new Date ( today . getFullYear ( ) , today . getMonth ( ) , today . getDate ( ) ) ;
192
+ let WeekMonth = Week . getMonth ( ) + 1 ;
193
+ let WeekDay = Week . getDate ( ) ;
194
+ let WeekYear = Week . getFullYear ( ) ;
195
+ let WeekDisplayPadded =
165
196
( '0000' + WeekYear . toString ( ) ) . slice ( - 4 ) +
166
197
'-' +
167
198
( '00' + WeekMonth . toString ( ) ) . slice ( - 2 ) +
@@ -171,16 +202,16 @@ function getToday() {
171
202
}
172
203
173
204
function handleGithubUsernameChange ( ) {
174
- var value = githubUsernameElement . value ;
205
+ let value = githubUsernameElement . value ;
175
206
chrome . storage . local . set ( { githubUsername : value } ) ;
176
207
}
177
208
function handleProjectNameChange ( ) {
178
- var value = projectNameElement . value ;
209
+ let value = projectNameElement . value ;
179
210
chrome . storage . local . set ( { projectName : value } ) ;
180
211
}
181
212
function handleOpenLabelChange ( ) {
182
- var value = showOpenLabelElement . checked ;
183
- var labelElement = document . querySelector ( "label[for='showOpenLabel']" ) ;
213
+ let value = showOpenLabelElement . checked ;
214
+ let labelElement = document . querySelector ( "label[for='showOpenLabel']" ) ;
184
215
185
216
if ( value ) {
186
217
labelElement . classList . add ( "selectedLabel" ) ;
@@ -194,7 +225,7 @@ function handleOpenLabelChange() {
194
225
}
195
226
196
227
function handleUserReasonChange ( ) {
197
- var value = userReasonElement . value ;
228
+ let value = userReasonElement . value ;
198
229
chrome . storage . local . set ( { userReason : value } ) ;
199
230
}
200
231
enableToggleElement . addEventListener ( 'change' , handleEnableChange ) ;
0 commit comments