Merge branch 'staging' of https://github.com/SillyTavern/SillyTavern into staging

This commit is contained in:
Cohee 2023-12-03 15:11:49 +02:00
commit 14f395fdf9

View File

@ -523,7 +523,6 @@ async function switchZenSliders() {
} }
async function CreateZenSliders(elmnt) { async function CreateZenSliders(elmnt) {
//await delay(100)
var originalSlider = elmnt; var originalSlider = elmnt;
var sliderID = originalSlider.attr('id'); var sliderID = originalSlider.attr('id');
var sliderMin = Number(originalSlider.attr('min')); var sliderMin = Number(originalSlider.attr('min'));
@ -664,29 +663,28 @@ async function CreateZenSliders(elmnt) {
step: stepScale, step: stepScale,
min: sliderMin, min: sliderMin,
max: sliderMax, max: sliderMax,
create: function () { create: async function () {
await delay(100)
var handle = $(this).find('.ui-slider-handle'); var handle = $(this).find('.ui-slider-handle');
var handleText, stepNumber, leftMargin; var handleText, stepNumber, leftMargin;
//handling creation of amt_gen //handling creation of amt_gen
if (newSlider.attr('id') == 'amount_gen_zenslider') { if (newSlider.attr('id') == 'amount_gen_zenslider') {
//console.log(`using custom process for ${newSlider.attr('id')}`)
handleText = steps[sliderValue]; handleText = steps[sliderValue];
stepNumber = sliderValue; stepNumber = sliderValue;
leftMargin = ((stepNumber) / numSteps) * 50 * -1; leftMargin = ((stepNumber) / numSteps) * 50 * -1;
handle.text(handleText) handle.text(handleText)
.css('margin-left', `${leftMargin}px`); .css('margin-left', `${leftMargin}px`);
//console.log(`${newSlider.attr('id')} initial value:${handleText}, stepNum:${stepNumber}, numSteps:${numSteps}, left-margin:${leftMargin}`) //console.log(`${newSlider.attr('id')} initial value:${handleText}, stepNum:${stepNumber}, numSteps:${numSteps}, left-margin:${leftMargin}`)
}
//handling creation of rep_pen_range for ooba //handling creation of rep_pen_range for ooba
} else if (newSlider.attr('id') == 'rep_pen_range_textgenerationwebui_zenslider') { else if (newSlider.attr('id') == 'rep_pen_range_textgenerationwebui_zenslider') {
if ($('#rep_pen_range_textgenerationwebui_zensliders').length !== 0) { if ($('#rep_pen_range_textgenerationwebui_zensliders').length !== 0) {
$('#rep_pen_range_textgenerationwebui_zensliders').remove(); $('#rep_pen_range_textgenerationwebui_zensliders').remove();
} }
handleText = steps[sliderValue]; handleText = steps[sliderValue];
stepNumber = sliderValue; stepNumber = sliderValue;
leftMargin = ((stepNumber) / numSteps) * 50 * -1; leftMargin = ((stepNumber) / numSteps) * 50 * -1;
if (sliderValue === offVal) { if (sliderValue === offVal) {
handleText = 'Off'; handleText = 'Off';
handle.css('color', 'rgba(128,128,128,0.5'); handle.css('color', 'rgba(128,128,128,0.5');
@ -698,13 +696,11 @@ async function CreateZenSliders(elmnt) {
//console.log(sliderValue, handleText, offVal, allVal) //console.log(sliderValue, handleText, offVal, allVal)
//console.log(`${newSlider.attr('id')} sliderValue = ${sliderValue}, handleText:${handleText}, stepNum:${stepNumber}, numSteps:${numSteps}, left-margin:${leftMargin}`) //console.log(`${newSlider.attr('id')} sliderValue = ${sliderValue}, handleText:${handleText}, stepNum:${stepNumber}, numSteps:${numSteps}, left-margin:${leftMargin}`)
originalSlider.val(steps[sliderValue]); originalSlider.val(steps[sliderValue]);
originalSlider.trigger('input'); }
originalSlider.trigger('change'); //create all other sliders
} else { else {
//handling creation for all other sliders
var numVal = Number(sliderValue).toFixed(decimals); var numVal = Number(sliderValue).toFixed(decimals);
offVal = Number(offVal).toFixed(decimals); offVal = Number(offVal).toFixed(decimals);
//console.log(`${sliderID}: offVal ${offVal}`)
if (numVal === offVal) { if (numVal === offVal) {
handle.text('Off').css('color', 'rgba(128,128,128,0.5'); handle.text('Off').css('color', 'rgba(128,128,128,0.5');
} else { } else {
@ -712,11 +708,15 @@ async function CreateZenSliders(elmnt) {
} }
stepNumber = ((sliderValue - sliderMin) / stepScale); stepNumber = ((sliderValue - sliderMin) / stepScale);
leftMargin = (stepNumber / numSteps) * 50 * -1; leftMargin = (stepNumber / numSteps) * 50 * -1;
originalSlider.val(numVal)
.data('newSlider', newSlider)
//console.log(`${newSlider.attr('id')} sliderValue = ${sliderValue}, handleText:${handleText, numVal}, stepNum:${stepNumber}, numSteps:${numSteps}, left-margin:${leftMargin}`)
var isManualInput = false; var isManualInput = false;
var valueBeforeManualInput; var valueBeforeManualInput;
handle.css('margin-left', `${leftMargin}px`) handle.css('margin-left', `${leftMargin}px`)
.attr('contenteditable', 'true') .attr('contenteditable', 'true')
//these sliders need listeners for manual inputs
.on('click', function () { .on('click', function () {
//this just selects all the text in the handle so user can overwrite easily //this just selects all the text in the handle so user can overwrite easily
//needed because JQUery UI uses left/right arrow keys as well as home/end to move the slider.. //needed because JQUery UI uses left/right arrow keys as well as home/end to move the slider..
@ -729,10 +729,15 @@ async function CreateZenSliders(elmnt) {
selection.removeAllRanges(); selection.removeAllRanges();
selection.addRange(range); selection.addRange(range);
}) })
.on('keyup', function () { .on('keyup', function (e) {
valueBeforeManualInput = newSlider.val(); valueBeforeManualInput = numVal;
console.log(valueBeforeManualInput); //console.log(valueBeforeManualInput, numVal, handleText);
isManualInput = true; isManualInput = true;
//allow enter to trigger slider update
if (e.key === 'Enter') {
e.preventDefault
handle.trigger('blur')
}
}) })
//trigger slider changes when user clicks away //trigger slider changes when user clicks away
.on('mouseup blur', function () { .on('mouseup blur', function () {
@ -750,15 +755,14 @@ async function CreateZenSliders(elmnt) {
console.log(valueBeforeManualInput); console.log(valueBeforeManualInput);
newSlider.val(valueBeforeManualInput); newSlider.val(valueBeforeManualInput);
handle.text(valueBeforeManualInput); handle.text(valueBeforeManualInput);
handleSlideEvent.call(newSlider, null, { value: parseFloat(valueBeforeManualInput) }, 'manual');
} }
} }
isManualInput = false; isManualInput = false;
}); });
console.debug(sliderID, sliderValue, stepNumber, stepScale);
originalSlider.val(numVal);
originalSlider.trigger('input');
originalSlider.trigger('change');
} }
//zenSlider creation done, hide the original
originalSlider.hide();
}, },
slide: handleSlideEvent, slide: handleSlideEvent,
}); });
@ -769,14 +773,8 @@ async function CreateZenSliders(elmnt) {
offVal = Number(offVal).toFixed(decimals); offVal = Number(offVal).toFixed(decimals);
allVal = Number(allVal).toFixed(decimals); allVal = Number(allVal).toFixed(decimals);
console.log(numVal, sliderMin, sliderMax, numVal > sliderMax, numVal < sliderMin); console.log(numVal, sliderMin, sliderMax, numVal > sliderMax, numVal < sliderMin);
if (numVal > sliderMax) { if (numVal > sliderMax) { numVal = sliderMax; }
//console.log('clamping numVal to sliderMax') if (numVal < sliderMin) { numVal = sliderMin; }
numVal = sliderMax;
}
if (numVal < sliderMin) {
//console.log('clamping numVal to sliderMin')
numVal = sliderMin;
}
var stepNumber = ((ui.value - sliderMin) / stepScale).toFixed(0); var stepNumber = ((ui.value - sliderMin) / stepScale).toFixed(0);
var handleText = (ui.value); var handleText = (ui.value);
var leftMargin = (stepNumber / numSteps) * 50 * -1; var leftMargin = (stepNumber / numSteps) * 50 * -1;
@ -820,18 +818,13 @@ async function CreateZenSliders(elmnt) {
newSlider.val(handleText); newSlider.val(handleText);
} }
//for manually typed-in values we must adjust left position because JQUI doesn't do it for us //for manually typed-in values we must adjust left position because JQUI doesn't do it for us
//if (type === 'manual') {
handle.css('left', leftPos); handle.css('left', leftPos);
//}
//adjust a negative left margin to avoid overflowing right side of slider body //adjust a negative left margin to avoid overflowing right side of slider body
handle.css('margin-left', `${leftMargin}px`); handle.css('margin-left', `${leftMargin}px`);
originalSlider.val(handleText); originalSlider.val(numVal);
originalSlider.trigger('input'); originalSlider.trigger('input');
originalSlider.trigger('change'); originalSlider.trigger('change');
} }
originalSlider.data('newSlider', newSlider);
await delay(1);
originalSlider.hide();
} }
function switchUiMode() { function switchUiMode() {
const fastUi = localStorage.getItem(storage_keys.fast_ui_mode); const fastUi = localStorage.getItem(storage_keys.fast_ui_mode);