Added feature switch to force showing of unit control panel.

This commit is contained in:
PeekabooSteam
2023-03-08 09:00:46 +00:00
parent afbdcfee9b
commit 931b1ea537
2 changed files with 42 additions and 15 deletions

View File

@@ -25,8 +25,8 @@ body {
#map-container { #map-container {
height: 100%; height: 100%;
width: 100%;
min-width: 820px; min-width: 820px;
width: 100%;
} }
#primary-toolbar { #primary-toolbar {
@@ -41,33 +41,37 @@ body {
} }
#unit-control-panel { #unit-control-panel {
height: fit-content;
left: 10px;
position: absolute; position: absolute;
top: 80px; top: 80px;
height: fit-content;
width: 250px; width: 250px;
left: 10px;
z-index: 1000; z-index: 1000;
} }
body.forceShowUnitControlPanel #unit-control-panel {
display:block !important;
}
.content #unit-control-panel { .content #unit-control-panel {
position: static; position: static;
} }
#connection-status-panel { #connection-status-panel {
position: absolute;
height: 30px;
width: 160px;
bottom: 20px; bottom: 20px;
height: 30px;
position: absolute;
right: 10px; right: 10px;
width: 160px;
z-index: 1000; z-index: 1000;
} }
#mouse-info-panel { #mouse-info-panel {
position: absolute;
height: fit-content;
width: 160px;
bottom: 60px; bottom: 60px;
height: fit-content;
position: absolute;
right: 10px; right: 10px;
width: 160px;
z-index: 1000; z-index: 1000;
} }
@@ -78,10 +82,10 @@ body {
#log-panel { #log-panel {
position: absolute;
height: 200px; height: 200px;
width: 400px;
top: 60px;
left: 10px; left: 10px;
position: absolute;
top: 60px;
width: 400px;
z-index: 1000; z-index: 1000;
} }

View File

@@ -3,6 +3,7 @@ export interface FeatureSwitchInterface {
"label": string, "label": string,
"masterSwitch": boolean, // on/off regardless of user preference "masterSwitch": boolean, // on/off regardless of user preference
"name": string, "name": string,
"onEnabled"?: CallableFunction,
"options"?: object, "options"?: object,
"removeArtifactsIfDisabled"?: boolean "removeArtifactsIfDisabled"?: boolean
} }
@@ -15,6 +16,7 @@ class FeatureSwitch {
label; label;
masterSwitch; masterSwitch;
name; name;
onEnabled;
removeArtifactsIfDisabled = true; removeArtifactsIfDisabled = true;
// Self-set // Self-set
@@ -27,6 +29,7 @@ class FeatureSwitch {
this.label = config.label; this.label = config.label;
this.masterSwitch = config.masterSwitch; this.masterSwitch = config.masterSwitch;
this.name = config.name; this.name = config.name;
this.onEnabled = config.onEnabled;
this.userPreference = this.getUserPreference(); this.userPreference = this.getUserPreference();
@@ -77,6 +80,16 @@ export class FeatureSwitches {
"label": "ATC", "label": "ATC",
"masterSwitch": true, "masterSwitch": true,
"name": "atc" "name": "atc"
}),
new FeatureSwitch({
"defaultEnabled": false,
"label": "Force show unit control panel",
"masterSwitch": true,
"name": "forceShowUnitControlPanel",
"onEnabled": function() {
document.body.classList.add( "forceShowUnitControlPanel" );
}
}) })
]; ];
@@ -84,7 +97,7 @@ export class FeatureSwitches {
constructor() { constructor() {
this.#removeArtifacts(); this.#testSwitches();
this.savePreferences(); this.savePreferences();
@@ -98,10 +111,20 @@ export class FeatureSwitches {
} }
#removeArtifacts() { #testSwitches() {
for ( const featureSwitch of this.#featureSwitches ) { for ( const featureSwitch of this.#featureSwitches ) {
if ( !featureSwitch.isEnabled() ) {
if ( featureSwitch.isEnabled() ) {
if ( typeof featureSwitch.onEnabled === "function" ) {
featureSwitch.onEnabled();
}
} else {
document.querySelectorAll( "[data-feature-switch='" + featureSwitch.name + "']" ).forEach( el => { document.querySelectorAll( "[data-feature-switch='" + featureSwitch.name + "']" ).forEach( el => {