re-divorce entry active state from trigger strategy

704058ac36b1bf747a7df3a58f15802beabf9e53

RossAscends <124905043+RossAscends@users.noreply.github.com>

3 files changed, +55 -28Ignore whitespace
public/index.html+6 -3
@@ -5298,12 +5298,15 @@
52985298 <div class="world_entry">
52995299 <form class="world_entry_form wi-card-entry">
53005300 <div class="inline-drawer wide100p">
53015301 <div class="inline-drawer-toggle inline-drawer-header gap5px padding0">
53025302 <span class="drag-handle">&#9776;</span>
53035303 <div class="gap5px world_entry_thin_controls wide100p alignitemscenter">
53045304 <div class="inline-drawer-toggle fa-fw fa-solid fa-circle-chevron-down inline-drawer-icon down"></div>
5305+ <div class="fa-solid fa-toggle-on" name="entryKillSwitch"></div>
53055306 <div class="flex-container alignitemscenter wide100p">
5307+
53065308 <div class="WIEntryTitleAndStatus flex-container flex1 alignitemscenter">
5309+
53075310 <div class="flex-container flex1">
53085311 <textarea class="text_pole" rows="1" name="comment" maxlength="5000" data-i18n="[placeholder]Entry Title/Memo" placeholder="Entry Title/Memo"></textarea>
53095312 </div>
@@ -5312,7 +5315,7 @@
53125315 <option value="constant" title="Constant" data-i18n="[title]WI_Entry_Status_Constant">🔵</option>
53135316 <option value="normal" title="Normal" data-i18n="[title]WI_Entry_Status_Normal">🟢</option>
53145317 <option value="vectorized" title="Vectorized" data-i18n="[title]WI_Entry_Status_Vectorized">🔗</option>
53155318 <!--<option value="disabled" title="Disabled" data-i18n="[title]WI_Entry_Status_Disabled">❌</option>-->
53165319 </select>
53175320 </div>
53185321 <div class="WIEnteryHeaderControls flex-container">
public/scripts/templates/worldInfoKeywordHeaders.html+1 -1
@@ -1,6 +1,6 @@
11<div id="WIEntryHeaderTitlesPC" class="flex-container wide100p spaceBetween justifyCenter textAlignCenter" style="padding:0 4.5em;">
22 <small class="flex1" data-i18n="Title/Memo">Title/Memo</small>
33 <small style="width: calc(3.5em + 15px)" data-i18n="StatusStrategy">StatusStrategy</small>
44 <small style="width: calc(3.5em + 30px)" data-i18n="Position">Position</small>
55 <small style="width: calc(3.5em + 20px)" data-i18n="Depth">Depth</small>
66 <small style="width: calc(3.5em + 20px)" data-i18n="Order">Order</small>
public/scripts/world-info.js+48 -24
@@ -2859,21 +2859,7 @@ async function getWorldEntry(name, data, entry) {
28592859 //add UID above content box (less important doesn't need to be always visible)
28602860 template.find('.world_entry_form_uid_value').text(`(UID: ${entry.uid})`);
28612861
2862- // disable
2862+ //new tri-state selector for constant/normal/vectorized
2863- /*
2864- const disableInput = template.find('input[name="disable"]');
2865- disableInput.data("uid", entry.uid);
2866- disableInput.on("input", async function () {
2867- const uid = $(this).data("uid");
2868- const value = $(this).prop("checked");
2869- data.entries[uid].disable = value;
2870- setOriginalDataValue(data, uid, "enabled", !data.entries[uid].disable);
2871- await saveWorldInfo(name, data);
2872- });
2873- disableInput.prop("checked", entry.disable).trigger("input");
2874- */
2875-
2876- //new tri-state selector for constant/normal/disabled
28772863 const entryStateSelector = template.find('select[name="entryStateSelector"]');
28782864 entryStateSelector.data('uid', entry.uid);
28792865 entryStateSelector.on('click', function (event) {
@@ -2886,31 +2872,32 @@ async function getWorldEntry(name, data, entry) {
28862872 switch (value) {
28872873 case 'constant':
28882874 data.entries[uid].constant = true;
28892875 //data.entries[uid].disable = false;
28902876 data.entries[uid].vectorized = false;
28912877 setWIOriginalDataValue(data, uid, 'enabled', true);
28922878 setWIOriginalDataValue(data, uid, 'constant', true);
28932879 setWIOriginalDataValue(data, uid, 'extensions.vectorized', false);
28942880 //template.removeClass('disabledWIEntry');
28952881 break;
28962882 case 'normal':
28972883 data.entries[uid].constant = false;
28982884 //data.entries[uid].disable = false;
28992885 data.entries[uid].vectorized = false;
29002886 setWIOriginalDataValue(data, uid, 'enabled', true);
29012887 setWIOriginalDataValue(data, uid, 'constant', false);
29022888 setWIOriginalDataValue(data, uid, 'extensions.vectorized', false);
29032889 //template.removeClass('disabledWIEntry');
29042890 break;
29052891 case 'vectorized':
29062892 data.entries[uid].constant = false;
29072893 //data.entries[uid].disable = false;
29082894 data.entries[uid].vectorized = true;
29092895 setWIOriginalDataValue(data, uid, 'enabled', true);
29102896 setWIOriginalDataValue(data, uid, 'constant', false);
29112897 setWIOriginalDataValue(data, uid, 'extensions.vectorized', true);
29122898 //template.removeClass('disabledWIEntry');
29132899 break;
2900+ /*
29142901 case 'disabled':
29152902 data.entries[uid].constant = false;
29162903 data.entries[uid].disable = true;
@@ -2920,15 +2907,38 @@ async function getWorldEntry(name, data, entry) {
29202907 setWIOriginalDataValue(data, uid, 'extensions.vectorized', false);
29212908 template.addClass('disabledWIEntry');
29222909 break;
2910+ */
2911+ }
2912+ await saveWorldInfo(name, data);
2913+
2914+ });
2915+
2916+ const entryKillSwitch = template.find('div[name="entryKillSwitch"]');
2917+ entryKillSwitch.data('uid', entry.uid);
2918+ entryKillSwitch.on('click', async function (event) {
2919+ event.stopPropagation();
2920+ const uid = entry.uid;
2921+ data.entries[uid].disable = !data.entries[uid].disable;
2922+ let isActive = data.entries[uid].disable;
2923+ setWIOriginalDataValue(data, uid, 'enabled', isActive);
2924+ if (isActive) {
2925+ template.removeClass('disabledWIEntry');
2926+ entryKillSwitch.removeClass('fa-toggle-off');
2927+ entryKillSwitch.addClass('fa-toggle-on');
2928+ } else {
2929+ template.addClass('disabledWIEntry');
2930+ entryKillSwitch.addClass('fa-toggle-off');
2931+ entryKillSwitch.removeClass('fa-toggle-on');
29232932 }
29242933 await saveWorldInfo(name, data);
29252934
29262935 });
29272936
29282937 const entryState = function () {
29292938 /* if (entry.disable === true) {
29302939 return 'disabled';
2931- } else if (entry.constant === true) {
2940+ } else */
2941+ if (entry.constant === true) {
29322942 return 'constant';
29332943 } else if (entry.vectorized === true) {
29342944 return 'vectorized';
@@ -2936,6 +2946,20 @@ async function getWorldEntry(name, data, entry) {
29362946 return 'normal';
29372947 }
29382948 };
2949+
2950+ const isActive = !entry.disable;
2951+ if (isActive) {
2952+ console.warn(`${entry.uid} is active`);
2953+ template.removeClass('disabledWIEntry');
2954+ entryKillSwitch.removeClass('fa-toggle-off');
2955+ entryKillSwitch.addClass('fa-toggle-on');
2956+ } else {
2957+ console.warn(`${entry.uid} is not active`);
2958+ template.addClass('disabledWIEntry');
2959+ entryKillSwitch.addClass('fa-toggle-off');
2960+ entryKillSwitch.removeClass('fa-toggle-on');
2961+ }
2962+
29392963 template
29402964 .find(`select[name="entryStateSelector"] option[value=${entryState()}]`)
29412965 .prop('selected', true)