Update char avatar crop. Remove old cropper
This commit is contained in:
parent
650755198d
commit
0e0bd0d3d9
|
@ -228,7 +228,7 @@ import { appendFileContent, hasPendingFileAttachment, populateFileAttachment, de
|
||||||
import { initPresetManager } from './scripts/preset-manager.js';
|
import { initPresetManager } from './scripts/preset-manager.js';
|
||||||
import { evaluateMacros } from './scripts/macros.js';
|
import { evaluateMacros } from './scripts/macros.js';
|
||||||
import { currentUser, setUserControls } from './scripts/user.js';
|
import { currentUser, setUserControls } from './scripts/user.js';
|
||||||
import { POPUP_TYPE, callGenericPopup, fixToastrForDialogs } from './scripts/popup.js';
|
import { POPUP_TYPE, Popup, callGenericPopup, fixToastrForDialogs } from './scripts/popup.js';
|
||||||
import { renderTemplate, renderTemplateAsync } from './scripts/templates.js';
|
import { renderTemplate, renderTemplateAsync } from './scripts/templates.js';
|
||||||
import { ScraperManager } from './scripts/scrapers.js';
|
import { ScraperManager } from './scripts/scrapers.js';
|
||||||
import { SlashCommandParser } from './scripts/slash-commands/SlashCommandParser.js';
|
import { SlashCommandParser } from './scripts/slash-commands/SlashCommandParser.js';
|
||||||
|
@ -525,7 +525,7 @@ let dialogueResolve = null;
|
||||||
let dialogueCloseStop = false;
|
let dialogueCloseStop = false;
|
||||||
export let chat_metadata = {};
|
export let chat_metadata = {};
|
||||||
export let streamingProcessor = null;
|
export let streamingProcessor = null;
|
||||||
export let crop_data = undefined;
|
let crop_data = undefined;
|
||||||
let is_delete_mode = false;
|
let is_delete_mode = false;
|
||||||
let fav_ch_checked = false;
|
let fav_ch_checked = false;
|
||||||
let scrollLock = false;
|
let scrollLock = false;
|
||||||
|
@ -5754,17 +5754,20 @@ async function read_avatar_load(input) {
|
||||||
create_save.avatar = input.files;
|
create_save.avatar = input.files;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
crop_data = undefined;
|
||||||
const file = input.files[0];
|
const file = input.files[0];
|
||||||
const fileData = await getBase64Async(file);
|
const fileData = await getBase64Async(file);
|
||||||
|
|
||||||
if (!power_user.never_resize_avatars) {
|
if (!power_user.never_resize_avatars) {
|
||||||
$('#dialogue_popup').addClass('large_dialogue_popup wide_dialogue_popup');
|
const dlg = new Popup('Set the crop position of the avatar image', POPUP_TYPE.CROP, '', { cropImage: fileData });
|
||||||
const croppedImage = await callPopup(getCropPopup(fileData), 'avatarToCrop');
|
const croppedImage = await dlg.show();
|
||||||
|
|
||||||
if (!croppedImage) {
|
if (!croppedImage) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#avatar_load_preview').attr('src', croppedImage);
|
crop_data = dlg.cropData;
|
||||||
|
$('#avatar_load_preview').attr('src', String(croppedImage));
|
||||||
} else {
|
} else {
|
||||||
$('#avatar_load_preview').attr('src', fileData);
|
$('#avatar_load_preview').attr('src', fileData);
|
||||||
}
|
}
|
||||||
|
@ -5807,13 +5810,6 @@ async function read_avatar_load(input) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getCropPopup(src) {
|
|
||||||
return `<h3>Set the crop position of the avatar image and click Accept to confirm.</h3>
|
|
||||||
<div id='avatarCropWrap'>
|
|
||||||
<img id='avatarToCrop' src='${src}'>
|
|
||||||
</div>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getThumbnailUrl(type, file) {
|
export function getThumbnailUrl(type, file) {
|
||||||
return `/thumbnail?type=${type}&file=${encodeURIComponent(file)}`;
|
return `/thumbnail?type=${type}&file=${encodeURIComponent(file)}`;
|
||||||
}
|
}
|
||||||
|
@ -7122,9 +7118,7 @@ function onScenarioOverrideRemoveClick() {
|
||||||
*/
|
*/
|
||||||
export function callPopup(text, type, inputValue = '', { okButton, rows, wide, wider, large, allowHorizontalScrolling, allowVerticalScrolling, cropAspect } = {}) {
|
export function callPopup(text, type, inputValue = '', { okButton, rows, wide, wider, large, allowHorizontalScrolling, allowVerticalScrolling, cropAspect } = {}) {
|
||||||
function getOkButtonText() {
|
function getOkButtonText() {
|
||||||
if (['avatarToCrop'].includes(popup_type)) {
|
if (['text', 'alternate_greeting', 'char_not_selected'].includes(popup_type)) {
|
||||||
return okButton ?? 'Accept';
|
|
||||||
} else if (['text', 'alternate_greeting', 'char_not_selected'].includes(popup_type)) {
|
|
||||||
$dialoguePopupCancel.css('display', 'none');
|
$dialoguePopupCancel.css('display', 'none');
|
||||||
return okButton ?? 'Ok';
|
return okButton ?? 'Ok';
|
||||||
} else if (['delete_extension'].includes(popup_type)) {
|
} else if (['delete_extension'].includes(popup_type)) {
|
||||||
|
@ -7165,22 +7159,6 @@ export function callPopup(text, type, inputValue = '', { okButton, rows, wide, w
|
||||||
$dialoguePopupInput.trigger('focus');
|
$dialoguePopupInput.trigger('focus');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (popup_type == 'avatarToCrop') {
|
|
||||||
// unset existing data
|
|
||||||
crop_data = undefined;
|
|
||||||
|
|
||||||
$('#avatarToCrop').cropper({
|
|
||||||
aspectRatio: cropAspect ?? 2 / 3,
|
|
||||||
autoCropArea: 1,
|
|
||||||
viewMode: 2,
|
|
||||||
rotatable: false,
|
|
||||||
crop: function (event) {
|
|
||||||
crop_data = event.detail;
|
|
||||||
crop_data.want_resize = !power_user.never_resize_avatars;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$shadowPopup.transition({
|
$shadowPopup.transition({
|
||||||
opacity: 1,
|
opacity: 1,
|
||||||
duration: animation_duration,
|
duration: animation_duration,
|
||||||
|
@ -9179,12 +9157,6 @@ jQuery(async function () {
|
||||||
$('#dialogue_popup').removeClass('wide_dialogue_popup');
|
$('#dialogue_popup').removeClass('wide_dialogue_popup');
|
||||||
}, animation_duration);
|
}, animation_duration);
|
||||||
|
|
||||||
// $("#shadow_popup").css("opacity:", 0.0);
|
|
||||||
|
|
||||||
if (popup_type == 'avatarToCrop') {
|
|
||||||
dialogueResolve($('#avatarToCrop').data('cropper').getCroppedCanvas().toDataURL('image/jpeg'));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (popup_type == 'del_chat') {
|
if (popup_type == 'del_chat') {
|
||||||
//close past chat popup
|
//close past chat popup
|
||||||
$('#select_chat_cross').trigger('click');
|
$('#select_chat_cross').trigger('click');
|
||||||
|
|
|
@ -4154,19 +4154,13 @@ h5 {
|
||||||
grid-template-columns: 340px auto;
|
grid-template-columns: 340px auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
#avatarCropWrap,
|
|
||||||
.popup-crop-wrap {
|
.popup-crop-wrap {
|
||||||
margin: 10px auto;
|
margin: 10px auto;
|
||||||
max-height: 90%;
|
max-height: 75vh;
|
||||||
|
max-height: 75svh;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup-crop-wrap {
|
|
||||||
max-height: 75vh;
|
|
||||||
max-height: 75svh;
|
|
||||||
}
|
|
||||||
|
|
||||||
#avatarToCrop,
|
|
||||||
.popup-crop-wrap img {
|
.popup-crop-wrap img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
/* This rule is very important, please do not ignore this! */
|
/* This rule is very important, please do not ignore this! */
|
||||||
|
|
Loading…
Reference in New Issue