diff --git a/public/index.html b/public/index.html index 5a1d291fb..e8a4e66c8 100644 --- a/public/index.html +++ b/public/index.html @@ -2146,9 +2146,10 @@
+
-
-
+
+
diff --git a/public/script.js b/public/script.js index 9255ba5fe..dd8aaa5ed 100644 --- a/public/script.js +++ b/public/script.js @@ -1528,7 +1528,7 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject, } if (selected_group && !is_group_generating) { - generateGroupWrapper(false, type = type); + generateGroupWrapper(false, type); return; } diff --git a/public/scripts/group-chats.js b/public/scripts/group-chats.js index bac5a58e1..562f2b2e3 100644 --- a/public/scripts/group-chats.js +++ b/public/scripts/group-chats.js @@ -375,7 +375,7 @@ function getGroupAvatar(group) { } -async function generateGroupWrapper(by_auto_mode, type = null) { +async function generateGroupWrapper(by_auto_mode, type = null, force_chid = null) { if (online_status === "no_connection") { is_group_generating = false; setSendButtonState(false); @@ -437,7 +437,10 @@ async function generateGroupWrapper(by_auto_mode, type = null) { const activationStrategy = Number(group.activation_strategy ?? group_activation_strategy.NATURAL); let activatedMembers = []; - if (type === "swipe") { + if (typeof force_chid == 'number') { + activatedMembers = [force_chid]; + } + else if (type === "swipe") { activatedMembers = activateSwipe(group.members); if (activatedMembers.length === 0) { @@ -854,6 +857,10 @@ function select_group_chats(groupId, skipAnimation) { template.attr("chid", characters.indexOf(character)); template.addClass(character.fav == 'true' ? 'is_fav' : ''); + if (!group) { + template.find('[data-action="speak"]').hide(); + } + if ( group && Array.isArray(group.members) && @@ -931,22 +938,29 @@ function select_group_chats(groupId, skipAnimation) { const action = $(this).data('action'); const member = $(this).closest('.group_member'); - if (action == 'remove') { + if (action === 'remove') { await modifyGroupMember(groupId, member, true); } - if (action == 'add') { + if (action === 'add') { await modifyGroupMember(groupId, member, false); } - if (action == 'up' || action == 'down') { + if (action === 'up' || action === 'down') { await reorderGroupMember(groupId, member, action); } - if (action == 'view') { + if (action === 'view') { openCharacterDefinition(member); } + if (action === 'speak') { + const chid = Number(member.attr('chid')); + if (Number.isInteger(chid)) { + generateGroupWrapper(false, null, chid); + } + } + sortCharactersList("#rm_group_add_members .group_member"); }); } @@ -1225,7 +1239,7 @@ export async function saveGroupBookmarkChat(groupId, name, metadata) { }); } -$(document).ready(() => { +jQuery(() => { $(document).on("click", ".group_select", selectGroup); $("#rm_group_filter").on("input", filterGroupMembers); $("#group_fav_filter").on("click", toggleFilterByFavorites); diff --git a/public/style.css b/public/style.css index 9744a2037..26a1acb8f 100644 --- a/public/style.css +++ b/public/style.css @@ -2781,18 +2781,24 @@ body .ui-widget-content li:hover { gap: 5px; } -/* Rules for icon display */ -#rm_group_members .group_member[order="start"] .fa-chevron-down, -#rm_group_members .group_member[order="end"] .fa-chevron-up, -#rm_group_add_members .right_menu_button:not(.fa-plus, .fa-id-badge), -#rm_group_members .fa-plus { - display: none; +.group_member_icon .flex-container { + gap: 0px; } #rm_group_members .right_menu_button, #rm_group_add_members .right_menu_button { padding: 0px; height: 20px; + display: flex; + align-items: center; +} + +/* Rules for icon display */ +#rm_group_members .group_member[order="start"] .fa-chevron-down, +#rm_group_members .group_member[order="end"] .fa-chevron-up, +#rm_group_add_members .right_menu_button:not(.fa-plus, .fa-id-badge), +#rm_group_members .fa-plus { + display: none; } .group_select {