83 lines
4.8 KiB
HTML
83 lines
4.8 KiB
HTML
{% extends "base.html" %}
|
|
{% block content %}
|
|
<h1>{{ printer.name }}</h1>
|
|
<article>
|
|
<h2 x-data x-text="$store.i18n.t('configuration')">Configuration</h2>
|
|
<dl>
|
|
<dt x-data x-text="$store.i18n.t('ip_address')">IP Address</dt><dd>{{ printer.ip_address }}</dd>
|
|
<dt x-data x-text="$store.i18n.t('port_name')">Port Name</dt><dd>{{ printer.port_name }}</dd>
|
|
<dt x-data x-text="$store.i18n.t('duplex_mode_label')">Duplex Mode</dt><dd>{{ printer.duplex_mode }}</dd>
|
|
<dt x-data x-text="$store.i18n.t('color_mode_label')">Color Mode</dt>
|
|
{% if printer.color_mode %}<dd x-data x-text="$store.i18n.t('color_value')">Color</dd>{% else %}<dd x-data x-text="$store.i18n.t('grayscale_value')">Grayscale</dd>{% endif %}
|
|
<dt x-data x-text="$store.i18n.t('paper_size_label')">Paper Size</dt><dd>{{ printer.paper_size }}</dd>
|
|
<dt x-data x-text="$store.i18n.t('collate_label')">Collate</dt>
|
|
{% if printer.collate %}<dd x-data x-text="$store.i18n.t('yes')">Yes</dd>{% else %}<dd x-data x-text="$store.i18n.t('no')">No</dd>{% endif %}
|
|
<dt x-data x-text="$store.i18n.t('client_label')">Client</dt>
|
|
{% if printer.client_id %}<dd>{{ printer.client.name }}</dd>{% else %}<dd x-data x-text="$store.i18n.t('unassigned')">Unassigned</dd>{% endif %}
|
|
</dl>
|
|
|
|
<h2 x-data x-text="$store.i18n.t('driver_section')">Driver</h2>
|
|
{% if printer.driver_id %}
|
|
<dl>
|
|
<dt x-data x-text="$store.i18n.t('package_label')">Package</dt><dd>{{ printer.driver.original_filename }}</dd>
|
|
<dt x-data x-text="$store.i18n.t('driver_names_label')">Driver Name(s)</dt><dd>{{ driver_names | join(", ") }}</dd>
|
|
<dt x-data x-text="$store.i18n.t('architecture_label')">Architecture</dt>
|
|
<dd>{% if printer.driver.architecture %}{{ printer.driver.architecture }}{% else %}<span x-data x-text="$store.i18n.t('unknown')">Unknown</span>{% endif %}</dd>
|
|
</dl>
|
|
{% else %}
|
|
<p x-data x-text="$store.i18n.t('no_driver_detail')">No driver assigned</p>
|
|
{% endif %}
|
|
|
|
{% if has_driver %}
|
|
<h2 x-data x-text="$store.i18n.t('intune_commands')">Intune Commands</h2>
|
|
<div x-data="{ copiedInstall: false }">
|
|
<label x-text="$store.i18n.t('install_cmd_label')">Install command</label>
|
|
<code id="install-cmd">{{ install_cmd }}</code>
|
|
<button @click="
|
|
const text = document.getElementById('install-cmd').innerText;
|
|
navigator.clipboard.writeText(text).then(() => { copiedInstall = true; setTimeout(() => copiedInstall = false, 2000) })
|
|
.catch(() => { /* fallback: text is visible for manual copy */ })
|
|
" x-text="copiedInstall ? $store.i18n.t('copied') : $store.i18n.t('copy')" class="secondary outline">Copy</button>
|
|
</div>
|
|
<div x-data="{ copiedUninstall: false }">
|
|
<label x-text="$store.i18n.t('uninstall_cmd_label')">Uninstall command</label>
|
|
<code id="uninstall-cmd">{{ uninstall_cmd }}</code>
|
|
<button @click="
|
|
const text = document.getElementById('uninstall-cmd').innerText;
|
|
navigator.clipboard.writeText(text).then(() => { copiedUninstall = true; setTimeout(() => copiedUninstall = false, 2000) })
|
|
.catch(() => { /* fallback: text is visible for manual copy */ })
|
|
" x-text="copiedUninstall ? $store.i18n.t('copied') : $store.i18n.t('copy')" class="secondary outline">Copy</button>
|
|
</div>
|
|
|
|
<h2 x-data x-text="$store.i18n.t('scripts_section')">Scripts</h2>
|
|
<a href="/printers/{{ printer.id }}/scripts/install.ps1" role="button" class="secondary" x-data x-text="$store.i18n.t('download_install')">
|
|
Download Install Script
|
|
</a>
|
|
<a href="/printers/{{ printer.id }}/scripts/uninstall.ps1" role="button" class="secondary" x-data x-text="$store.i18n.t('download_uninstall')">
|
|
Download Uninstall Script
|
|
</a>
|
|
<a href="/printers/{{ printer.id }}/scripts/detect.ps1" role="button" class="secondary" x-data x-text="$store.i18n.t('download_detect')">
|
|
Download Detect Script
|
|
</a>
|
|
|
|
<h2 x-data x-text="$store.i18n.t('export_section')">Export</h2>
|
|
<a href="/printers/{{ printer.id }}/packages/ninja" role="button" x-data x-text="$store.i18n.t('download_ninja')">Download NinjaRMM ZIP</a>
|
|
<a href="/printers/{{ printer.id }}/packages/intunewin" role="button" x-data x-text="$store.i18n.t('download_intunewin')">Download .intunewin</a>
|
|
{% endif %}
|
|
|
|
<h2 x-data x-text="$store.i18n.t('icon_section')">Icon</h2>
|
|
{% if has_icon %}
|
|
<p x-data x-text="$store.i18n.t('icon_uploaded')">Icon uploaded</p>
|
|
{% endif %}
|
|
<form hx-post="/printers/{{ printer.id }}/icon"
|
|
hx-target="#icon-status" hx-swap="innerHTML"
|
|
enctype="multipart/form-data">
|
|
<input type="file" name="file" accept="image/png" required>
|
|
<button type="submit" x-data x-text="$store.i18n.t('upload_icon')">Upload Icon</button>
|
|
</form>
|
|
<div id="icon-status"></div>
|
|
|
|
<a href="/printers" role="button" class="secondary" x-data x-text="$store.i18n.t('back_to_printers_btn')">Back to Printers</a>
|
|
</article>
|
|
{% endblock %}
|