mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Move built-in extensions to fixed wand containers
This commit is contained in:
@ -101,3 +101,7 @@ input.extension_missing[type="checkbox"] {
|
|||||||
.extension_container {
|
.extension_container {
|
||||||
display: contents;
|
display: contents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#extensionsMenu>div.extension_container:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
@ -347,13 +347,11 @@ function autoConnectInputHandler() {
|
|||||||
saveSettingsDebounced();
|
saveSettingsDebounced();
|
||||||
}
|
}
|
||||||
|
|
||||||
function addExtensionsButtonAndMenu() {
|
async function addExtensionsButtonAndMenu() {
|
||||||
const buttonHTML =
|
const buttonHTML = await renderTemplateAsync('wandButton');
|
||||||
'<div id="extensionsMenuButton" style="display: none;" class="fa-solid fa-magic-wand-sparkles interactable" title="Extras Extensions" /></div>';
|
const extensionsMenuHTML = await renderTemplateAsync('wandMenu');
|
||||||
const extensionsMenuHTML = '<div id="extensionsMenu" class="options-content" style="display: none;"></div>';
|
|
||||||
|
|
||||||
$(document.body).append(extensionsMenuHTML);
|
$(document.body).append(extensionsMenuHTML);
|
||||||
|
|
||||||
$('#leftSendForm').append(buttonHTML);
|
$('#leftSendForm').append(buttonHTML);
|
||||||
|
|
||||||
const button = $('#extensionsMenuButton');
|
const button = $('#extensionsMenuButton');
|
||||||
@ -961,8 +959,8 @@ export async function writeExtensionField(characterId, key, value) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jQuery(function () {
|
jQuery(async function () {
|
||||||
addExtensionsButtonAndMenu();
|
await addExtensionsButtonAndMenu();
|
||||||
$('#extensionsMenuButton').css('display', 'flex');
|
$('#extensionsMenuButton').css('display', 'flex');
|
||||||
|
|
||||||
$('#extensions_connect').on('click', connectClickHandler);
|
$('#extensions_connect').on('click', connectClickHandler);
|
||||||
|
4
public/scripts/extensions/attachments/attach-button.html
Normal file
4
public/scripts/extensions/attachments/attach-button.html
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<div id="attachFile" class="list-group-item flex-container flexGap5" title="Attach a file or image to a current chat.">
|
||||||
|
<div class="fa-fw fa-solid fa-paperclip extensionsMenuExtensionButton"></div>
|
||||||
|
<span data-i18n="Attach a File">Attach a File</span>
|
||||||
|
</div>
|
@ -197,8 +197,10 @@ async function enableDataBankAttachment(args, value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
jQuery(async () => {
|
jQuery(async () => {
|
||||||
const buttons = await renderExtensionTemplateAsync('attachments', 'buttons', {});
|
const manageButton = await renderExtensionTemplateAsync('attachments', 'manage-button', {});
|
||||||
$('#extensionsMenu').prepend(buttons);
|
const attachButton = await renderExtensionTemplateAsync('attachments', 'attach-button', {});
|
||||||
|
$('#data_bank_wand_container').append(manageButton);
|
||||||
|
$('#attach_file_wand_container').append(attachButton);
|
||||||
|
|
||||||
/** A collection of local enum providers for this context of data bank */
|
/** A collection of local enum providers for this context of data bank */
|
||||||
const localEnumProviders = {
|
const localEnumProviders = {
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
<div id="attachFile" class="list-group-item flex-container flexGap5" title="Attach a file or image to a current chat.">
|
|
||||||
<div class="fa-fw fa-solid fa-paperclip extensionsMenuExtensionButton"></div>
|
|
||||||
<span data-i18n="Attach a File">Attach a File</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="manageAttachments" class="list-group-item flex-container flexGap5" title="View global, character, or data files.">
|
<div id="manageAttachments" class="list-group-item flex-container flexGap5" title="View global, character, or data files.">
|
||||||
<div class="fa-fw fa-solid fa-book-open-reader extensionsMenuExtensionButton"></div>
|
<div class="fa-fw fa-solid fa-book-open-reader extensionsMenuExtensionButton"></div>
|
@ -344,7 +344,7 @@ jQuery(async function () {
|
|||||||
Generate Caption
|
Generate Caption
|
||||||
</div>`);
|
</div>`);
|
||||||
|
|
||||||
$('#extensionsMenu').prepend(sendButton);
|
$('#caption_wand_container').append(sendButton);
|
||||||
$(sendButton).on('click', () => {
|
$(sendButton).on('click', () => {
|
||||||
const hasCaptionModule =
|
const hasCaptionModule =
|
||||||
(modules.includes('caption') && extension_settings.caption.source === 'extras') ||
|
(modules.includes('caption') && extension_settings.caption.source === 'extras') ||
|
||||||
|
@ -3158,7 +3158,7 @@ async function addSDGenButtons() {
|
|||||||
const buttonHtml = await renderExtensionTemplateAsync('stable-diffusion', 'button');
|
const buttonHtml = await renderExtensionTemplateAsync('stable-diffusion', 'button');
|
||||||
const dropdownHtml = await renderExtensionTemplateAsync('stable-diffusion', 'dropdown');
|
const dropdownHtml = await renderExtensionTemplateAsync('stable-diffusion', 'dropdown');
|
||||||
|
|
||||||
$('#extensionsMenu').prepend(buttonHtml);
|
$('#sd_wand_container').append(buttonHtml);
|
||||||
$(document.body).append(dropdownHtml);
|
$(document.body).append(dropdownHtml);
|
||||||
|
|
||||||
const messageButton = $('.sd_message_gen');
|
const messageButton = $('.sd_message_gen');
|
||||||
|
@ -132,7 +132,7 @@ jQuery(() => {
|
|||||||
<div class="fa-solid fa-1 extensionsMenuExtensionButton" /></div>
|
<div class="fa-solid fa-1 extensionsMenuExtensionButton" /></div>
|
||||||
Token Counter
|
Token Counter
|
||||||
</div>`;
|
</div>`;
|
||||||
$('#extensionsMenu').prepend(buttonHtml);
|
$('#token_counter_wand_container').append(buttonHtml);
|
||||||
$('#token_counter').on('click', doTokenCounter);
|
$('#token_counter').on('click', doTokenCounter);
|
||||||
SlashCommandParser.addCommandObject(SlashCommand.fromProps({ name: 'count',
|
SlashCommandParser.addCommandObject(SlashCommand.fromProps({ name: 'count',
|
||||||
callback: async () => String(await doCount()),
|
callback: async () => String(await doCount()),
|
||||||
|
@ -476,6 +476,7 @@ async function onTranslateInputMessageClick() {
|
|||||||
const toast = toastr.info('Input Message is translating', 'Please wait...');
|
const toast = toastr.info('Input Message is translating', 'Please wait...');
|
||||||
const translatedText = await translate(textarea.value, extension_settings.translate.internal_language);
|
const translatedText = await translate(textarea.value, extension_settings.translate.internal_language);
|
||||||
textarea.value = translatedText;
|
textarea.value = translatedText;
|
||||||
|
textarea.dispatchEvent(new Event('input', { bubbles: true }));
|
||||||
toastr.clear(toast);
|
toastr.clear(toast);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -569,9 +570,9 @@ window['translate'] = translate;
|
|||||||
|
|
||||||
jQuery(async () => {
|
jQuery(async () => {
|
||||||
const html = await renderExtensionTemplateAsync('translate', 'index');
|
const html = await renderExtensionTemplateAsync('translate', 'index');
|
||||||
|
|
||||||
const buttonHtml = await renderExtensionTemplateAsync('translate', 'buttons');
|
const buttonHtml = await renderExtensionTemplateAsync('translate', 'buttons');
|
||||||
$('#extensionsMenu').append(buttonHtml);
|
|
||||||
|
$('#translate_wand_container').append(buttonHtml);
|
||||||
$('#translation_container').append(html);
|
$('#translation_container').append(html);
|
||||||
$('#translate_chat').on('click', onTranslateChatClick);
|
$('#translate_chat').on('click', onTranslateChatClick);
|
||||||
$('#translate_input_message').on('click', onTranslateInputMessageClick);
|
$('#translate_input_message').on('click', onTranslateInputMessageClick);
|
||||||
|
@ -345,7 +345,7 @@ function onAudioControlClicked() {
|
|||||||
|
|
||||||
function addAudioControl() {
|
function addAudioControl() {
|
||||||
|
|
||||||
$('#extensionsMenu').prepend(`
|
$('#tts_wand_container').append(`
|
||||||
<div id="ttsExtensionMenuItem" class="list-group-item flex-container flexGap5">
|
<div id="ttsExtensionMenuItem" class="list-group-item flex-container flexGap5">
|
||||||
<div id="tts_media_control" class="extensionsMenuExtensionButton "/></div>
|
<div id="tts_media_control" class="extensionsMenuExtensionButton "/></div>
|
||||||
TTS Playback
|
TTS Playback
|
||||||
|
1
public/scripts/templates/wandButton.html
Normal file
1
public/scripts/templates/wandButton.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<div id="extensionsMenuButton" style="display: none;" class="fa-solid fa-magic-wand-sparkles interactable" title="Extensions" /></div>
|
16
public/scripts/templates/wandMenu.html
Normal file
16
public/scripts/templates/wandMenu.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<div id="extensionsMenu" class="options-content" style="display: none;">
|
||||||
|
<div id="caption_wand_container" class="extension_container"></div>
|
||||||
|
<div id="data_bank_wand_container" class="extension_container"></div>
|
||||||
|
<div id="attach_file_wand_container" class="extension_container"></div>
|
||||||
|
<div id="sd_wand_container" class="extension_container"></div>
|
||||||
|
<div id="tts_wand_container" class="extension_container"></div>
|
||||||
|
<div id="emulatorjs_wand_container" class="extension_container"></div>
|
||||||
|
<div id="notebook_wand_container" class="extension_container"></div>
|
||||||
|
<div id="chess_wand_container" class="extension_container"></div>
|
||||||
|
<div id="screen_share_wand_container" class="extension_container"></div>
|
||||||
|
<div id="translate_wand_container" class="extension_container"></div>
|
||||||
|
<div id="dice_wand_container" class="extension_container"></div>
|
||||||
|
<div id="objective_wand_container" class="extension_container"></div>
|
||||||
|
<div id="token_counter_wand_container" class="extension_container"></div>
|
||||||
|
<div id="prompt_inspector_wand_container" class="extension_container"></div>
|
||||||
|
</div>
|
@ -885,7 +885,8 @@ body .panelControlBar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.options-content a,
|
.options-content a,
|
||||||
#extensionsMenu>div,
|
#extensionsMenu>.extension_container>div,
|
||||||
|
#extensionsMenu>div:not(.extension_container),
|
||||||
.list-group>div,
|
.list-group>div,
|
||||||
.list-group .list-group-item,
|
.list-group .list-group-item,
|
||||||
#sd_dropdown .list-group span {
|
#sd_dropdown .list-group span {
|
||||||
@ -899,13 +900,15 @@ body .panelControlBar {
|
|||||||
align-items: baseline;
|
align-items: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
#extensionsMenu>div,
|
#extensionsMenu>.extension_container>div,
|
||||||
|
#extensionsMenu>div:not(.extension_container),
|
||||||
.options-content a,
|
.options-content a,
|
||||||
.list-group-item {
|
.list-group-item {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
#extensionsMenu>div:hover,
|
#extensionsMenu>.extension_container>div:hover,
|
||||||
|
#extensionsMenu>div:not(.extension_container):hover,
|
||||||
.options-content a:hover,
|
.options-content a:hover,
|
||||||
.list-group-item:hover {
|
.list-group-item:hover {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
Reference in New Issue
Block a user