Tags: marcelofmatos/phpnetmap
Tags
fix: selected port border stays orange even when it has a connection Reported: clicking port 1 (no connection) showed the expected orange selected border, but clicking port 2 (has a registered connection) showed blue instead. .hover and .hasConnection are both single-class selectors with border-color:#0000cf/orange !important — tied on specificity, so source order decided the winner, and .hasConnection happened to come later in the file. .port.hover (two classes) reliably outranks .hasConnection regardless of order. .hover is only ever applied to .port elements (loadPortStatus() in _ports.php), so scoping it to .port.hover loses no coverage.
fix: dark host-label text on the map's yellow mouseover highlight Reported live: hovering a host on the map shows a yellow background box (.infobox in map/_view.php) behind its label, but the label text stayed the theme's normal (light, in dark mode) color — illegible on yellow. text.host-label:hover in CSS was never a reliable trigger for this: the mouseover/mouseout that shows/hides the yellow box is bound to the whole g.host group in JS, but a CSS :hover pseudo-class on the tiny text element itself only fires while the pointer sits exactly over its glyph outlines. Replaced it with a class toggled from the same JS handlers that already show/hide the yellow box, so the two states always match, and set fill:#000 — a fixed dark color, not a var(--bs-*) token, since this text sits on a fixed yellow background regardless of theme.
fix: right-align the port status legend (refresh checkbox + swatches) Same root cause as the close-button fix: float:right on #info was a no-op because its parent .card is a BS5 flex container (display:flex; flex-direction:column), and floats don't apply to flex items. text-align:right achieves the same visual result by aligning #info's own inline content within its full-width box instead.
fix: push the port panel's close button to the far right float:right was a no-op — .nav-pills became a flex container under BS5 (display:flex), and floats don't apply to flex items, so the button just sat in normal flex flow right next to the port name. margin-left:auto is the flexbox equivalent of "push to the end."
fix: match the host filter box's height to the list rows below it #hostfilter had no explicit height, just vertical padding — its computed height didn't line up with #listhosts a's fixed 30px, so it stood noticeably taller than the host rows right under it.
fix: dark-mode contrast on the map's host search/filter list Reported live on columba: the "Hosts" search box and list next to the network map (#menuhosts/#listhosts, host/_view.php) stayed a hardcoded light-mode look — a glaring white search input and #F4F4F4 row strips cutting through the dark theme's page background. The search icon (search.png, a fixed dark-gray glyph) would have gone invisible on a themed dark input, so it's replaced with an inline SVG using a fixed mid-gray stroke that reads reasonably against either a near-white or near-black fill, rather than needing a variant per theme.
fix: round the navbar logo mark's corners The favicon.svg <img> rendered with visible square white corners around the rounded gradient shape at 28px in the navbar. Clipping the <img> itself with border-radius is reliable regardless of how the browser composites the SVG's own internal transparency, matching the mark's ~29% corner rounding (rx 7 on a 24px viewBox).
fix: stop ConfigForm::load() crashing on obsolete params.ini keys Reported live on columba (Error 500: Property "ConfigForm.mcpMode" is not defined) after upgrading from an old pre-per-token-mode release. load() assigned every key from the persisted params.ini straight onto $this in a blind loop; CComponent::__set() throws on any key that isn't a declared property instead of ignoring it, so a leftover mcpMode line from before that setting moved to per-token mode broke every request that instantiates ConfigForm — not just /config, but McpController::actionIndex() too, i.e. the MCP server itself. property_exists() now gates the assignment, so an upgrading instance's existing params.ini just has its obsolete keys silently ignored — no manual edit needed on the deployed file.
feat: add a real logo mark and favicon The app had no favicon at all and the navbar brand was plain text. Added an SVG mark (gradient violet-to-cyan rounded square with a network-node glyph, matching the one just designed for the GitHub Pages site) as both the browser favicon and the navbar logo, so the brand is consistent across the app and its marketing page. SVG favicon only (no PNG/ICO fallback) — every currently supported browser handles image/svg+xml favicons, and it scales cleanly without needing multiple raster sizes.
fix: flatten the CRUD grids' Advanced Search toggle, drop the nested … …card The card/card-header/card-body wrapper around the collapsible search form nested a bordered box inside the page's own outer card, reading as a box-in-a-box next to the grid it filters, which sits flat with no border of its own. The .card-body .row form styling in layouts/main.php already matches on any ancestor with that class, and the page's outer card-body already qualifies, so dropping the wrapper needed no other CSS changes — the search fields keep their block-label/full-width styling with nothing nested.
PreviousNext