Skip to content

Commit 51c8141

Browse files
committed
handle disabling summarize options button
1 parent d601121 commit 51c8141

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

options/mzta-options-default.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1717
*/
1818

19-
const special_prompts_with_integration = ['add_tags', 'spamfilter'];
19+
const special_prompts_with_integration = ['add_tags', 'spamfilter', 'summarize'];
2020

2121
export const integration_options_config = {
2222
chatgpt: {

options/mzta-options.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@
154154
<label>
155155
<input type="checkbox" id="summarize" name="summarize" class="option-input" />
156156
__MSG_prefs_OptionText_summarize_Info__
157-
<br><span class="warn_API_needed" id="add_summarize_warn_API_needed">__MSG_warn_API_needed__</span>
157+
<br><span class="warn_API_needed" id="summarize_warn_API_needed">__MSG_warn_API_needed__</span>
158158
</label>
159159
</td>
160160
</tr>"

options/mzta-options.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
170191
async 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

Comments
 (0)