re-divorce entry active state from trigger strategy
| @@ -5298,12 +5298,15 @@ | |||
| 5298 | <div class="world_entry"> | 5298 | <div class="world_entry"> |
| 5299 | <form class="world_entry_form wi-card-entry"> | 5299 | <form class="world_entry_form wi-card-entry"> |
| 5300 | <div class="inline-drawer wide100p"> | 5300 | <div class="inline-drawer wide100p"> |
| 5301 | <div class="inline-drawer-toggle inline-drawer-header gap5px padding0"> | 5301 | <div class="inline-drawer-header gap5px padding0"> |
| 5302 | <span class="drag-handle">☰</span> | 5302 | <span class="drag-handle">☰</span> |
| 5303 | <div class="gap5px world_entry_thin_controls wide100p alignitemscenter"> | 5303 | <div class="gap5px world_entry_thin_controls wide100p alignitemscenter"> |
| 5304 | <div class="fa-fw fa-solid fa-circle-chevron-down inline-drawer-icon down"></div> | 5304 | <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> | ||
| 5305 | <div class="flex-container alignitemscenter wide100p"> | 5306 | <div class="flex-container alignitemscenter wide100p"> |
| 5307 | |||
| 5306 | <div class="WIEntryTitleAndStatus flex-container flex1 alignitemscenter"> | 5308 | <div class="WIEntryTitleAndStatus flex-container flex1 alignitemscenter"> |
| 5309 | |||
| 5307 | <div class="flex-container flex1"> | 5310 | <div class="flex-container flex1"> |
| 5308 | <textarea class="text_pole" rows="1" name="comment" maxlength="5000" data-i18n="[placeholder]Entry Title/Memo" placeholder="Entry Title/Memo"></textarea> | 5311 | <textarea class="text_pole" rows="1" name="comment" maxlength="5000" data-i18n="[placeholder]Entry Title/Memo" placeholder="Entry Title/Memo"></textarea> |
| 5309 | </div> | 5312 | </div> |
| @@ -5312,7 +5315,7 @@ | |||
| 5312 | <option value="constant" title="Constant" data-i18n="[title]WI_Entry_Status_Constant">π΅</option> | 5315 | <option value="constant" title="Constant" data-i18n="[title]WI_Entry_Status_Constant">π΅</option> |
| 5313 | <option value="normal" title="Normal" data-i18n="[title]WI_Entry_Status_Normal">π’</option> | 5316 | <option value="normal" title="Normal" data-i18n="[title]WI_Entry_Status_Normal">π’</option> |
| 5314 | <option value="vectorized" title="Vectorized" data-i18n="[title]WI_Entry_Status_Vectorized">π</option> | 5317 | <option value="vectorized" title="Vectorized" data-i18n="[title]WI_Entry_Status_Vectorized">π</option> |
| 5315 | <option value="disabled" title="Disabled" data-i18n="[title]WI_Entry_Status_Disabled">β</option> | 5318 | <!--<option value="disabled" title="Disabled" data-i18n="[title]WI_Entry_Status_Disabled">β</option>--> |
| 5316 | </select> | 5319 | </select> |
| 5317 | </div> | 5320 | </div> |
| 5318 | <div class="WIEnteryHeaderControls flex-container"> | 5321 | <div class="WIEnteryHeaderControls flex-container"> |
| @@ -1,6 +1,6 @@ | |||
| 1 | <div id="WIEntryHeaderTitlesPC" class="flex-container wide100p spaceBetween justifyCenter textAlignCenter" style="padding:0 4.5em;"> | 1 | <div id="WIEntryHeaderTitlesPC" class="flex-container wide100p spaceBetween justifyCenter textAlignCenter" style="padding:0 4.5em;"> |
| 2 | <small class="flex1" data-i18n="Title/Memo">Title/Memo</small> | 2 | <small class="flex1" data-i18n="Title/Memo">Title/Memo</small> |
| 3 | <small style="width: calc(3.5em + 15px)" data-i18n="Status">Status</small> | 3 | <small style="width: calc(3.5em + 15px)" data-i18n="Strategy">Strategy</small> |
| 4 | <small style="width: calc(3.5em + 30px)" data-i18n="Position">Position</small> | 4 | <small style="width: calc(3.5em + 30px)" data-i18n="Position">Position</small> |
| 5 | <small style="width: calc(3.5em + 20px)" data-i18n="Depth">Depth</small> | 5 | <small style="width: calc(3.5em + 20px)" data-i18n="Depth">Depth</small> |
| 6 | <small style="width: calc(3.5em + 20px)" data-i18n="Order">Order</small> | 6 | <small style="width: calc(3.5em + 20px)" data-i18n="Order">Order</small> |
| @@ -2859,21 +2859,7 @@ async function getWorldEntry(name, data, entry) { | |||
| 2859 | //add UID above content box (less important doesn't need to be always visible) | 2859 | //add UID above content box (less important doesn't need to be always visible) |
| 2860 | template.find('.world_entry_form_uid_value').text(`(UID: ${entry.uid})`); | 2860 | template.find('.world_entry_form_uid_value').text(`(UID: ${entry.uid})`); |
| 2861 | 2861 | ||
| 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 | ||
| 2877 | const entryStateSelector = template.find('select[name="entryStateSelector"]'); | 2863 | const entryStateSelector = template.find('select[name="entryStateSelector"]'); |
| 2878 | entryStateSelector.data('uid', entry.uid); | 2864 | entryStateSelector.data('uid', entry.uid); |
| 2879 | entryStateSelector.on('click', function (event) { | 2865 | entryStateSelector.on('click', function (event) { |
| @@ -2886,31 +2872,32 @@ async function getWorldEntry(name, data, entry) { | |||
| 2886 | switch (value) { | 2872 | switch (value) { |
| 2887 | case 'constant': | 2873 | case 'constant': |
| 2888 | data.entries[uid].constant = true; | 2874 | data.entries[uid].constant = true; |
| 2889 | data.entries[uid].disable = false; | 2875 | //data.entries[uid].disable = false; |
| 2890 | data.entries[uid].vectorized = false; | 2876 | data.entries[uid].vectorized = false; |
| 2891 | setWIOriginalDataValue(data, uid, 'enabled', true); | 2877 | setWIOriginalDataValue(data, uid, 'enabled', true); |
| 2892 | setWIOriginalDataValue(data, uid, 'constant', true); | 2878 | setWIOriginalDataValue(data, uid, 'constant', true); |
| 2893 | setWIOriginalDataValue(data, uid, 'extensions.vectorized', false); | 2879 | setWIOriginalDataValue(data, uid, 'extensions.vectorized', false); |
| 2894 | template.removeClass('disabledWIEntry'); | 2880 | //template.removeClass('disabledWIEntry'); |
| 2895 | break; | 2881 | break; |
| 2896 | case 'normal': | 2882 | case 'normal': |
| 2897 | data.entries[uid].constant = false; | 2883 | data.entries[uid].constant = false; |
| 2898 | data.entries[uid].disable = false; | 2884 | //data.entries[uid].disable = false; |
| 2899 | data.entries[uid].vectorized = false; | 2885 | data.entries[uid].vectorized = false; |
| 2900 | setWIOriginalDataValue(data, uid, 'enabled', true); | 2886 | setWIOriginalDataValue(data, uid, 'enabled', true); |
| 2901 | setWIOriginalDataValue(data, uid, 'constant', false); | 2887 | setWIOriginalDataValue(data, uid, 'constant', false); |
| 2902 | setWIOriginalDataValue(data, uid, 'extensions.vectorized', false); | 2888 | setWIOriginalDataValue(data, uid, 'extensions.vectorized', false); |
| 2903 | template.removeClass('disabledWIEntry'); | 2889 | //template.removeClass('disabledWIEntry'); |
| 2904 | break; | 2890 | break; |
| 2905 | case 'vectorized': | 2891 | case 'vectorized': |
| 2906 | data.entries[uid].constant = false; | 2892 | data.entries[uid].constant = false; |
| 2907 | data.entries[uid].disable = false; | 2893 | //data.entries[uid].disable = false; |
| 2908 | data.entries[uid].vectorized = true; | 2894 | data.entries[uid].vectorized = true; |
| 2909 | setWIOriginalDataValue(data, uid, 'enabled', true); | 2895 | setWIOriginalDataValue(data, uid, 'enabled', true); |
| 2910 | setWIOriginalDataValue(data, uid, 'constant', false); | 2896 | setWIOriginalDataValue(data, uid, 'constant', false); |
| 2911 | setWIOriginalDataValue(data, uid, 'extensions.vectorized', true); | 2897 | setWIOriginalDataValue(data, uid, 'extensions.vectorized', true); |
| 2912 | template.removeClass('disabledWIEntry'); | 2898 | //template.removeClass('disabledWIEntry'); |
| 2913 | break; | 2899 | break; |
| 2900 | /* | ||
| 2914 | case 'disabled': | 2901 | case 'disabled': |
| 2915 | data.entries[uid].constant = false; | 2902 | data.entries[uid].constant = false; |
| 2916 | data.entries[uid].disable = true; | 2903 | data.entries[uid].disable = true; |
| @@ -2920,15 +2907,38 @@ async function getWorldEntry(name, data, entry) { | |||
| 2920 | setWIOriginalDataValue(data, uid, 'extensions.vectorized', false); | 2907 | setWIOriginalDataValue(data, uid, 'extensions.vectorized', false); |
| 2921 | template.addClass('disabledWIEntry'); | 2908 | template.addClass('disabledWIEntry'); |
| 2922 | break; | 2909 | 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'); | ||
| 2923 | } | 2932 | } |
| 2924 | await saveWorldInfo(name, data); | 2933 | await saveWorldInfo(name, data); |
| 2925 | 2934 | ||
| 2926 | }); | 2935 | }); |
| 2927 | 2936 | ||
| 2928 | const entryState = function () { | 2937 | const entryState = function () { |
| 2929 | if (entry.disable === true) { | 2938 | /* if (entry.disable === true) { |
| 2930 | return 'disabled'; | 2939 | return 'disabled'; |
| 2931 | } else if (entry.constant === true) { | 2940 | } else */ |
| 2941 | if (entry.constant === true) { | ||
| 2932 | return 'constant'; | 2942 | return 'constant'; |
| 2933 | } else if (entry.vectorized === true) { | 2943 | } else if (entry.vectorized === true) { |
| 2934 | return 'vectorized'; | 2944 | return 'vectorized'; |
| @@ -2936,6 +2946,20 @@ async function getWorldEntry(name, data, entry) { | |||
| 2936 | return 'normal'; | 2946 | return 'normal'; |
| 2937 | } | 2947 | } |
| 2938 | }; | 2948 | }; |
| 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 | |||
| 2939 | template | 2963 | template |
| 2940 | .find(`select[name="entryStateSelector"] option[value=${entryState()}]`) | 2964 | .find(`select[name="entryStateSelector"] option[value=${entryState()}]`) |
| 2941 | .prop('selected', true) | 2965 | .prop('selected', true) |