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

View File

@ -3,6 +3,7 @@ export interface FeatureSwitchInterface {
"label": string,
"masterSwitch": boolean, // on/off regardless of user preference
"name": string,
"onEnabled"?: CallableFunction,
"options"?: object,
"removeArtifactsIfDisabled"?: boolean
}
@ -15,6 +16,7 @@ class FeatureSwitch {
label;
masterSwitch;
name;
onEnabled;
removeArtifactsIfDisabled = true;
// Self-set
@ -27,6 +29,7 @@ class FeatureSwitch {
this.label = config.label;
this.masterSwitch = config.masterSwitch;
this.name = config.name;
this.onEnabled = config.onEnabled;
this.userPreference = this.getUserPreference();
@ -77,6 +80,16 @@ export class FeatureSwitches {
"label": "ATC",
"masterSwitch": true,
"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() {
this.#removeArtifacts();
this.#testSwitches();
this.savePreferences();
@ -98,10 +111,20 @@ export class FeatureSwitches {
}
#removeArtifacts() {
#testSwitches() {
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 => {