Move event types + new events (#4257) * Move app events to separate module * Add event emission for preset changes and deletions * Remove unnecessary blank line at the beginning of events.js * Add await to selectPreset call in initTextGenSettings * Emit events for preset deletion and change in initPresetManager * Move event emit out of PRESET_CHANGED

19a8a8625c62ce1624a6bf9a00cd65dc07841bd1

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
8 files changed, +123 -103Showing whitespace changes
public/script.js+6 -95
@@ -204,7 +204,6 @@ import {
204 applyCharacterTagsToMessageDivs,204 applyCharacterTagsToMessageDivs,
205} from './scripts/tags.js';205} from './scripts/tags.js';
206import { initSecrets, readSecretState } from './scripts/secrets.js';206import { initSecrets, readSecretState } from './scripts/secrets.js';
207import { EventEmitter } from './lib/eventemitter.js';
208import { markdownExclusionExt } from './scripts/showdown-exclusion.js';207import { markdownExclusionExt } from './scripts/showdown-exclusion.js';
209import { markdownUnderscoreExt } from './scripts/showdown-underscore.js';208import { markdownUnderscoreExt } from './scripts/showdown-underscore.js';
210import { NOTE_MODULE_NAME, initAuthorsNote, metadata_keys, setFloatingPrompt, shouldWIAddPrompt } from './scripts/authors-note.js';209import { NOTE_MODULE_NAME, initAuthorsNote, metadata_keys, setFloatingPrompt, shouldWIAddPrompt } from './scripts/authors-note.js';
@@ -236,7 +235,7 @@ import {
236} from './scripts/personas.js';235} from './scripts/personas.js';
237import { getBackgrounds, initBackgrounds, loadBackgroundSettings, background_settings } from './scripts/backgrounds.js';236import { getBackgrounds, initBackgrounds, loadBackgroundSettings, background_settings } from './scripts/backgrounds.js';
238import { hideLoader, showLoader } from './scripts/loader.js';237import { hideLoader, showLoader } from './scripts/loader.js';
239import { BulkEditOverlay, CharacterContextMenu } from './scripts/BulkEditOverlay.js';238import { BulkEditOverlay } from './scripts/BulkEditOverlay.js';
240import { initTextGenModels } from './scripts/textgen-models.js';239import { initTextGenModels } from './scripts/textgen-models.js';
241import { appendFileContent, hasPendingFileAttachment, populateFileAttachment, decodeStyleTags, encodeStyleTags, isExternalMediaAllowed, preserveNeutralChat, restoreNeutralChat, formatCreatorNotes, initChatUtilities, addDOMPurifyHooks } from './scripts/chats.js';240import { appendFileContent, hasPendingFileAttachment, populateFileAttachment, decodeStyleTags, encodeStyleTags, isExternalMediaAllowed, preserveNeutralChat, restoreNeutralChat, formatCreatorNotes, initChatUtilities, addDOMPurifyHooks } from './scripts/chats.js';
242import { getPresetManager, initPresetManager } from './scripts/preset-manager.js';241import { getPresetManager, initPresetManager } from './scripts/preset-manager.js';
@@ -266,6 +265,7 @@ import { initWelcomeScreen, openPermanentAssistantChat, openPermanentAssistantCa
266import { initDataMaid } from './scripts/data-maid.js';265import { initDataMaid } from './scripts/data-maid.js';
267import { clearItemizedPrompts, deleteItemizedPrompts, findItemizedPromptSet, initItemizedPrompts, itemizedParams, itemizedPrompts, loadItemizedPrompts, promptItemize, replaceItemizedPromptText, saveItemizedPrompts } from './scripts/itemized-prompts.js';266import { clearItemizedPrompts, deleteItemizedPrompts, findItemizedPromptSet, initItemizedPrompts, itemizedParams, itemizedPrompts, loadItemizedPrompts, promptItemize, replaceItemizedPromptText, saveItemizedPrompts } from './scripts/itemized-prompts.js';
268import { getSystemMessageByType, initSystemMessages, SAFETY_CHAT, sendSystemMessage, system_message_types, system_messages } from './scripts/system-messages.js';267import { getSystemMessageByType, initSystemMessages, SAFETY_CHAT, sendSystemMessage, system_message_types, system_messages } from './scripts/system-messages.js';
268import { event_types, eventSource } from './scripts/events.js';
269269
270// API OBJECT FOR EXTERNAL WIRING270// API OBJECT FOR EXTERNAL WIRING
271globalThis.SillyTavern = {271globalThis.SillyTavern = {
@@ -301,6 +301,8 @@ export {
301 system_message_types,301 system_message_types,
302 sendSystemMessage,302 sendSystemMessage,
303 getSystemMessageByType,303 getSystemMessageByType,
304 event_types,
305 eventSource,
304};306};
305307
306/**308/**
@@ -338,99 +340,7 @@ toastr.options = {
338 },340 },
339};341};
340342
341// Event source init
342//MARK: event_types
343export const event_types = {
344 APP_READY: 'app_ready',
345 EXTRAS_CONNECTED: 'extras_connected',
346 MESSAGE_SWIPED: 'message_swiped',
347 MESSAGE_SENT: 'message_sent',
348 MESSAGE_RECEIVED: 'message_received',
349 MESSAGE_EDITED: 'message_edited',
350 MESSAGE_DELETED: 'message_deleted',
351 MESSAGE_UPDATED: 'message_updated',
352 MESSAGE_FILE_EMBEDDED: 'message_file_embedded',
353 MESSAGE_REASONING_EDITED: 'message_reasoning_edited',
354 MESSAGE_REASONING_DELETED: 'message_reasoning_deleted',
355 MORE_MESSAGES_LOADED: 'more_messages_loaded',
356 IMPERSONATE_READY: 'impersonate_ready',
357 CHAT_CHANGED: 'chat_id_changed',
358 GENERATION_AFTER_COMMANDS: 'GENERATION_AFTER_COMMANDS',
359 GENERATION_STARTED: 'generation_started',
360 GENERATION_STOPPED: 'generation_stopped',
361 GENERATION_ENDED: 'generation_ended',
362 SD_PROMPT_PROCESSING: 'sd_prompt_processing',
363 EXTENSIONS_FIRST_LOAD: 'extensions_first_load',
364 EXTENSION_SETTINGS_LOADED: 'extension_settings_loaded',
365 SETTINGS_LOADED: 'settings_loaded',
366 SETTINGS_UPDATED: 'settings_updated',
367 GROUP_UPDATED: 'group_updated',
368 MOVABLE_PANELS_RESET: 'movable_panels_reset',
369 SETTINGS_LOADED_BEFORE: 'settings_loaded_before',
370 SETTINGS_LOADED_AFTER: 'settings_loaded_after',
371 CHATCOMPLETION_SOURCE_CHANGED: 'chatcompletion_source_changed',
372 CHATCOMPLETION_MODEL_CHANGED: 'chatcompletion_model_changed',
373 OAI_PRESET_CHANGED_BEFORE: 'oai_preset_changed_before',
374 OAI_PRESET_CHANGED_AFTER: 'oai_preset_changed_after',
375 OAI_PRESET_EXPORT_READY: 'oai_preset_export_ready',
376 OAI_PRESET_IMPORT_READY: 'oai_preset_import_ready',
377 WORLDINFO_SETTINGS_UPDATED: 'worldinfo_settings_updated',
378 WORLDINFO_UPDATED: 'worldinfo_updated',
379 CHARACTER_EDITED: 'character_edited',
380 CHARACTER_PAGE_LOADED: 'character_page_loaded',
381 CHARACTER_GROUP_OVERLAY_STATE_CHANGE_BEFORE: 'character_group_overlay_state_change_before',
382 CHARACTER_GROUP_OVERLAY_STATE_CHANGE_AFTER: 'character_group_overlay_state_change_after',
383 USER_MESSAGE_RENDERED: 'user_message_rendered',
384 CHARACTER_MESSAGE_RENDERED: 'character_message_rendered',
385 FORCE_SET_BACKGROUND: 'force_set_background',
386 CHAT_DELETED: 'chat_deleted',
387 CHAT_CREATED: 'chat_created',
388 GROUP_CHAT_DELETED: 'group_chat_deleted',
389 GROUP_CHAT_CREATED: 'group_chat_created',
390 GENERATE_BEFORE_COMBINE_PROMPTS: 'generate_before_combine_prompts',
391 GENERATE_AFTER_COMBINE_PROMPTS: 'generate_after_combine_prompts',
392 GENERATE_AFTER_DATA: 'generate_after_data',
393 GROUP_MEMBER_DRAFTED: 'group_member_drafted',
394 GROUP_WRAPPER_STARTED: 'group_wrapper_started',
395 GROUP_WRAPPER_FINISHED: 'group_wrapper_finished',
396 WORLD_INFO_ACTIVATED: 'world_info_activated',
397 TEXT_COMPLETION_SETTINGS_READY: 'text_completion_settings_ready',
398 CHAT_COMPLETION_SETTINGS_READY: 'chat_completion_settings_ready',
399 CHAT_COMPLETION_PROMPT_READY: 'chat_completion_prompt_ready',
400 CHARACTER_FIRST_MESSAGE_SELECTED: 'character_first_message_selected',
401 // TODO: Naming convention is inconsistent with other events
402 CHARACTER_DELETED: 'characterDeleted',
403 CHARACTER_DUPLICATED: 'character_duplicated',
404 CHARACTER_RENAMED: 'character_renamed',
405 CHARACTER_RENAMED_IN_PAST_CHAT: 'character_renamed_in_past_chat',
406 /** @deprecated The event is aliased to STREAM_TOKEN_RECEIVED. */
407 SMOOTH_STREAM_TOKEN_RECEIVED: 'stream_token_received',
408 STREAM_TOKEN_RECEIVED: 'stream_token_received',
409 STREAM_REASONING_DONE: 'stream_reasoning_done',
410 FILE_ATTACHMENT_DELETED: 'file_attachment_deleted',
411 WORLDINFO_FORCE_ACTIVATE: 'worldinfo_force_activate',
412 OPEN_CHARACTER_LIBRARY: 'open_character_library',
413 ONLINE_STATUS_CHANGED: 'online_status_changed',
414 IMAGE_SWIPED: 'image_swiped',
415 CONNECTION_PROFILE_LOADED: 'connection_profile_loaded',
416 CONNECTION_PROFILE_CREATED: 'connection_profile_created',
417 CONNECTION_PROFILE_DELETED: 'connection_profile_deleted',
418 CONNECTION_PROFILE_UPDATED: 'connection_profile_updated',
419 TOOL_CALLS_PERFORMED: 'tool_calls_performed',
420 TOOL_CALLS_RENDERED: 'tool_calls_rendered',
421 CHARACTER_MANAGEMENT_DROPDOWN: 'charManagementDropdown',
422 SECRET_WRITTEN: 'secret_written',
423 SECRET_DELETED: 'secret_deleted',
424 SECRET_ROTATED: 'secret_rotated',
425 SECRET_EDITED: 'secret_edited',
426};
427
428export const eventSource = new EventEmitter([event_types.APP_READY]);
429
430export const characterGroupOverlay = new BulkEditOverlay();343export const characterGroupOverlay = new BulkEditOverlay();
431const characterContextMenu = new CharacterContextMenu(characterGroupOverlay);
432eventSource.on(event_types.CHARACTER_PAGE_LOADED, characterGroupOverlay.onPageLoad);
433console.debug('Character context menu initialized', characterContextMenu);
434344
435// Markdown converter345// Markdown converter
436export let mesForShowdownParse; //intended to be used as a context to compare showdown strings against346export let mesForShowdownParse; //intended to be used as a context to compare showdown strings against
@@ -9964,10 +9874,11 @@ jQuery(async function () {
9964 is_delete_mode = false;9874 is_delete_mode = false;
9965 });9875 });
99669876
9967 $('#main_api').on('change', function () {9877 $('#main_api').on('change', async function () {
9968 cancelStatusCheck('Canceled because main api changed');9878 cancelStatusCheck('Canceled because main api changed');
9969 changeMainAPI();9879 changeMainAPI();
9970 saveSettingsDebounced();9880 saveSettingsDebounced();
9881 await eventSource.emit(event_types.MAIN_API_CHANGED, { apiId: main_api });
9971 });9882 });
99729883
9973 ////////////////// OPTIMIZED RANGE SLIDER LISTENERS////////////////9884 ////////////////// OPTIMIZED RANGE SLIDER LISTENERS////////////////
public/scripts/bulk-edit.js+6 -2
@@ -1,6 +1,6 @@
1import { characterGroupOverlay } from '../script.js';1import { characterGroupOverlay } from '../script.js';
2import { BulkEditOverlay, BulkEditOverlayState } from './BulkEditOverlay.js';2import { BulkEditOverlay, BulkEditOverlayState, CharacterContextMenu } from './BulkEditOverlay.js';
33import { event_types, eventSource } from './events.js';
44
5let is_bulk_edit = false;5let is_bulk_edit = false;
66
@@ -121,4 +121,8 @@ export function initBulkEdit() {
121 $('#bulkEditButton').on('click', onEditButtonClick);121 $('#bulkEditButton').on('click', onEditButtonClick);
122 $('#bulkSelectAllButton').on('click', onSelectAllButtonClick);122 $('#bulkSelectAllButton').on('click', onSelectAllButtonClick);
123 $('#bulkDeleteButton').on('click', onDeleteButtonClick);123 $('#bulkDeleteButton').on('click', onDeleteButtonClick);
124
125 const characterContextMenu = new CharacterContextMenu(characterGroupOverlay);
126 eventSource.on(event_types.CHARACTER_PAGE_LOADED, characterGroupOverlay.onPageLoad);
127 console.debug('Character context menu initialized', characterContextMenu);
124}128}
public/scripts/events.js+91 -0
@@ -0,0 +1,91 @@
1import { EventEmitter } from '../lib/eventemitter.js';
2
3export const event_types = {
4 APP_READY: 'app_ready',
5 EXTRAS_CONNECTED: 'extras_connected',
6 MESSAGE_SWIPED: 'message_swiped',
7 MESSAGE_SENT: 'message_sent',
8 MESSAGE_RECEIVED: 'message_received',
9 MESSAGE_EDITED: 'message_edited',
10 MESSAGE_DELETED: 'message_deleted',
11 MESSAGE_UPDATED: 'message_updated',
12 MESSAGE_FILE_EMBEDDED: 'message_file_embedded',
13 MESSAGE_REASONING_EDITED: 'message_reasoning_edited',
14 MESSAGE_REASONING_DELETED: 'message_reasoning_deleted',
15 MORE_MESSAGES_LOADED: 'more_messages_loaded',
16 IMPERSONATE_READY: 'impersonate_ready',
17 CHAT_CHANGED: 'chat_id_changed',
18 GENERATION_AFTER_COMMANDS: 'GENERATION_AFTER_COMMANDS',
19 GENERATION_STARTED: 'generation_started',
20 GENERATION_STOPPED: 'generation_stopped',
21 GENERATION_ENDED: 'generation_ended',
22 SD_PROMPT_PROCESSING: 'sd_prompt_processing',
23 EXTENSIONS_FIRST_LOAD: 'extensions_first_load',
24 EXTENSION_SETTINGS_LOADED: 'extension_settings_loaded',
25 SETTINGS_LOADED: 'settings_loaded',
26 SETTINGS_UPDATED: 'settings_updated',
27 GROUP_UPDATED: 'group_updated',
28 MOVABLE_PANELS_RESET: 'movable_panels_reset',
29 SETTINGS_LOADED_BEFORE: 'settings_loaded_before',
30 SETTINGS_LOADED_AFTER: 'settings_loaded_after',
31 CHATCOMPLETION_SOURCE_CHANGED: 'chatcompletion_source_changed',
32 CHATCOMPLETION_MODEL_CHANGED: 'chatcompletion_model_changed',
33 OAI_PRESET_CHANGED_BEFORE: 'oai_preset_changed_before',
34 OAI_PRESET_CHANGED_AFTER: 'oai_preset_changed_after',
35 OAI_PRESET_EXPORT_READY: 'oai_preset_export_ready',
36 OAI_PRESET_IMPORT_READY: 'oai_preset_import_ready',
37 WORLDINFO_SETTINGS_UPDATED: 'worldinfo_settings_updated',
38 WORLDINFO_UPDATED: 'worldinfo_updated',
39 CHARACTER_EDITED: 'character_edited',
40 CHARACTER_PAGE_LOADED: 'character_page_loaded',
41 CHARACTER_GROUP_OVERLAY_STATE_CHANGE_BEFORE: 'character_group_overlay_state_change_before',
42 CHARACTER_GROUP_OVERLAY_STATE_CHANGE_AFTER: 'character_group_overlay_state_change_after',
43 USER_MESSAGE_RENDERED: 'user_message_rendered',
44 CHARACTER_MESSAGE_RENDERED: 'character_message_rendered',
45 FORCE_SET_BACKGROUND: 'force_set_background',
46 CHAT_DELETED: 'chat_deleted',
47 CHAT_CREATED: 'chat_created',
48 GROUP_CHAT_DELETED: 'group_chat_deleted',
49 GROUP_CHAT_CREATED: 'group_chat_created',
50 GENERATE_BEFORE_COMBINE_PROMPTS: 'generate_before_combine_prompts',
51 GENERATE_AFTER_COMBINE_PROMPTS: 'generate_after_combine_prompts',
52 GENERATE_AFTER_DATA: 'generate_after_data',
53 GROUP_MEMBER_DRAFTED: 'group_member_drafted',
54 GROUP_WRAPPER_STARTED: 'group_wrapper_started',
55 GROUP_WRAPPER_FINISHED: 'group_wrapper_finished',
56 WORLD_INFO_ACTIVATED: 'world_info_activated',
57 TEXT_COMPLETION_SETTINGS_READY: 'text_completion_settings_ready',
58 CHAT_COMPLETION_SETTINGS_READY: 'chat_completion_settings_ready',
59 CHAT_COMPLETION_PROMPT_READY: 'chat_completion_prompt_ready',
60 CHARACTER_FIRST_MESSAGE_SELECTED: 'character_first_message_selected',
61 // TODO: Naming convention is inconsistent with other events
62 CHARACTER_DELETED: 'characterDeleted',
63 CHARACTER_DUPLICATED: 'character_duplicated',
64 CHARACTER_RENAMED: 'character_renamed',
65 CHARACTER_RENAMED_IN_PAST_CHAT: 'character_renamed_in_past_chat',
66 /** @deprecated The event is aliased to STREAM_TOKEN_RECEIVED. */
67 SMOOTH_STREAM_TOKEN_RECEIVED: 'stream_token_received',
68 STREAM_TOKEN_RECEIVED: 'stream_token_received',
69 STREAM_REASONING_DONE: 'stream_reasoning_done',
70 FILE_ATTACHMENT_DELETED: 'file_attachment_deleted',
71 WORLDINFO_FORCE_ACTIVATE: 'worldinfo_force_activate',
72 OPEN_CHARACTER_LIBRARY: 'open_character_library',
73 ONLINE_STATUS_CHANGED: 'online_status_changed',
74 IMAGE_SWIPED: 'image_swiped',
75 CONNECTION_PROFILE_LOADED: 'connection_profile_loaded',
76 CONNECTION_PROFILE_CREATED: 'connection_profile_created',
77 CONNECTION_PROFILE_DELETED: 'connection_profile_deleted',
78 CONNECTION_PROFILE_UPDATED: 'connection_profile_updated',
79 TOOL_CALLS_PERFORMED: 'tool_calls_performed',
80 TOOL_CALLS_RENDERED: 'tool_calls_rendered',
81 CHARACTER_MANAGEMENT_DROPDOWN: 'charManagementDropdown',
82 SECRET_WRITTEN: 'secret_written',
83 SECRET_DELETED: 'secret_deleted',
84 SECRET_ROTATED: 'secret_rotated',
85 SECRET_EDITED: 'secret_edited',
86 PRESET_CHANGED: 'preset_changed',
87 PRESET_DELETED: 'preset_deleted',
88 MAIN_API_CHANGED: 'main_api_changed',
89};
90
91export const eventSource = new EventEmitter([event_types.APP_READY]);
public/scripts/kai-settings.js+4 -1
@@ -10,6 +10,8 @@ import {
10 abortStatusCheck,10 abortStatusCheck,
11 startStatusLoading,11 startStatusLoading,
12 setGenerationParamsFromPreset,12 setGenerationParamsFromPreset,
13 eventSource,
14 event_types,
13} from '../script.js';15} from '../script.js';
14import { t } from './i18n.js';16import { t } from './i18n.js';
15import { autoSelectInstructPreset } from './instruct-mode.js';17import { autoSelectInstructPreset } from './instruct-mode.js';
@@ -516,7 +518,7 @@ export function initKoboldSettings() {
516 saveSettingsDebounced();518 saveSettingsDebounced();
517 });519 });
518520
519 $('#settings_preset').on('change', function () {521 $('#settings_preset').on('change', async function () {
520 if ($('#settings_preset').find(':selected').val() != 'gui') {522 if ($('#settings_preset').find(':selected').val() != 'gui') {
521 kai_settings.preset_settings = $('#settings_preset').find(':selected').text();523 kai_settings.preset_settings = $('#settings_preset').find(':selected').text();
522 const preset = koboldai_settings[koboldai_setting_names[kai_settings.preset_settings]];524 const preset = koboldai_settings[koboldai_setting_names[kai_settings.preset_settings]];
@@ -538,5 +540,6 @@ export function initKoboldSettings() {
538 .sortable('disable');540 .sortable('disable');
539 }541 }
540 saveSettingsDebounced();542 saveSettingsDebounced();
543 await eventSource.emit(event_types.PRESET_CHANGED, { apiId: 'kobold', name: kai_settings.preset_settings });
541 });544 });
542}545}
public/scripts/nai-settings.js+4 -1
@@ -1,5 +1,7 @@
1import {1import {
2 abortStatusCheck,2 abortStatusCheck,
3 event_types,
4 eventSource,
3 getRequestHeaders,5 getRequestHeaders,
4 getStoppingStrings,6 getStoppingStrings,
5 resultCheckStatus,7 resultCheckStatus,
@@ -890,11 +892,12 @@ export function initNovelAISettings() {
890 await getStatusNovel();892 await getStatusNovel();
891 });893 });
892894
893 $('#settings_preset_novel').on('change', function () {895 $('#settings_preset_novel').on('change', async function () {
894 nai_settings.preset_settings_novel = $('#settings_preset_novel').find(':selected').text();896 nai_settings.preset_settings_novel = $('#settings_preset_novel').find(':selected').text();
895 const preset = novelai_settings[novelai_setting_names[nai_settings.preset_settings_novel]];897 const preset = novelai_settings[novelai_setting_names[nai_settings.preset_settings_novel]];
896 loadNovelPreset(preset);898 loadNovelPreset(preset);
897 saveSettingsDebounced();899 saveSettingsDebounced();
900 await eventSource.emit(event_types.PRESET_CHANGED, { apiId: 'novel', name: nai_settings.preset_settings_novel });
898 });901 });
899902
900 $('#streaming_novel').on('input', function () {903 $('#streaming_novel').on('input', function () {
public/scripts/openai.js+4 -2
@@ -4413,6 +4413,7 @@ async function onDeletePresetClick() {
4413 toastr.warning(t`Preset was not deleted from server`);4413 toastr.warning(t`Preset was not deleted from server`);
4414 } else {4414 } else {
4415 toastr.success(t`Preset deleted`);4415 toastr.success(t`Preset deleted`);
4416 await eventSource.emit(event_types.PRESET_DELETED, { apiId: 'openai', name: nameToDelete });
4416 }4417 }
44174418
4418 saveSettingsDebounced();4419 saveSettingsDebounced();
@@ -4469,7 +4470,7 @@ function onSettingsPresetChange() {
4469 settings: oai_settings,4470 settings: oai_settings,
4470 savePreset: saveOpenAIPreset,4471 savePreset: saveOpenAIPreset,
4471 presetNameBefore: presetNameBefore,4472 presetNameBefore: presetNameBefore,
4472 }).finally(r => {4473 }).finally(async () => {
4473 if (oai_settings.bind_preset_to_connection) {4474 if (oai_settings.bind_preset_to_connection) {
4474 $('.model_custom_select').empty();4475 $('.model_custom_select').empty();
4475 }4476 }
@@ -4504,7 +4505,8 @@ function onSettingsPresetChange() {
4504 $('#openai_logit_bias_preset').trigger('change');4505 $('#openai_logit_bias_preset').trigger('change');
45054506
4506 saveSettingsDebounced();4507 saveSettingsDebounced();
4507 eventSource.emit(event_types.OAI_PRESET_CHANGED_AFTER);4508 await eventSource.emit(event_types.OAI_PRESET_CHANGED_AFTER);
4509 await eventSource.emit(event_types.PRESET_CHANGED, { apiId: 'openai', name: presetName });
4508 });4510 });
4509}4511}
45104512
public/scripts/preset-manager.js+5 -0
@@ -1035,6 +1035,9 @@ export async function initPresetManager() {
10351035
1036 await presetManager.renamePreset(newName);1036 await presetManager.renamePreset(newName);
10371037
1038 await eventSource.emit(event_types.PRESET_DELETED, { apiId: apiId, name: oldName });
1039 await eventSource.emit(event_types.PRESET_CHANGED, { apiId: apiId, name: newName });
1040
1038 if (apiId === 'openai') {1041 if (apiId === 'openai') {
1039 // This is a horrible mess, but prevents the renamed preset from being corrupted.1042 // This is a horrible mess, but prevents the renamed preset from being corrupted.
1040 $('#update_oai_preset').trigger('click');1043 $('#update_oai_preset').trigger('click');
@@ -1107,6 +1110,7 @@ export async function initPresetManager() {
1107 return;1110 return;
1108 }1111 }
11091112
1113 const name = presetManager.getSelectedPresetName();
1110 const result = await presetManager.deletePreset();1114 const result = await presetManager.deletePreset();
11111115
1112 if (result) {1116 if (result) {
@@ -1118,6 +1122,7 @@ export async function initPresetManager() {
1118 }1122 }
11191123
1120 saveSettingsDebounced();1124 saveSettingsDebounced();
1125 await eventSource.emit(event_types.PRESET_DELETED, { apiId: apiId, name: name });
1121 });1126 });
11221127
1123 $(document).on('click', '[data-preset-manager-restore]', async function () {1128 $(document).on('click', '[data-preset-manager-restore]', async function () {
public/scripts/textgen-settings.js+3 -2
@@ -906,9 +906,10 @@ export function initTextGenSettings() {
906 saveSettingsDebounced();906 saveSettingsDebounced();
907 });907 });
908908
909 $('#settings_preset_textgenerationwebui').on('change', function () {909 $('#settings_preset_textgenerationwebui').on('change', async function () {
910 const presetName = $(this).val();910 const presetName = $(this).val();
911 selectPreset(presetName);911 await selectPreset(presetName);
912 await eventSource.emit(event_types.PRESET_CHANGED, { apiId: 'textgenerationwebui', name: presetName });
912 });913 });
913914
914 $('#samplerResetButton').off('click').on('click', function () {915 $('#samplerResetButton').off('click').on('click', function () {