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
Signed| @@ -204,7 +204,6 @@ import { | |||
| 204 | applyCharacterTagsToMessageDivs, | 204 | applyCharacterTagsToMessageDivs, |
| 205 | } from './scripts/tags.js'; | 205 | } from './scripts/tags.js'; |
| 206 | import { initSecrets, readSecretState } from './scripts/secrets.js'; | 206 | import { initSecrets, readSecretState } from './scripts/secrets.js'; |
| 207 | import { EventEmitter } from './lib/eventemitter.js'; | ||
| 208 | import { markdownExclusionExt } from './scripts/showdown-exclusion.js'; | 207 | import { markdownExclusionExt } from './scripts/showdown-exclusion.js'; |
| 209 | import { markdownUnderscoreExt } from './scripts/showdown-underscore.js'; | 208 | import { markdownUnderscoreExt } from './scripts/showdown-underscore.js'; |
| 210 | import { NOTE_MODULE_NAME, initAuthorsNote, metadata_keys, setFloatingPrompt, shouldWIAddPrompt } from './scripts/authors-note.js'; | 209 | import { 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'; |
| 237 | import { getBackgrounds, initBackgrounds, loadBackgroundSettings, background_settings } from './scripts/backgrounds.js'; | 236 | import { getBackgrounds, initBackgrounds, loadBackgroundSettings, background_settings } from './scripts/backgrounds.js'; |
| 238 | import { hideLoader, showLoader } from './scripts/loader.js'; | 237 | import { hideLoader, showLoader } from './scripts/loader.js'; |
| 239 | import { BulkEditOverlay, CharacterContextMenu } from './scripts/BulkEditOverlay.js'; | 238 | import { BulkEditOverlay } from './scripts/BulkEditOverlay.js'; |
| 240 | import { initTextGenModels } from './scripts/textgen-models.js'; | 239 | import { initTextGenModels } from './scripts/textgen-models.js'; |
| 241 | import { appendFileContent, hasPendingFileAttachment, populateFileAttachment, decodeStyleTags, encodeStyleTags, isExternalMediaAllowed, preserveNeutralChat, restoreNeutralChat, formatCreatorNotes, initChatUtilities, addDOMPurifyHooks } from './scripts/chats.js'; | 240 | import { appendFileContent, hasPendingFileAttachment, populateFileAttachment, decodeStyleTags, encodeStyleTags, isExternalMediaAllowed, preserveNeutralChat, restoreNeutralChat, formatCreatorNotes, initChatUtilities, addDOMPurifyHooks } from './scripts/chats.js'; |
| 242 | import { getPresetManager, initPresetManager } from './scripts/preset-manager.js'; | 241 | import { getPresetManager, initPresetManager } from './scripts/preset-manager.js'; |
| @@ -266,6 +265,7 @@ import { initWelcomeScreen, openPermanentAssistantChat, openPermanentAssistantCa | |||
| 266 | import { initDataMaid } from './scripts/data-maid.js'; | 265 | import { initDataMaid } from './scripts/data-maid.js'; |
| 267 | import { clearItemizedPrompts, deleteItemizedPrompts, findItemizedPromptSet, initItemizedPrompts, itemizedParams, itemizedPrompts, loadItemizedPrompts, promptItemize, replaceItemizedPromptText, saveItemizedPrompts } from './scripts/itemized-prompts.js'; | 266 | import { clearItemizedPrompts, deleteItemizedPrompts, findItemizedPromptSet, initItemizedPrompts, itemizedParams, itemizedPrompts, loadItemizedPrompts, promptItemize, replaceItemizedPromptText, saveItemizedPrompts } from './scripts/itemized-prompts.js'; |
| 268 | import { getSystemMessageByType, initSystemMessages, SAFETY_CHAT, sendSystemMessage, system_message_types, system_messages } from './scripts/system-messages.js'; | 267 | import { getSystemMessageByType, initSystemMessages, SAFETY_CHAT, sendSystemMessage, system_message_types, system_messages } from './scripts/system-messages.js'; |
| 268 | import { event_types, eventSource } from './scripts/events.js'; | ||
| 269 | 269 | ||
| 270 | // API OBJECT FOR EXTERNAL WIRING | 270 | // API OBJECT FOR EXTERNAL WIRING |
| 271 | globalThis.SillyTavern = { | 271 | globalThis.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 | }; |
| 305 | 307 | ||
| 306 | /** | 308 | /** |
| @@ -338,99 +340,7 @@ toastr.options = { | |||
| 338 | }, | 340 | }, |
| 339 | }; | 341 | }; |
| 340 | 342 | ||
| 341 | // Event source init | ||
| 342 | //MARK: event_types | ||
| 343 | export 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 | |||
| 428 | export const eventSource = new EventEmitter([event_types.APP_READY]); | ||
| 429 | |||
| 430 | export const characterGroupOverlay = new BulkEditOverlay(); | 343 | export const characterGroupOverlay = new BulkEditOverlay(); |
| 431 | const characterContextMenu = new CharacterContextMenu(characterGroupOverlay); | ||
| 432 | eventSource.on(event_types.CHARACTER_PAGE_LOADED, characterGroupOverlay.onPageLoad); | ||
| 433 | console.debug('Character context menu initialized', characterContextMenu); | ||
| 434 | 344 | ||
| 435 | // Markdown converter | 345 | // Markdown converter |
| 436 | export let mesForShowdownParse; //intended to be used as a context to compare showdown strings against | 346 | export 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 | }); |
| 9966 | 9876 | ||
| 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 | }); |
| 9972 | 9883 | ||
| 9973 | ////////////////// OPTIMIZED RANGE SLIDER LISTENERS//////////////// | 9884 | ////////////////// OPTIMIZED RANGE SLIDER LISTENERS//////////////// |
| @@ -1,6 +1,6 @@ | |||
| 1 | import { characterGroupOverlay } from '../script.js'; | 1 | import { characterGroupOverlay } from '../script.js'; |
| 2 | import { BulkEditOverlay, BulkEditOverlayState } from './BulkEditOverlay.js'; | 2 | import { BulkEditOverlay, BulkEditOverlayState, CharacterContextMenu } from './BulkEditOverlay.js'; |
| 3 | 3 | import { event_types, eventSource } from './events.js'; | |
| 4 | 4 | ||
| 5 | let is_bulk_edit = false; | 5 | let is_bulk_edit = false; |
| 6 | 6 | ||
| @@ -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 | } |
| @@ -0,0 +1,91 @@ | |||
| 1 | import { EventEmitter } from '../lib/eventemitter.js'; | ||
| 2 | |||
| 3 | export 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 | |||
| 91 | export const eventSource = new EventEmitter([event_types.APP_READY]); | ||
| @@ -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'; |
| 14 | import { t } from './i18n.js'; | 16 | import { t } from './i18n.js'; |
| 15 | import { autoSelectInstructPreset } from './instruct-mode.js'; | 17 | import { autoSelectInstructPreset } from './instruct-mode.js'; |
| @@ -516,7 +518,7 @@ export function initKoboldSettings() { | |||
| 516 | saveSettingsDebounced(); | 518 | saveSettingsDebounced(); |
| 517 | }); | 519 | }); |
| 518 | 520 | ||
| 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 | } |
| @@ -1,5 +1,7 @@ | |||
| 1 | import { | 1 | import { |
| 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 | }); |
| 892 | 894 | ||
| 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 | }); |
| 899 | 902 | ||
| 900 | $('#streaming_novel').on('input', function () { | 903 | $('#streaming_novel').on('input', function () { |
| @@ -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 | } |
| 4417 | 4418 | ||
| 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'); |
| 4505 | 4506 | ||
| 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 | } |
| 4510 | 4512 | ||
| @@ -1035,6 +1035,9 @@ export async function initPresetManager() { | |||
| 1035 | 1035 | ||
| 1036 | await presetManager.renamePreset(newName); | 1036 | await presetManager.renamePreset(newName); |
| 1037 | 1037 | ||
| 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 | } |
| 1109 | 1112 | ||
| 1113 | const name = presetManager.getSelectedPresetName(); | ||
| 1110 | const result = await presetManager.deletePreset(); | 1114 | const result = await presetManager.deletePreset(); |
| 1111 | 1115 | ||
| 1112 | if (result) { | 1116 | if (result) { |
| @@ -1118,6 +1122,7 @@ export async function initPresetManager() { | |||
| 1118 | } | 1122 | } |
| 1119 | 1123 | ||
| 1120 | saveSettingsDebounced(); | 1124 | saveSettingsDebounced(); |
| 1125 | await eventSource.emit(event_types.PRESET_DELETED, { apiId: apiId, name: name }); | ||
| 1121 | }); | 1126 | }); |
| 1122 | 1127 | ||
| 1123 | $(document).on('click', '[data-preset-manager-restore]', async function () { | 1128 | $(document).on('click', '[data-preset-manager-restore]', async function () { |
| @@ -906,9 +906,10 @@ export function initTextGenSettings() { | |||
| 906 | saveSettingsDebounced(); | 906 | saveSettingsDebounced(); |
| 907 | }); | 907 | }); |
| 908 | 908 | ||
| 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 | }); |
| 913 | 914 | ||
| 914 | $('#samplerResetButton').off('click').on('click', function () { | 915 | $('#samplerResetButton').off('click').on('click', function () { |