printers: printer installer map + install-batch endpoint

Rebuilds the classic printer-installer feature: pick printers on the shopfloor
map, download a .bat that installs them.

Backend (asset_routes.py): GET /api/printers/install-batch?printerids=1,2,3
returns a .bat attachment. Groups printers the way the classic installprinter.asp
did - HP/Xerox via the universal PrinterInstaller.exe /PRINTER="a,b,c", printers
with a .exe installpath via that installer /SILENT, and anything else (no
installpath, or a .zip) listed for manual install instead of being run blindly.
Download URLs derive from the site_base_url setting + the IIS-served /installers
folder (no hardcoded host). Reuses the existing install-list query shape.

Frontend: PrinterInstallerMap.vue - full-screen Leaflet shopfloor map (reuses
mapConfig), a marker per network printer at its mapx/mapy, click to toggle-select,
sidebar with the selection + an Install button that downloads the batch. Toplevel
route /printer-installer, printersApi.installList(), and an Installer Map button
on the printers list.

Tests: install-batch grouping (universal/specific/manual) + requires-ids.
This commit is contained in:
cproudlock
2026-07-29 12:38:51 -04:00
parent 1ee9328bf9
commit 0d40780f53
6 changed files with 503 additions and 2 deletions

View File

@@ -66,6 +66,12 @@ export default [
]
export const toplevel = [
{
path: '/printer-installer',
name: 'printer-installer-map',
component: () => import('./views/PrinterInstallerMap.vue'),
meta: { requiresAuth: true, plugin: 'printers' }
},
{
path: '/print/printer-qr',
name: 'print-printer-qr-batch',