mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
feat: Delete image swipes at once or one by one
This commit is contained in:
@@ -621,21 +621,56 @@ async function enlargeMessageImage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function deleteMessageImage() {
|
async function deleteMessageImage() {
|
||||||
const value = await callGenericPopup('<h3>Delete image from message?<br>This action can\'t be undone.</h3>', POPUP_TYPE.CONFIRM);
|
const value = await callGenericPopup('<h3>Delete image from message?<br>This action can\'t be undone.</h3>', POPUP_TYPE.TEXT, '', {
|
||||||
|
okButton: t`Delete one`,
|
||||||
|
customButtons: [
|
||||||
|
{
|
||||||
|
text: t`Delete all`,
|
||||||
|
appendAtEnd: true,
|
||||||
|
result: POPUP_RESULT.CUSTOM1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: t`Cancel`,
|
||||||
|
appendAtEnd: true,
|
||||||
|
result: POPUP_RESULT.CANCELLED,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
if (value !== POPUP_RESULT.AFFIRMATIVE) {
|
if (!value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const mesBlock = $(this).closest('.mes');
|
const mesBlock = $(this).closest('.mes');
|
||||||
const mesId = mesBlock.attr('mesid');
|
const mesId = mesBlock.attr('mesid');
|
||||||
const message = chat[mesId];
|
const message = chat[mesId];
|
||||||
|
|
||||||
|
let isLastImage = true;
|
||||||
|
|
||||||
|
if (Array.isArray(message.extra.image_swipes)) {
|
||||||
|
const indexOf = message.extra.image_swipes.indexOf(message.extra.image);
|
||||||
|
if (indexOf > -1) {
|
||||||
|
message.extra.image_swipes.splice(indexOf, 1);
|
||||||
|
isLastImage = message.extra.image_swipes.length === 0;
|
||||||
|
if (!isLastImage) {
|
||||||
|
const newIndex = Math.min(indexOf, message.extra.image_swipes.length - 1);
|
||||||
|
message.extra.image = message.extra.image_swipes[newIndex];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isLastImage || value === POPUP_RESULT.CUSTOM1) {
|
||||||
delete message.extra.image;
|
delete message.extra.image;
|
||||||
delete message.extra.inline_image;
|
delete message.extra.inline_image;
|
||||||
delete message.extra.title;
|
delete message.extra.title;
|
||||||
delete message.extra.append_title;
|
delete message.extra.append_title;
|
||||||
|
delete message.extra.image_swipes;
|
||||||
mesBlock.find('.mes_img_container').removeClass('img_extra');
|
mesBlock.find('.mes_img_container').removeClass('img_extra');
|
||||||
mesBlock.find('.mes_img').attr('src', '');
|
mesBlock.find('.mes_img').attr('src', '');
|
||||||
|
} else {
|
||||||
|
appendMediaToMessage(message, mesBlock);
|
||||||
|
}
|
||||||
|
|
||||||
await saveChatConditional();
|
await saveChatConditional();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,6 +24,15 @@ export const POPUP_RESULT = {
|
|||||||
AFFIRMATIVE: 1,
|
AFFIRMATIVE: 1,
|
||||||
NEGATIVE: 0,
|
NEGATIVE: 0,
|
||||||
CANCELLED: null,
|
CANCELLED: null,
|
||||||
|
CUSTOM1: 1001,
|
||||||
|
CUSTOM2: 1002,
|
||||||
|
CUSTOM3: 1003,
|
||||||
|
CUSTOM4: 1004,
|
||||||
|
CUSTOM5: 1005,
|
||||||
|
CUSTOM6: 1006,
|
||||||
|
CUSTOM7: 1007,
|
||||||
|
CUSTOM8: 1008,
|
||||||
|
CUSTOM9: 1009,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user