@@ -167,6 +167,27 @@ function disable_SpamFilter(prefs_opt){
167167 }
168168}
169169
170+ function disable_Summarize ( prefs_opt ) {
171+ let summarize = document . getElementById ( 'summarize' ) ;
172+ let conntype_select = document . getElementById ( "connection_type" ) ;
173+ const tempPrefs = {
174+ connection_type : conntype_select . value ,
175+ ...prefs_opt
176+ } ;
177+ let summarize_disabled = ( getConnectionType ( tempPrefs , null , 'summarize' ) === "chatgpt_web" ) ;
178+ let summarize_checked_original = summarize . checked ;
179+ summarize . checked = summarize_disabled ? false : summarize . checked ;
180+ if ( ! summarize . checked ) {
181+ let summarize_info_btn = document . getElementById ( 'btnManageSummarizeInfo' ) ;
182+ summarize_info_btn . disabled = 'disabled' ;
183+ }
184+ let summarize_warn_API_needed = document . getElementById ( 'summarize_warn_API_needed' ) ;
185+ summarize_warn_API_needed . style . display = ( summarize_disabled ) ? 'inline-block' : 'none' ;
186+ if ( summarize_checked_original != summarize . checked ) {
187+ browser . storage . sync . set ( { summarize : summarize . checked } ) ;
188+ }
189+ }
190+
170191async function disable_GetCalendarEvent ( ) {
171192 let get_calendar_event = document . getElementById ( 'get_calendar_event' ) ;
172193 let get_task = document . getElementById ( 'get_task' ) ;
@@ -262,6 +283,24 @@ document.addEventListener('DOMContentLoaded', async () => {
262283 } ) ;
263284 spamfilter_info_btn . disabled = spamfilter_el . checked ? '' : 'disabled' ;
264285
286+ let summarize_el = document . getElementById ( 'summarize' ) ;
287+ let summarize_info_btn = document . getElementById ( 'btnManageSummarizeInfo' ) ;
288+ summarize_el . addEventListener ( 'click' , ( event ) => {
289+ async function _summarize_el_change ( ) {
290+ if ( event . target . checked ) {
291+ let granted = await messenger . permissions . request ( { permissions : [ "messagesRead" ] } ) ;
292+ if ( ! granted ) {
293+ event . target . checked = false ;
294+ summarize_info_btn . disabled = 'disabled' ;
295+ browser . storage . sync . set ( { summarize : false } ) ;
296+ }
297+ }
298+ }
299+ _summarize_el_change ( ) ;
300+ summarize_info_btn . disabled = event . target . checked ? '' : 'disabled' ;
301+ } ) ;
302+ summarize_info_btn . disabled = summarize_el . checked ? '' : 'disabled' ;
303+
265304 let get_calendar_event_el = document . getElementById ( 'get_calendar_event' ) ;
266305 let get_calendar_event_info_btn = document . getElementById ( 'btnManageCalendarEventInfo' ) ;
267306 get_calendar_event_el . addEventListener ( 'click' , ( event ) => {
@@ -321,12 +360,14 @@ document.addEventListener('DOMContentLoaded', async () => {
321360 conntype_select . addEventListener ( "change" , disable_MaxPromptLength ) ;
322361 conntype_select . addEventListener ( "change" , ( ) => disable_AddTags ( prefs_opt ) ) ;
323362 conntype_select . addEventListener ( "change" , ( ) => disable_SpamFilter ( prefs_opt ) ) ;
363+ conntype_select . addEventListener ( "change" , ( ) => disable_Summarize ( prefs_opt ) ) ;
324364 conntype_select . addEventListener ( "change" , disable_GetCalendarEvent ) ;
325365
326366 showConnectionOptions ( conntype_select ) ;
327367 disable_MaxPromptLength ( ) ;
328368 disable_AddTags ( prefs_opt ) ;
329369 disable_SpamFilter ( prefs_opt ) ;
370+ disable_Summarize ( prefs_opt ) ;
330371 disable_GetCalendarEvent ( ) ;
331372
332373 document . getElementById ( 'reset_max_prompt_length' ) . addEventListener ( 'click' , resetMaxPromptLength ) ;
0 commit comments