mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
@ -143,6 +143,7 @@ import {
|
||||
getHordeModels,
|
||||
adjustHordeGenerationParams,
|
||||
MIN_LENGTH,
|
||||
initHorde,
|
||||
} from './scripts/horde.js';
|
||||
|
||||
import {
|
||||
@ -175,6 +176,9 @@ import {
|
||||
saveBase64AsFile,
|
||||
uuidv4,
|
||||
equalsIgnoreCaseAndAccents,
|
||||
localizePagination,
|
||||
renderPaginationDropdown,
|
||||
paginationDropdownChangeHandler,
|
||||
} from './scripts/utils.js';
|
||||
import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js';
|
||||
|
||||
@ -994,6 +998,7 @@ async function firstLoadInit() {
|
||||
initAuthorsNote();
|
||||
await initPersonas();
|
||||
initWorldInfo();
|
||||
initHorde();
|
||||
initRossMods();
|
||||
initStats();
|
||||
initCfg();
|
||||
@ -1423,30 +1428,26 @@ function getBackBlock() {
|
||||
return template;
|
||||
}
|
||||
|
||||
function getEmptyBlock() {
|
||||
async function getEmptyBlock() {
|
||||
const icons = ['fa-dragon', 'fa-otter', 'fa-kiwi-bird', 'fa-crow', 'fa-frog'];
|
||||
const texts = ['Here be dragons', 'Otterly empty', 'Kiwibunga', 'Pump-a-Rum', 'Croak it'];
|
||||
const texts = [t`Here be dragons`, t`Otterly empty`, t`Kiwibunga`, t`Pump-a-Rum`, t`Croak it`];
|
||||
const roll = new Date().getMinutes() % icons.length;
|
||||
const emptyBlock = `
|
||||
<div class="text_block empty_block">
|
||||
<i class="fa-solid ${icons[roll]} fa-4x"></i>
|
||||
<h1>${texts[roll]}</h1>
|
||||
<p>There are no items to display.</p>
|
||||
</div>`;
|
||||
const params = {
|
||||
text: texts[roll],
|
||||
icon: icons[roll],
|
||||
};
|
||||
const emptyBlock = await renderTemplateAsync('emptyBlock', params);
|
||||
return $(emptyBlock);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {number} hidden Number of hidden characters
|
||||
*/
|
||||
function getHiddenBlock(hidden) {
|
||||
const hiddenBlock = `
|
||||
<div class="text_block hidden_block">
|
||||
<small>
|
||||
<p>${hidden} ${hidden > 1 ? 'characters' : 'character'} hidden.</p>
|
||||
<div class="fa-solid fa-circle-info opacity50p" data-i18n="[title]Characters and groups hidden by filters or closed folders" title="Characters and groups hidden by filters or closed folders"></div>
|
||||
</small>
|
||||
</div>`;
|
||||
async function getHiddenBlock(hidden) {
|
||||
const params = {
|
||||
text: (hidden > 1 ? t`${hidden} characters hidden.` : t`${hidden} character hidden.`),
|
||||
};
|
||||
const hiddenBlock = await renderTemplateAsync('hiddenBlock', params);
|
||||
return $(hiddenBlock);
|
||||
}
|
||||
|
||||
@ -1526,10 +1527,11 @@ export async function printCharacters(fullRefresh = false) {
|
||||
|
||||
const entities = getEntitiesList({ doFilter: true });
|
||||
|
||||
const pageSize = Number(accountStorage.getItem(storageKey)) || per_page_default;
|
||||
const sizeChangerOptions = [10, 25, 50, 100, 250, 500, 1000];
|
||||
$('#rm_print_characters_pagination').pagination({
|
||||
dataSource: entities,
|
||||
pageSize: Number(accountStorage.getItem(storageKey)) || per_page_default,
|
||||
sizeChangerOptions: [10, 25, 50, 100, 250, 500, 1000],
|
||||
pageSize,
|
||||
pageRange: 1,
|
||||
pageNumber: saveCharactersPage || 1,
|
||||
position: 'top',
|
||||
@ -1538,14 +1540,16 @@ export async function printCharacters(fullRefresh = false) {
|
||||
prevText: '<',
|
||||
nextText: '>',
|
||||
formatNavigator: PAGINATION_TEMPLATE,
|
||||
formatSizeChanger: renderPaginationDropdown(pageSize, sizeChangerOptions),
|
||||
showNavigator: true,
|
||||
callback: function (/** @type {Entity[]} */ data) {
|
||||
callback: async function (/** @type {Entity[]} */ data) {
|
||||
$(listId).empty();
|
||||
if (power_user.bogus_folders && isBogusFolderOpen()) {
|
||||
$(listId).append(getBackBlock());
|
||||
}
|
||||
if (!data.length) {
|
||||
$(listId).append(getEmptyBlock());
|
||||
const emptyBlock = await getEmptyBlock();
|
||||
$(listId).append(emptyBlock);
|
||||
}
|
||||
let displayCount = 0;
|
||||
for (const i of data) {
|
||||
@ -1566,13 +1570,16 @@ export async function printCharacters(fullRefresh = false) {
|
||||
|
||||
const hidden = (characters.length + groups.length) - displayCount;
|
||||
if (hidden > 0 && entitiesFilter.hasAnyFilter()) {
|
||||
$(listId).append(getHiddenBlock(hidden));
|
||||
const hiddenBlock = await getHiddenBlock(hidden);
|
||||
$(listId).append(hiddenBlock);
|
||||
}
|
||||
localizePagination($('#rm_print_characters_pagination'));
|
||||
|
||||
eventSource.emit(event_types.CHARACTER_PAGE_LOADED);
|
||||
},
|
||||
afterSizeSelectorChange: function (e) {
|
||||
afterSizeSelectorChange: function (e, size) {
|
||||
accountStorage.setItem(storageKey, e.target.value);
|
||||
paginationDropdownChangeHandler(e, size);
|
||||
},
|
||||
afterPaging: function (e) {
|
||||
saveCharactersPage = e;
|
||||
@ -8430,15 +8437,15 @@ export function callPopup(text, type, inputValue = '', { okButton, rows, wide, w
|
||||
function getOkButtonText() {
|
||||
if (['text', 'char_not_selected'].includes(popup_type)) {
|
||||
$dialoguePopupCancel.css('display', 'none');
|
||||
return okButton ?? 'Ok';
|
||||
return okButton ?? t`Ok`;
|
||||
} else if (['delete_extension'].includes(popup_type)) {
|
||||
return okButton ?? 'Ok';
|
||||
return okButton ?? t`Ok`;
|
||||
} else if (['new_chat', 'confirm'].includes(popup_type)) {
|
||||
return okButton ?? 'Yes';
|
||||
return okButton ?? t`Yes`;
|
||||
} else if (['input'].includes(popup_type)) {
|
||||
return okButton ?? t`Save`;
|
||||
}
|
||||
return okButton ?? 'Delete';
|
||||
return okButton ?? t`Delete`;
|
||||
}
|
||||
|
||||
dialogueCloseStop = true;
|
||||
|
Reference in New Issue
Block a user