feat: Add product attribute inclusion settings and enhance context handling in AI prompts

This commit is contained in:
2026-01-16 19:19:00 +00:00
parent 7b9f26e966
commit 43ddbddd11
7 changed files with 248 additions and 8 deletions

View File

@@ -13,6 +13,7 @@
const resultField = document.getElementById('groq-ai-output');
const jsonCopyButton = modal.querySelector('.groq-ai-copy-json');
const contextToggles = modal.querySelectorAll('.groq-ai-context-toggle');
const attributeToggles = modal.querySelectorAll('.groq-ai-attribute-toggle');
const resultFields = {};
modal.querySelectorAll('.groq-ai-result-field').forEach((field) => {
const key = field.getAttribute('data-field');
@@ -60,6 +61,7 @@
promptField.value = GroqAIGenerator.defaultPrompt;
}
resetContextToggles();
resetAttributeToggles();
setTimeout(() => promptField.focus(), 50);
}
@@ -115,6 +117,7 @@
payload.append('prompt', prompt);
payload.append('post_id', GroqAIGenerator.postId || 0);
payload.append('context_fields', JSON.stringify(collectContextSelection()));
payload.append('attribute_includes', JSON.stringify(collectAttributeSelection()));
toggleLoading(true);
resultWrapper.hidden = true;
@@ -458,6 +461,20 @@
});
}
function resetAttributeToggles() {
const defaults = Array.isArray(GroqAIGenerator.attributeIncludesDefaults)
? GroqAIGenerator.attributeIncludesDefaults
: [];
attributeToggles.forEach((toggle) => {
const key = toggle.getAttribute('data-attribute');
if (!key) {
return;
}
toggle.checked = defaults.includes(key);
});
}
function collectContextSelection() {
const selected = [];
contextToggles.forEach((toggle) => {
@@ -467,4 +484,18 @@
});
return selected;
}
function collectAttributeSelection() {
const selected = [];
attributeToggles.forEach((toggle) => {
if (!toggle.checked) {
return;
}
const key = toggle.getAttribute('data-attribute');
if (key) {
selected.push(key);
}
});
return selected;
}
})(jQuery);