+ {% if request.state.ephemeral_session %} + {# COOKIE_SECURE=false: the owner key is memory-only, so the session + dies with the browser window. Say it before work is lost. #} +
+ {{ ico.i('key', 16) }} +

This session lasts only while this browser stays open — your printers and configs are saved, but the link to them is lost when you close it. Download your backup key to keep them.

+ Download my backup key +
+ {% endif %} {% if request.state.is_new_owner %}
-

Keep your printers?

-

Your printers, configs, and groups are private to this browser - (drivers stay shared with everyone). If you clear your cookies - without a backup key, they're gone for good.

- +
+

Keep your printers?

+
+
+

Your printers, configs, and clients are private to this browser — + drivers stay shared with everyone. Clear your cookies without a backup + key and they are gone for good.

+ {% if request.state.ephemeral_session %} +

This server runs without HTTPS, so this session is + kept in memory only: closing the browser ends it. The backup key is the + only way back in.

+ {% endif %} +
+
+ + Download backup key +
{% endif %} diff --git a/imptune/templates/client_detail.html b/imptune/templates/client_detail.html index 95a55f6..2430074 100644 --- a/imptune/templates/client_detail.html +++ b/imptune/templates/client_detail.html @@ -1,11 +1,29 @@ {% extends "base.html" %} +{% import "partials/icons.html" as ico %} + +{% block head_title %}{{ client.name }} · ImpTune{% endblock %} +{% block crumb %} + + {{ ico.i('back', 12) }}Clients + +{% endblock %} +{% block page_title %}{{ client.name }}{% endblock %} + +{% block page_actions %} +{{ ico.i('plus') }}Add printer +{% endblock %} {% block content %} -

{{ client.name }}

-

← All Clients

+
+

Printers

+ + {% if printer_count %} + {{ ico.i('check', 12) }}{{ ready_count }} Ready + {% if printer_count - ready_count %} + {{ ico.i('alert', 12) }}{{ printer_count - ready_count }} Driver needed + {% endif %} + {% endif %} +
-
-

Printers

- {% include "partials/printer_list.html" %} -
+{% include "partials/printer_list.html" %} {% endblock %} diff --git a/imptune/templates/clients.html b/imptune/templates/clients.html index 7f8d167..7438529 100644 --- a/imptune/templates/clients.html +++ b/imptune/templates/clients.html @@ -1,21 +1,36 @@ {% extends "base.html" %} +{% import "partials/icons.html" as ico %} + +{% block head_title %}Clients · ImpTune{% endblock %} +{% block page_title %}Clients{% endblock %} {% block content %} -

Clients

+

Clients group printers by site or organization.

-
-

Add Client

- - - - -
+
+
+ {% include "partials/client_list.html" %} +
-
-

Client List

- {% include "partials/client_list.html" %} -
+
+
+ {{ ico.i('plus') }} +

Add client

+
+
+
+ +
+ +
+
+
+
+
{% endblock %} diff --git a/imptune/templates/dashboard.html b/imptune/templates/dashboard.html index 8a2de7b..6c4005f 100644 --- a/imptune/templates/dashboard.html +++ b/imptune/templates/dashboard.html @@ -1,41 +1,147 @@ {% extends "base.html" %} +{% import "partials/icons.html" as ico %} + +{% block head_title %}ImpTune{% endblock %} +{% block page_title %}Dashboard{% endblock %} + +{% block page_actions %} +{{ ico.i('upload') }}Add driver +{{ ico.i('plus') }}Add printer +{% endblock %} {% block content %} -

Dashboard

+

Three steps from driver ZIP to deployable package.

-
- New Printer - Upload Driver - Export Package +{# + The rail is the spine of the tool: a printer cannot be exported before it has + a driver, so the order is real and the state of each stage is worth showing. +#} +{% set s1 = 'done' if driver_count else 'next' %} +{% set s2 = 'done' if printer_count else ('next' if driver_count else '') %} +{% set s3 = 'done' if ready_count else ('next' if printer_count else '') %} + -
-

Recent Activity

+
+
+
+

Recent printers

+ {% if recent_printers %} + + View all{{ ico.i('chevron', 13) }} + + {% endif %} +
+
+ {% if recent_printers %} +
+ + + {% for printer in recent_printers %} + + + + + {% endfor %} + +
+ {{ printer.name }} + {{ printer.ip_address }}{% if printer.client_id %} · {{ printer.client.name }}{% endif %} + + {% if printer.driver_id %} + {{ ico.i('check', 12) }}Ready + {% else %} + {{ ico.i('alert', 12) }}Driver needed + {% endif %} +
+
+ {% else %} +
+ {{ ico.i('printer', 18) }} + No printers configured yet. +

Name, IP address, driver, and defaults.

+ {{ ico.i('plus', 14) }}Add printer +
+ {% endif %} +
+
-
-

Recent Printers

- {% if recent_printers %} -
    - {% for printer in recent_printers %} -
  • {{ printer.name }} — {{ printer.ip_address }}
  • - {% endfor %} -
- {% else %} -

No printers configured yet.

- {% endif %} -
- -
-

Recent Packages

- {% if recent_packages %} -
    - {% for package in recent_packages %} -
  • {{ package.name }}{% if package.client_id %} — {{ package.client.name }}{% endif %}
  • - {% endfor %} -
- {% else %} -

No packages exported yet.

- {% endif %} -
-
+
+
+

Ready to export

+ {% if recent_packages %} + + View all{{ ico.i('chevron', 13) }} + + {% endif %} +
+
+ {% if recent_packages %} +
+ + + {% for package in recent_packages %} + + + + + {% endfor %} + +
+ {{ package.name }} + {% if package.client_id %}{{ package.client.name }}{% else %}—{% endif %} + + + {{ ico.i('download', 13) }}.intunewin + {{ ico.i('download', 13) }}.zip + +
+
+ {% else %} +
+ {{ ico.i('package', 18) }} + No printers are ready to export yet. +

No printer is ready yet. Assign a driver to enable export.

+
+ {% endif %} +
+
+
{% endblock %} diff --git a/imptune/templates/drivers.html b/imptune/templates/drivers.html index e687a5a..37f87ac 100644 --- a/imptune/templates/drivers.html +++ b/imptune/templates/drivers.html @@ -1,25 +1,43 @@ {% extends "base.html" %} +{% import "partials/icons.html" as ico %} + +{% block head_title %}Drivers · ImpTune{% endblock %} +{% block page_title %}Drivers{% endblock %} + {% block content %} -

Drivers

+

Drivers are shared — everyone sees the same library.

-
-

Upload Driver Package

-
- - - - Uploading... -
+
+
+ {{ ico.i('upload') }} +
+

Add a driver package

+

The ZIP must contain the .inf file and every file it references.

+
+
+
+
+
+ + +
+ + Uploading… +
+
+
+
-
-

Driver Library

- {% include "partials/driver_list.html" %} -
+

Driver library

+{% include "partials/driver_list.html" %} {% endblock %} diff --git a/imptune/templates/packages.html b/imptune/templates/packages.html index 84d19d8..da016af 100644 --- a/imptune/templates/packages.html +++ b/imptune/templates/packages.html @@ -1,37 +1,91 @@ {% extends "base.html" %} +{% import "partials/icons.html" as ico %} + +{% block head_title %}Packages · ImpTune{% endblock %} +{% block page_title %}Packages{% endblock %} {% block content %} -

Packages

-

Printers with drivers assigned — ready for deployment package export.

+

Printers with a driver assigned — ready for export.

{% if printers %} -
- +
+
+
+ {{ ico.i('package') }} +

.intunewin

+
+
+

.intunewin — upload to Intune as a Win32 app.

+
+
+
+
+ {{ ico.i('script') }} +

.zip

+
+
+

ZIP — plain scripts for NinjaRMM or a manual run.

+
+
+
+ +
+
+
- + {% for printer in printers %} - - - - - - + + + + + + {% endfor %}
PrinterClient DriverIcon Downloads
{{ printer.name }}{% if printer.client_id %}{{ printer.client.name }}{% else %}—{% endif %}{{ printer.driver.original_filename }} - .intunewin -  |  - NinjaRMM ZIP -
+ {{ printer.name }} + {% if printer.client_id %}{{ printer.client.name }}{% else %}—{% endif %} + + {{ printer.driver.original_filename }} + {% if printer.driver.architecture %}{{ printer.driver.architecture }}{% endif %} + + {% if printer.id in icon_printer_ids %} + + {% else %} + + {% endif %} + + + {{ ico.i('download', 13) }}.intunewin + {{ ico.i('download', 13) }}.zip + +
-
+