Fork PrinterInstaller as PrinterInstallerMap (map UI variant)

Edge policy now blocks .bat downloads and unsigned .exe runs, breaking
the printerinstallermap.asp -> installprinter.asp -> .bat -> EXE flow.

This fork replaces the web map with an in-installer wizard page so the
operator never touches the browser. Same drivers, same install logic,
same /PRINTER= silent path.

Initial commit is a stub: full copy of PrinterInstaller/ with .iss
header rewritten for a distinct AppId, AppName, and OutputBaseFilename
so the two installers can coexist on the same PC. Map page itself is
not yet implemented; tracked work is listed in PrinterInstallerMap/README.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-04-30 07:27:51 -04:00
parent 2ed8f9da77
commit ce0abee262
555 changed files with 25944 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
# WJDT Printer Installer (Map UI)
Forked from `PrinterInstaller/` on branch `feature/printer-map`.
## Why a fork
The web flow at `printerinstallermap.asp` -> `installprinter.asp` (which downloads a per-selection `.bat` that invokes the original `PrinterInstaller.exe /PRINTER=...`) is blocked by current Edge policy: `.bat` downloads disallowed, unsigned `.exe` runs disallowed.
This variant replaces the web map UI with an in-installer wizard page so the operator never touches a browser. Same drivers, same install logic, same `/PRINTER=` silent path - all that changes is the selection UX.
## What's new vs PrinterInstaller 2.0
- **New wizard page**: site-map bitmap with clickable printer markers placed at `printers.mapleft, maptop` coords from ShopDB. Click toggles selection; selections feed the existing checkbox page.
- **Bundled site map**: `sitemap2025-dark.png` (2550 x 3300, sourced from `shopdb/images/`) baked into `[Files]`, extracted to `{tmp}` at install start.
- **API call extended**: `api_printers.asp` now returns `mapleft, maptop` per row (additive; older clients ignore).
- New `AppId` GUID, new `OutputBaseFilename=PrinterInstallerMap`, new `AppName` so the two installers coexist on the same PC without UninstallString collision.
## What's unchanged
- Driver bundle (HP UPD, Xerox UPD, Brother MFC, HID FARGO).
- `Install-PrinterDriver` + `Install-NetworkPrinter` install logic.
- `/PRINTER="..."` and `/VERYSILENT /NORESTART` silent-install path - existing bat-file deployments would still work if pointed at this EXE binary, but the whole point of the fork is to retire that flow.
- ShopDB API base URL (`http://192.168.122.151:8080/api_printers.asp`).
- Custom branding (`gea-logo.ico`, `patrick.bmp`, `patrick-sm.bmp`).
## Status
Stub. `.iss` header renamed; map wizard page not yet implemented. Tracked work:
- [ ] Extend `api_printers.asp` to return `mapleft, maptop`.
- [ ] Add `sitemap2025-dark.png` to `[Files]`.
- [ ] Implement `MapPage` Pascal procedure (TScrollBox + TImage + click-to-toggle hotspots).
- [ ] Wire selected printer IDs into the existing `SelectedPrinters` array used by the checkbox page.
- [ ] Code-signing cert (separate task - see project memory).
- [ ] Rebuild + sign + bake into PXE image.
## Build / sign / deploy
Same as `PrinterInstaller/`. See `../PrinterInstaller/README.md` for the build matrix.