diff --git a/options/mzta-options-default.js b/options/mzta-options-default.js index e14b2808..6fd52d1d 100644 --- a/options/mzta-options-default.js +++ b/options/mzta-options-default.js @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -const special_prompts_with_integration = ['add_tags', 'spamfilter']; +const special_prompts_with_integration = ['add_tags', 'spamfilter', 'summarize']; export const integration_options_config = { chatgpt: { diff --git a/options/mzta-options.html b/options/mzta-options.html index 02b0f6ea..534f33b8 100644 --- a/options/mzta-options.html +++ b/options/mzta-options.html @@ -154,7 +154,7 @@ " diff --git a/options/mzta-options.js b/options/mzta-options.js index 3b2ac351..46a7439d 100644 --- a/options/mzta-options.js +++ b/options/mzta-options.js @@ -167,6 +167,27 @@ function disable_SpamFilter(prefs_opt){ } } +function disable_Summarize(prefs_opt){ + let summarize = document.getElementById('summarize'); + let conntype_select = document.getElementById("connection_type"); + const tempPrefs = { + connection_type: conntype_select.value, + ...prefs_opt + }; + let summarize_disabled = (getConnectionType(tempPrefs, null, 'summarize') === "chatgpt_web"); + let summarize_checked_original = summarize.checked; + summarize.checked = summarize_disabled ? false : summarize.checked; + if(!summarize.checked){ + let summarize_info_btn = document.getElementById('btnManageSummarizeInfo'); + summarize_info_btn.disabled = 'disabled'; + } + let summarize_warn_API_needed = document.getElementById('summarize_warn_API_needed'); + summarize_warn_API_needed.style.display = (summarize_disabled) ? 'inline-block' : 'none'; + if(summarize_checked_original != summarize.checked){ + browser.storage.sync.set({summarize: summarize.checked}); + } +} + async function disable_GetCalendarEvent(){ let get_calendar_event = document.getElementById('get_calendar_event'); let get_task = document.getElementById('get_task'); @@ -262,6 +283,24 @@ document.addEventListener('DOMContentLoaded', async () => { }); spamfilter_info_btn.disabled = spamfilter_el.checked ? '' : 'disabled'; + let summarize_el = document.getElementById('summarize'); + let summarize_info_btn = document.getElementById('btnManageSummarizeInfo'); + summarize_el.addEventListener('click', (event) => { + async function _summarize_el_change() { + if (event.target.checked) { + let granted = await messenger.permissions.request({ permissions: ["messagesRead"] }); + if (!granted) { + event.target.checked = false; + summarize_info_btn.disabled = 'disabled'; + browser.storage.sync.set({summarize: false}); + } + } + } + _summarize_el_change(); + summarize_info_btn.disabled = event.target.checked ? '' : 'disabled'; + }); + summarize_info_btn.disabled = summarize_el.checked ? '' : 'disabled'; + let get_calendar_event_el = document.getElementById('get_calendar_event'); let get_calendar_event_info_btn = document.getElementById('btnManageCalendarEventInfo'); get_calendar_event_el.addEventListener('click', (event) => { @@ -321,12 +360,14 @@ document.addEventListener('DOMContentLoaded', async () => { conntype_select.addEventListener("change", disable_MaxPromptLength); conntype_select.addEventListener("change", () => disable_AddTags(prefs_opt)); conntype_select.addEventListener("change", () => disable_SpamFilter(prefs_opt)); + conntype_select.addEventListener("change", () => disable_Summarize(prefs_opt)); conntype_select.addEventListener("change", disable_GetCalendarEvent); showConnectionOptions(conntype_select); disable_MaxPromptLength(); disable_AddTags(prefs_opt); disable_SpamFilter(prefs_opt); + disable_Summarize(prefs_opt); disable_GetCalendarEvent(); document.getElementById('reset_max_prompt_length').addEventListener('click', resetMaxPromptLength);