diff --git a/client/public/images/buttons/edit.svg b/client/public/images/buttons/edit.svg new file mode 100644 index 00000000..5b51c67c --- /dev/null +++ b/client/public/images/buttons/edit.svg @@ -0,0 +1,3 @@ + diff --git a/client/public/stylesheets/layout.css b/client/public/stylesheets/layout.css index b75c8f16..1bcc28fa 100644 --- a/client/public/stylesheets/layout.css +++ b/client/public/stylesheets/layout.css @@ -57,6 +57,32 @@ body.feature-forceShowUnitControlPanel #unit-control-panel { position: static; } + +.ol-button-box { + column-gap: 6px; + display:flex; + flex-direction: row; + flex-wrap: wrap; + margin:5px 0; + row-gap: 5px; +} + +.ol-button-box button { + border:1px solid var( --accent-light-blue ); + color: var( --accent-light-blue ); +} + +.ol-button-box button:first-of-type, .ol-button-box button.selected { + border-color: white; + background-color: white; + color: var( --background-steel ); +} + +.ol-button-box button:after { + content: "[]"; +} + + #connection-status-panel { bottom: 20px; height: 30px; diff --git a/client/public/stylesheets/olympus.css b/client/public/stylesheets/olympus.css index d81d1601..f9259b27 100644 --- a/client/public/stylesheets/olympus.css +++ b/client/public/stylesheets/olympus.css @@ -82,6 +82,10 @@ button[disabled="disabled"] { width:fit-content; } +.ol-panel-padding-lg { + padding:24px 30px; +} + .ol-select { color: var( --nav-text ); } @@ -228,7 +232,6 @@ button[disabled="disabled"] { } .ol-panel-board h1, .ol-panel-board h2 { - font-size:18px; font-weight: var( --font-weight-bolder ); margin: 0; padding:0 0 5px 0; @@ -238,15 +241,31 @@ button[disabled="disabled"] { font-size:14px; } -h1, -h2, -h3, -h4, -h5, -h6 { +h1, h2, h3, h4, h5, h6 { margin: 0px; } +h1 { + font-size:36px; + font-weight: 800; +} + +h2 { + font-size:24px; + font-weight: bold; +} + +h3 { + font-size:18px; + font-weight: bold; +} + +h4 { + font-size:14px; + font-weight: normal; +} + + nav.ol-panel { column-gap: 20px; display:flex; @@ -266,10 +285,6 @@ nav.ol-panel > :last-child { flex-wrap:nowrap; } -.ol-panel .ol-group button { - border:1px solid white; -} - .ol-panel .ol-group { border-radius: var( --border-radius-sm ); } @@ -437,12 +452,54 @@ nav.ol-panel > :last-child { font-weight: var(--font-weight-bolder); } + + #unit-info-panel { display: flex; flex-direction: column; } +#unit-info-panel #unit-identification { + align-items: center; + display:flex; + margin-bottom:11px; +} +#unit-info-panel #unit-identification .unit { + height:28px; + margin-right:10px; + width:28px; +} + +#unit-info-panel #unit-identification .unit .unit-marker { + background-size: 28px 28px; + height:28px; + width:28px; +} + +#unit-info-panel #unit-identification .unit .unit-short-label { + font-size:12px; +} + +#unit-info-panel #unit-identification #unit-name { + background-color:transparent; + border:none; + color:white; + font-size:18px; + font-weight: var( --font-weight-bolder ); + outline:none; + overflow: hidden; + white-space: nowrap; + width: 130px; +} + +#edit-unit-name { + background-image: url( "/images/buttons/edit.svg" ); + background-repeat: no-repeat; + height:14px; + margin-left:10px; + width:15px; +} diff --git a/client/public/stylesheets/units.css b/client/public/stylesheets/units.css index 7753f574..9d762ce6 100644 --- a/client/public/stylesheets/units.css +++ b/client/public/stylesheets/units.css @@ -15,12 +15,15 @@ div.unit { align-items: center; - cursor:pointer; display:flex; justify-content: center; position:relative; } +div.unit:not( .no-function ) { + cursor:pointer; +} + [data-hide-aircraft] div.unit-air, [data-hide-ground] div.unit-ground, [data-hide-sam] div.unit-sam, @@ -117,7 +120,7 @@ div.unit-air .unit-marker { width: var( --unit-air-marker-width ); } -div.unit-air:hover .unit-marker, div.unit-air[data-is-selected="true"] .unit-marker { +div.unit-air:not( .no-function ):hover .unit-marker, div.unit-air[data-is-selected="true"] .unit-marker { background-image: var( --unit-air-marker-neutral-hover-url ); } @@ -126,7 +129,7 @@ div.unit-air[data-coalition="blue"] .unit-marker { background-image: var( --unit-air-marker-blue-url ); } -div.unit-air[data-coalition="blue"]:hover .unit-marker, div.unit-air[data-coalition="blue"][data-is-selected="true"] .unit-marker { +div.unit-air[data-coalition="blue"]:not( .no-function ):hover .unit-marker, div.unit-air[data-coalition="blue"][data-is-selected="true"] .unit-marker { background-image: var( --unit-air-marker-blue-hover-url ); } @@ -135,7 +138,7 @@ div.unit-air[data-coalition="red"] .unit-marker { background-image: var( --unit-air-marker-red-url ); } -div.unit-air[data-coalition="red"]:hover .unit-marker, div.unit-air[data-coalition="red"][data-is-selected="true"] .unit-marker { +div.unit-air[data-coalition="red"]:not( .no-function ):hover .unit-marker, div.unit-air[data-coalition="red"][data-is-selected="true"] .unit-marker { background-image: var( --unit-air-marker-red-hover-url ); } @@ -218,6 +221,7 @@ div.unit-building[data-coalition="red"] .unit-marker { div.unit .unit-short-label { + color: var( --secondary-gunmetal-grey ); font-size: var(--unit-font-size); font-weight: var(--unit-font-weight); position: absolute; diff --git a/client/src/index.ts b/client/src/index.ts index a0779b9d..aa3f717d 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -101,6 +101,31 @@ function setup() { }); + + const unitName = document.getElementById( "unit-name" ); + + if ( unitName instanceof HTMLInputElement ) { + + unitName.addEventListener( "change", ev => { + unitName.setAttribute( "disabled", "true" ); + unitName.setAttribute( "readonly", "true" ); + + // Do something with this: + console.log( unitName.value ); + }); + + + document.addEventListener( "editUnitName", ev => { + + unitName.removeAttribute( "disabled" ); + unitName.removeAttribute( "readonly" ); + unitName.focus(); + + }); + + } + + document.addEventListener( "toggleCoalitionVisibility", ( ev:CustomEventInit ) => { document.body.toggleAttribute( "data-hide-" + ev.detail.coalition ); diff --git a/client/src/panels/unitcontrolpanel.ts b/client/src/panels/unitcontrolpanel.ts index a8d49fa0..191d11d1 100644 --- a/client/src/panels/unitcontrolpanel.ts +++ b/client/src/panels/unitcontrolpanel.ts @@ -25,15 +25,15 @@ export class UnitControlPanel extends Panel { /* Option buttons */ this.#optionButtons["ROE"] = ROEs.map((option: string) => { var button = document.createElement("button"); - button.innerText = option; - button.addEventListener("click", () => getUnitsManager().selectedUnitsSetROE(button.value)); + button.title = option; + button.addEventListener("click", () => getUnitsManager().selectedUnitsSetROE(button.title)); return button; }) this.#optionButtons["reactionToThreat"] = reactionsToThreat.map((option: string) => { var button = document.createElement("button"); - button.innerText = option; - button.addEventListener("click", () => getUnitsManager().selectedUnitsSetROE(button.value)); + button.title = option; + button.addEventListener("click", () => getUnitsManager().selectedUnitsSetROE(button.title)); return button; }) diff --git a/client/views/uikit.ejs b/client/views/uikit.ejs index fd85f549..648b3f31 100644 --- a/client/views/uikit.ejs +++ b/client/views/uikit.ejs @@ -104,7 +104,7 @@