tags options moved to addtags page. see #183
This commit is contained in:
parent
553032c057
commit
e8d39d22f5
5 changed files with 130 additions and 26 deletions
|
|
@ -276,24 +276,6 @@
|
||||||
</label>
|
</label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="add_tags_tr">
|
|
||||||
<td><span>__MSG_prefs_OptionText_add_tags_maxnum__</span></td>
|
|
||||||
<td>
|
|
||||||
<label>
|
|
||||||
<input type="number" id="add_tags_maxnum" name="add_tags_maxnum" class="option-input" />
|
|
||||||
<br>__MSG_prefs_OptionText_add_tags_maxnum_Info__
|
|
||||||
</label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="add_tags_tr">
|
|
||||||
<td><span>__MSG_prefs_OptionText_add_tags_hide_exclusions__</span></td>
|
|
||||||
<td>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" id="add_tags_hide_exclusions" name="add_tags_hide_exclusions" class="option-input" />
|
|
||||||
__MSG_prefs_OptionText_add_tags_hide_exclusions_Info__
|
|
||||||
</label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:20em"><label>
|
<td style="width:20em"><label>
|
||||||
<span>__MSG_Debug__</span>
|
<span>__MSG_Debug__</span>
|
||||||
|
|
|
||||||
|
|
@ -215,15 +215,8 @@ function disable_MaxPromptLength(){
|
||||||
|
|
||||||
function disable_AddTags(){
|
function disable_AddTags(){
|
||||||
let add_tags = document.getElementById('add_tags');
|
let add_tags = document.getElementById('add_tags');
|
||||||
let add_tags_maxnum = document.getElementById('add_tags_maxnum');
|
|
||||||
let conntype_select = document.getElementById("connection_type");
|
|
||||||
add_tags.disabled = (conntype_select.value === "chatgpt_web");
|
|
||||||
add_tags_maxnum.disabled = (conntype_select.value === "chatgpt_web");
|
|
||||||
|
|
||||||
// Seleziona tutti gli elementi con la classe 'add_tags_tr'
|
|
||||||
let add_tags_tr_elements = document.querySelectorAll('.add_tags_tr');
|
let add_tags_tr_elements = document.querySelectorAll('.add_tags_tr');
|
||||||
|
|
||||||
// Applica lo stile a tutti gli elementi con la classe
|
|
||||||
add_tags_tr_elements.forEach(add_tags_tr => {
|
add_tags_tr_elements.forEach(add_tags_tr => {
|
||||||
add_tags_tr.style.display = (add_tags.disabled) ? 'none' : 'table-row';
|
add_tags_tr.style.display = (add_tags.disabled) ? 'none' : 'table-row';
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,34 @@
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table#miczPrefs {
|
||||||
|
padding: 10px;
|
||||||
|
border-spacing: 0px;
|
||||||
|
width: 90%;
|
||||||
|
margin: 0px auto 40px auto;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.addtags_table_title{
|
||||||
|
width: 90%;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
table#miczPrefs td{
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
border-bottom: 1px solid #ccc;
|
||||||
|
vertical-align: top;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table#miczPrefs tr:first-child td {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table#miczPrefs tr:last-child td {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
.autocomplete-container {
|
.autocomplete-container {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,27 @@
|
||||||
<h1 class="page_title">__MSG_AddTags_PageTitle__</h1>
|
<h1 class="page_title">__MSG_AddTags_PageTitle__</h1>
|
||||||
<p>__MSG_AddTags_info_default__</p>
|
<p>__MSG_AddTags_info_default__</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="addtags_table_title">__MSG_AddTags_prompt_text_title__</div>
|
||||||
|
<table id="miczPrefs">
|
||||||
|
<tr class="add_tags_tr">
|
||||||
|
<td><span>__MSG_prefs_OptionText_add_tags_maxnum__</span></td>
|
||||||
|
<td>
|
||||||
|
<label>
|
||||||
|
<input type="number" id="add_tags_maxnum" name="add_tags_maxnum" class="option-input" />
|
||||||
|
<br>__MSG_prefs_OptionText_add_tags_maxnum_Info__
|
||||||
|
</label>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="add_tags_tr">
|
||||||
|
<td><span>__MSG_prefs_OptionText_add_tags_hide_exclusions__</span></td>
|
||||||
|
<td>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="add_tags_hide_exclusions" name="add_tags_hide_exclusions" class="option-input" />
|
||||||
|
__MSG_prefs_OptionText_add_tags_hide_exclusions_Info__
|
||||||
|
</label>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
<div id="addtags_prompt_container">
|
<div id="addtags_prompt_container">
|
||||||
__MSG_AddTags_prompt_text_title__<span id="addtags_prompt_unsaved" class="unsaved hidden"> __MSG_customPrompts_unsaved_changes__</span>
|
__MSG_AddTags_prompt_text_title__<span id="addtags_prompt_unsaved" class="unsaved hidden"> __MSG_customPrompts_unsaved_changes__</span>
|
||||||
<br><span class="infoline">__MSG_prefs_OptionText_btnManagePrompts_infoline__ <a href="https://micz.it/thunderbird-addon-thunderai/data-placeholders/">__MSG_customPrompts_managePrompts_help__</a></span>
|
<br><span class="infoline">__MSG_prefs_OptionText_btnManagePrompts_infoline__ <a href="https://micz.it/thunderbird-addon-thunderai/data-placeholders/">__MSG_customPrompts_managePrompts_help__</a></span>
|
||||||
|
|
|
||||||
|
|
@ -16,16 +16,25 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { prefs_default } from '../../options/mzta-options-default.js';
|
||||||
|
import { taLogger } from '../../js/mzta-logger.js';
|
||||||
import { getSpecialPrompts, setSpecialPrompts } from "../../js/mzta-prompts.js";
|
import { getSpecialPrompts, setSpecialPrompts } from "../../js/mzta-prompts.js";
|
||||||
import { getPlaceholders } from "../../js/mzta-placeholders.js";
|
import { getPlaceholders } from "../../js/mzta-placeholders.js";
|
||||||
import { textareaAutocomplete } from "../../js/mzta-placeholders-autocomplete.js";
|
import { textareaAutocomplete } from "../../js/mzta-placeholders-autocomplete.js";
|
||||||
import { addTags_getExclusionList, addTags_setExclusionList } from "../../js/mzta-addatags-exclusion-list.js";
|
import { addTags_getExclusionList, addTags_setExclusionList } from "../../js/mzta-addatags-exclusion-list.js";
|
||||||
|
|
||||||
|
|
||||||
let autocompleteSuggestions = [];
|
let autocompleteSuggestions = [];
|
||||||
|
let taLog = new taLogger("mzta-addtags-page",true);
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
|
|
||||||
i18n.updateDocument();
|
i18n.updateDocument();
|
||||||
|
await restoreOptions();
|
||||||
|
|
||||||
|
document.querySelectorAll(".option-input").forEach(element => {
|
||||||
|
element.addEventListener("change", saveOptions);
|
||||||
|
});
|
||||||
|
|
||||||
let addtags_textarea = document.getElementById('addtags_prompt_text');
|
let addtags_textarea = document.getElementById('addtags_prompt_text');
|
||||||
let addtags_save_btn = document.getElementById('btn_save_prompt');
|
let addtags_save_btn = document.getElementById('btn_save_prompt');
|
||||||
|
|
@ -101,4 +110,75 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
document.getElementById('excl_list_unsaved').classList.add('hidden');
|
document.getElementById('excl_list_unsaved').classList.add('hidden');
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Methods to manage options, derived from: /options/mzta-options.js
|
||||||
|
|
||||||
|
function saveOptions(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
let options = {};
|
||||||
|
let element = e.target;
|
||||||
|
|
||||||
|
switch (element.type) {
|
||||||
|
case 'checkbox':
|
||||||
|
options[element.id] = element.checked;
|
||||||
|
break;
|
||||||
|
case 'number':
|
||||||
|
options[element.id] = element.valueAsNumber;
|
||||||
|
break;
|
||||||
|
case 'text':
|
||||||
|
case 'password':
|
||||||
|
options[element.id] = element.value.trim();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (element.tagName === 'SELECT') {
|
||||||
|
options[element.id] = element.value;
|
||||||
|
}else{
|
||||||
|
console.error("[ThunderAI] Unhandled input type:", element.type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
browser.storage.sync.set(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function restoreOptions() {
|
||||||
|
function setCurrentChoice(result) {
|
||||||
|
document.querySelectorAll(".option-input").forEach(element => {
|
||||||
|
taLog.log("Options restoring " + element.id + " = " + (element.id=="chatgpt_api_key" || element.id=="openai_comp_api_key" ? "****************" : result[element.id]));
|
||||||
|
switch (element.type) {
|
||||||
|
case 'checkbox':
|
||||||
|
element.checked = result[element.id] || false;
|
||||||
|
break;
|
||||||
|
case 'number':
|
||||||
|
let default_number_value = 0;
|
||||||
|
if(element.id == 'chatgpt_win_height') default_number_value = prefs_default.chatgpt_win_height;
|
||||||
|
if(element.id == 'chatgpt_win_width') default_number_value = prefs_default.chatgpt_win_width;
|
||||||
|
element.value = result[element.id] ?? default_number_value;
|
||||||
|
break;
|
||||||
|
case 'text':
|
||||||
|
case 'password':
|
||||||
|
let default_text_value = '';
|
||||||
|
if(element.id == 'default_chatgpt_lang') default_text_value = prefs_default.default_chatgpt_lang;
|
||||||
|
element.value = result[element.id] || default_text_value;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (element.tagName === 'SELECT') {
|
||||||
|
let default_select_value = '';
|
||||||
|
if(element.id == 'reply_type') default_select_value = 'reply_all';
|
||||||
|
if(element.id == 'connection_type') default_select_value = 'chatgpt_web';
|
||||||
|
element.value = result[element.id] || default_select_value;
|
||||||
|
if (element.value === '') {
|
||||||
|
element.selectedIndex = -1;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
console.error("[ThunderAI] Unhandled input type:", element.type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
let getting = await browser.storage.sync.get(prefs_default);
|
||||||
|
setCurrentChoice(getting);
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue