mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
#224 Add a button to force a one-character next reply in groups
This commit is contained in:
@@ -2146,9 +2146,10 @@
|
||||
</div>
|
||||
<div class="ch_name"></div>
|
||||
<div class="group_member_icon">
|
||||
<div title="Trigger a message from this character" data-action="speak" class="right_menu_button fa-solid fa-lg fa-comment"></div>
|
||||
<div class="flexFlowColumn flex-container">
|
||||
<div title="Move up" data-action="up" class="right_menu_button fa-solid fa-lg fa-chevron-up"></div>
|
||||
<div title="Move down" data-action="down" class="right_menu_button fa-solid fa-lg fa-chevron-down"></div>
|
||||
<div title="Move up" data-action="up" class="right_menu_button fa-solid fa-chevron-up"></div>
|
||||
<div title="Move down" data-action="down" class="right_menu_button fa-solid fa-chevron-down"></div>
|
||||
</div>
|
||||
<div title="View character card" data-action="view" class="right_menu_button fa-solid fa-xl fa-id-badge"></div>
|
||||
<div title="Remove from group" data-action="remove" class="right_menu_button fa-solid fa-2xl fa-xmark"></div>
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user