mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-06-05 21:59:24 +02:00
Bug fix for WI jump
This commit is contained in:
@@ -49,7 +49,6 @@ var world_info_data = {};
|
||||
var world_info_folder_data = {};
|
||||
var saved_settings = {};
|
||||
var finder_selection_index = -1;
|
||||
var on_colab;
|
||||
var colab_cookies = null;
|
||||
var wi_finder_data = [];
|
||||
var wi_finder_offset = 0;
|
||||
@@ -61,6 +60,7 @@ var finder_waiting_id = null;
|
||||
var control_held = false;
|
||||
var actions_data = {};
|
||||
var setup_wi_toggles = [];
|
||||
const on_colab = $el("#on_colab").textContent == "true";
|
||||
|
||||
// name, desc, icon, func
|
||||
const finder_actions = [
|
||||
@@ -97,7 +97,12 @@ const context_menu_actions = [
|
||||
// {label: "View Token Probabilities", icon: "account_tree", visibilityCondition: "SELECTION", click: view_selection_probabilities},
|
||||
];
|
||||
|
||||
function $el(selector) { return document.querySelector(selector); }
|
||||
function $el(selector) {
|
||||
// We do not preemptively fetch all elements upon execution (wall of consts)
|
||||
// due to the layer of mental overhead it adds to debugging and reading
|
||||
// code in general.
|
||||
return document.querySelector(selector);
|
||||
}
|
||||
|
||||
const map1 = new Map()
|
||||
map1.set('Top K Sampling', 0)
|
||||
@@ -4418,53 +4423,58 @@ function updateTitle() {
|
||||
document.title = `${titleInput.innerText} - KoboldAI Client`;
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
on_colab = $el("#on_colab").textContent == "true";
|
||||
//// INIT ////
|
||||
|
||||
if (colab_cookies != null) {
|
||||
for (const cookie of Object.keys(colab_cookies)) {
|
||||
setCookie(cookie, colab_cookies[cookie]);
|
||||
}
|
||||
colab_cookies = null;
|
||||
}
|
||||
document.onkeydown = detect_key_down;
|
||||
document.onkeyup = detect_key_up;
|
||||
document.getElementById("input_text").onkeydown = detect_enter_submit;
|
||||
|
||||
//create_theming_elements();
|
||||
document.onkeydown = detect_key_down;
|
||||
document.onkeyup = detect_key_up;
|
||||
document.getElementById("input_text").onkeydown = detect_enter_submit;
|
||||
|
||||
// Tweak registering
|
||||
for (const tweakContainer of document.getElementsByClassName("tweak-container")) {
|
||||
let toggle = tweakContainer.querySelector("input");
|
||||
/* -- Colab Cookie Handling -- */
|
||||
if (colab_cookies != null) {
|
||||
for (const cookie of Object.keys(colab_cookies)) {
|
||||
setCookie(cookie, colab_cookies[cookie]);
|
||||
}
|
||||
colab_cookies = null;
|
||||
}
|
||||
|
||||
$(toggle).change(function(e) {
|
||||
let path = $(this).closest(".tweak-container")[0].getAttribute("tweak-path");
|
||||
let id = `tweak-${path}`;
|
||||
//create_theming_elements();
|
||||
|
||||
if (this.checked) {
|
||||
let style = document.createElement("link");
|
||||
style.rel = "stylesheet";
|
||||
style.href = `/themes/tweaks/${path}.css`;
|
||||
style.id = id;
|
||||
document.head.appendChild(style);
|
||||
} else {
|
||||
let el = document.getElementById(id);
|
||||
if (el) el.remove();
|
||||
}
|
||||
/* -- Tweak Registering -- */
|
||||
for (const tweakContainer of document.getElementsByClassName("tweak-container")) {
|
||||
let toggle = tweakContainer.querySelector("input");
|
||||
|
||||
save_tweaks();
|
||||
});
|
||||
}
|
||||
|
||||
process_cookies();
|
||||
$(toggle).change(function(e) {
|
||||
let path = $(this).closest(".tweak-container")[0].getAttribute("tweak-path");
|
||||
let id = `tweak-${path}`;
|
||||
|
||||
$("#context-viewer-close").click(function() {
|
||||
document.getElementById("context-viewer-container").classList.add("hidden");
|
||||
if (this.checked) {
|
||||
let style = document.createElement("link");
|
||||
style.rel = "stylesheet";
|
||||
style.href = `/themes/tweaks/${path}.css`;
|
||||
style.id = id;
|
||||
document.head.appendChild(style);
|
||||
} else {
|
||||
let el = document.getElementById(id);
|
||||
if (el) el.remove();
|
||||
}
|
||||
|
||||
save_tweaks();
|
||||
});
|
||||
}
|
||||
|
||||
$(".token_breakdown").click(function() {
|
||||
document.getElementById("context-viewer-container").classList.remove("hidden");
|
||||
});
|
||||
process_cookies();
|
||||
|
||||
$("#context-viewer-close").click(function() {
|
||||
$el(".context-viewer-container").classList.add("hidden");
|
||||
});
|
||||
|
||||
$(".token_breakdown").click(function() {
|
||||
$el("#context-viewer-container").classList.remove("hidden");
|
||||
});
|
||||
|
||||
/* -- Drag and Drop -- */
|
||||
(function() {
|
||||
let lastTarget = null;
|
||||
|
||||
document.body.addEventListener("drop", function(e) {
|
||||
e.preventDefault();
|
||||
@@ -4484,8 +4494,6 @@ $(document).ready(function(){
|
||||
}
|
||||
});
|
||||
|
||||
let lastTarget = null;
|
||||
|
||||
document.body.addEventListener("dragover", function(e) {
|
||||
e.preventDefault();
|
||||
});
|
||||
@@ -4500,8 +4508,15 @@ $(document).ready(function(){
|
||||
|
||||
$("#file-upload-notice")[0].classList.add("hidden");
|
||||
});
|
||||
})();
|
||||
|
||||
// Parse settings for search thingey
|
||||
/* -- Finder -- */
|
||||
(function() {
|
||||
const finderContainer = document.getElementById("finder-container");
|
||||
const finderInput = document.getElementById("finder-input");
|
||||
const finderIcon = document.getElementById("finder-icon");
|
||||
|
||||
// Parse settings for Finder
|
||||
for (const el of $(".setting_label")) {
|
||||
let name = el.children[0].innerText;
|
||||
|
||||
@@ -4515,7 +4530,7 @@ $(document).ready(function(){
|
||||
func: function () { highlightEl(el.parentElement) },
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
for (const el of $(".collapsable_header")) {
|
||||
// https://stackoverflow.com/a/11347962
|
||||
let headerText = $(el.children[0]).contents().filter(function() {
|
||||
@@ -4529,10 +4544,6 @@ $(document).ready(function(){
|
||||
});
|
||||
}
|
||||
|
||||
const finderContainer = document.getElementById("finder-container");
|
||||
const finderInput = document.getElementById("finder-input");
|
||||
const finderIcon = document.getElementById("finder-icon");
|
||||
|
||||
finderIcon.addEventListener("click", cycleFinderMode);
|
||||
finderInput.addEventListener("keyup", updateSearchListings);
|
||||
finderInput.addEventListener("keydown", function(event) {
|
||||
@@ -4578,24 +4589,28 @@ $(document).ready(function(){
|
||||
finder_selection_index = future;
|
||||
updateFinderSelection(delta);
|
||||
});
|
||||
|
||||
|
||||
finderContainer.addEventListener("click", function(e) {
|
||||
if (e.target !== this) return;
|
||||
finderContainer.classList.add("hidden");
|
||||
});
|
||||
})();
|
||||
|
||||
// Debug file
|
||||
/* -- Debug File -- */
|
||||
(function() {
|
||||
const debugContainer = document.getElementById("debug-file-container");
|
||||
// TODO: All of this generic backdrop code really sucks. There should be a
|
||||
// standardised thing for popups that adds the dimmed backdrop and standard
|
||||
// closing, etc.
|
||||
|
||||
const debugContainer = document.getElementById("debug-file-container");
|
||||
|
||||
debugContainer.addEventListener("click", function(e) {
|
||||
debugContainer.classList.add("hidden");
|
||||
});
|
||||
})();
|
||||
|
||||
// Context menu
|
||||
|
||||
/* -- Context Menu -- */
|
||||
(function() {
|
||||
const contextMenu = $e("div", document.body, {id: "context-menu", classes: ["hidden"]});
|
||||
|
||||
for (const action of context_menu_actions) {
|
||||
@@ -4657,26 +4672,31 @@ $(document).ready(function(){
|
||||
window.addEventListener("blur", function(event) {
|
||||
contextMenu.classList.add("hidden");
|
||||
});
|
||||
})();
|
||||
|
||||
// Change appearance of WI when holding control
|
||||
|
||||
/* -- WI Ctrl+Click To Jump -- */
|
||||
(function() {
|
||||
document.addEventListener("keydown", function(event) {
|
||||
// Change appearance of WI when holding control
|
||||
if (event.key !== "Control") return;
|
||||
control_held = true;
|
||||
|
||||
const style = ".wi_match { text-decoration: underline; cursor: pointer; }";
|
||||
$e("style", document.head, {id: "wi-link-style", innerText: style})
|
||||
});
|
||||
|
||||
|
||||
// Remove on up
|
||||
document.addEventListener("keyup", function(event) {
|
||||
if (event.key !== "Control") return;
|
||||
control_held = false;
|
||||
|
||||
document.querySelector("#wi-link-style").remove();
|
||||
const style = document.querySelector("#wi-link-style")
|
||||
if (style) style.remove();
|
||||
});
|
||||
|
||||
document.getElementById("Selected Text").addEventListener("click", function(event) {
|
||||
// Control click on WI entry
|
||||
// Control click on WI entry to jump
|
||||
if (!event.target.classList.contains("wi_match")) return;
|
||||
if (!control_held) return;
|
||||
|
||||
@@ -4684,14 +4704,21 @@ $(document).ready(function(){
|
||||
let wiCard = document.getElementById(`world_info_${uid}`);
|
||||
highlightEl(wiCard);
|
||||
});
|
||||
})();
|
||||
|
||||
/* -- Update Tab Title on Input and Sync -- */
|
||||
(function() {
|
||||
const titleInput = $el(".var_sync_story_story_name");
|
||||
titleInput.addEventListener("input", updateTitle);
|
||||
titleInput.addEventListener("sync", updateTitle);
|
||||
|
||||
// Title may not have been sent by this point. Fear not; We abort if
|
||||
// there's no title. If we have missed the title sync, however, this will
|
||||
// save us.
|
||||
updateTitle();
|
||||
});
|
||||
})();
|
||||
|
||||
/* -- Shortcuts -- */
|
||||
document.addEventListener("keydown", function(event) {
|
||||
|
||||
if (!event.ctrlKey) return;
|
||||
|
Reference in New Issue
Block a user