diff --git a/aiserver.py b/aiserver.py index ef785313..1a53c344 100644 --- a/aiserver.py +++ b/aiserver.py @@ -3848,7 +3848,6 @@ def get_message(msg): emit( 'from_server', {'cmd': 'showfieldbudget', 'data': {"length": None, "max": None, "field": field}}, - broadcast=True ) return diff --git a/gensettings.py b/gensettings.py index 3839ff4e..4824ed27 100644 --- a/gensettings.py +++ b/gensettings.py @@ -274,6 +274,17 @@ gensettingstf = [ "default": 0, "tooltip": "Shows token selection probabilities. Does not work with more than one gens per action." }, + { + "uitype": "toggle", + "unit": "bool", + "label": "Show Field Budget", + "id": "setshowbudget", + "min": 0, + "max": 1, + "step": 1, + "default": 0, + "tooltip": "Shows token usage when typing in relevant text boxes. May lag slower devices." + }, ] gensettingsik =[{ diff --git a/static/application.js b/static/application.js index 54757912..06c426b4 100644 --- a/static/application.js +++ b/static/application.js @@ -241,8 +241,27 @@ function addSetting(ob) { if(ob.id == "setadventure"){ setadventure($(this).prop('checked')); } + }); } + + if (ob.id === "setshowbudget") { + $("#setshowbudget").on("change", function () { + for (const el of document.getElementsByClassName("input-token-usage")) { + if (this.checked) { + el.classList.remove("hidden"); + } else { + el.classList.add("hidden"); + } + } + }); + + if (!$("#input-token-usage")[0].checked) { + for (const el of document.getElementsByClassName("input-token-usage")) { + el.classList.add("hidden"); + } + } + } } function refreshTitle() { @@ -2165,6 +2184,9 @@ function interpolateRGB(color0, color1, t) { } function updateInputBudget(inputElement) { + let budgetElement = document.getElementById("setshowbudget"); + if (budgetElement && !budgetElement.checked) return; + let data = {"unencoded": inputElement.value, "field": inputElement.id}; if (inputElement.id === "anoteinput") { @@ -2182,7 +2204,6 @@ function registerTokenCounters() { let span = document.createElement("span"); span.classList.add("input-token-usage"); - span.innerText = "?/? Tokens"; el.appendChild(span); let inputElement = el.querySelector("input, textarea");