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