]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Web Ui: add filter by printer model in PPD driver list 848/head
authorValdikSS <iam@valdikss.org.ru>
Tue, 26 Dec 2023 01:52:53 +0000 (04:52 +0300)
committerValdikSS <iam@valdikss.org.ru>
Tue, 26 Dec 2023 17:34:15 +0000 (20:34 +0300)
Implement JavaScript filter for the PPD list in "Add Printer"
and "Modify Printer" dialogs.

Sometimes there are too many models in the list that it's hard to find
the one you want.

templates/choose-model.tmpl
templates/da/choose-model.tmpl
templates/de/choose-model.tmpl
templates/es/choose-model.tmpl
templates/fr/choose-model.tmpl
templates/ja/choose-model.tmpl
templates/pl/choose-model.tmpl
templates/pt_BR/choose-model.tmpl
templates/ru/choose-model.tmpl

index 63d93e2615f54b1046ca150e47cc203e23ae5c77..5eeee1cd7628a2a04a4c93ba285059c75de05edb 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?Modify {printer_name}:Add Printer}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Select Another Make/Manufacturer"></TD>
 </TR>
 <TR>
+<TH CLASS="label">Filter by Model:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">Model:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
index f8ef25054946fe8cab419c3a20c86643ccb26149..22eff2aa5fad8611319a38f803e8a9ca6975b76d 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?Rediger {printer_name}:Tilføj printer}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
@@ -35,6 +52,10 @@ Del {?printer_is_shared=?ikke:{?printer_is_shared=0?ikke:}} printeren</TD>
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Vælg en anden producent"></TD>
 </TR>
 <TR>
+<TH CLASS="label">Filtrer efter model:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">Model:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
index 62dc8ca0c68cb3f553198965682f310adec7e870..e936fe03008efb79096922a8cd54a54dabd61632 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?{printer_name} ändern:Drucker hinzufügen (Schritt 5/5)}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
@@ -35,6 +52,10 @@ Drucker {?printer_is_shared=?nicht:{?printer_is_shared=0?nicht:}} im Netzwerk fr
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Anderen Hersteller/Marke wählen"></TD>
 </TR>
 <TR>
+<TH CLASS="label">Nach Modell filtern:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">Modell:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
index 7e97a1192393eb74c0930e0c3e53b26e081f70e1..d78a95b217d4408e0c68eb1d692b2933c88b5927 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?Modificar {printer_name}:A&ntilde;adir impresora}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Seleccione otra marca/fabricante"></TD>
 </TR>
 <TR>
+<TH CLASS="label">Filtrar por modelo:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">Modelo:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
index f54e9bc8c0915a89e05eca572cf14b1e213ce717..f298cd9acc1955ce0ee1703b33a68f054e0745f2 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?Modifier  {printer_name}:Ajouter une imprimante}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Choisir un autre fabricant"></TD>
 </TR>
 <TR>
+<TH CLASS="label">Filtrer par modèle :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">Modèle :</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
index d0f387f98359f8d17ba9642abc13ddcf8125de1b..92194480b88219ffe475dd46d92cf94e2cce6c7d 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?{printer_name}の変更:プリンターの追加}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="他のメーカー/製造元を選択"></TD>
 </TR>
 <TR>
+<TH CLASS="label">モデルフィルター:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">モデル:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
index d9b19d44298882862977a02032978b98bf4c7f07..090fa895a2e72c8ea3cbdf59f1bb5eed0021c012 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?Modyfikowanie {printer_name}:Dodawanie drukarki}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Wybierz innego producenta"></TD>
 </TR>
 <TR>
+<TH CLASS="label">Filtruj według modelu:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">Model:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
index 1b48523e9dfcb967859312100531a49f5c4a03ce..fac006647f3af300bf78f0e9f695564a7eed3435 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?Modificar {printer_name}:Adicionar impressora}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Selecione outro fabricante"></TD>
 </TR>
 <TR>
+<TH CLASS="label">Filtrar por modelo:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">Modelo:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
index a5b878ec4f1ae4f453a3da8e6b6ad7c96e9ae3ad..8f68858c60a2896aa41389aeca1f99b7171b7ac6 100644 (file)
@@ -1,5 +1,22 @@
 <H2 CLASS="title">{op=modify-printer?Изменение {printer_name}:Добавление принтера}</H2>
 
+<SCRIPT TYPE="text/javascript"><!--
+function filterItems(el) {
+  var value = el.value.toLowerCase();
+  var form = el.form;
+  var sel = form.PPD_NAME;
+  var opt = sel.options;
+
+  for (var i=0; i<opt.length; i++) {
+    if (value && opt[i].text.toLowerCase().indexOf(value) == -1) {
+      opt[i].hidden = true;
+    } else {
+      opt[i].hidden = false;
+    }
+  }
+}
+--></SCRIPT>
+
 <FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
 <INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 <TD>{PPD_MAKE} <INPUT TYPE="SUBMIT" NAME="SELECT_MAKE" VALUE="Выбрать другую модель"></TD>
 </TR>
 <TR>
+<TH CLASS="label">Фильтр по модели:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PPD_FILTER" PLACEHOLDER="🔍" ONKEYUP="filterItems(this);"></TD>
+</TR>
+<TR>
 <TH CLASS="label">Модель:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">