From: Zdenek Dohnal Date: Mon, 22 Jul 2024 10:32:32 +0000 (+0200) Subject: cgi: Fix checkbox support (fixes #1008) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f37d3eb8a091addda1b34d6d264e8a4ac25cec25;p=thirdparty%2Fcups.git cgi: Fix checkbox support (fixes #1008) There was a change in CGI script regarding checkboxes, however it did not propagate into templates. Based on the change, the only valid check was if the variable value was checkbox, but some browsers (at least Firefox) send on as a default value for input form of type checkbox. Additionally, the value checkbox looks like typo, because we use checked as value for checkboxes in admin CGI program, so I updated cgiGetCheckbox() as well. To fix the behavior, we have to set VALUE="CHECKED" into every tag in every templates for all checkboxes - this value will be sent in the input form, so it will properly match with cgiGetCheckbox() logic now. In the end, I have found out "Preserve Job History" checkbox from template was handled as text field, which did not look correct. Fixes #1008 --- diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c index 107700e46d..62e1c8fd0e 100644 --- a/cgi-bin/admin.c +++ b/cgi-bin/admin.c @@ -1314,9 +1314,9 @@ do_config_server(http_t *http) /* I - HTTP connection */ browse_web_if = cgiGetCheckbox("BROWSE_WEB_IF") ? "Yes" : "No"; max_clients = cgiGetTextfield("MAX_CLIENTS"); max_log_size = cgiGetTextfield("MAX_LOG_SIZE"); - preserve_jobs = cgiGetTextfield("PRESERVE_JOBS"); + preserve_jobs = cgiGetCheckbox("PRESERVE_JOBS") ? "1" : "0"; - if (preserve_jobs) + if (atoi(preserve_jobs)) { max_jobs = cgiGetTextfield("MAX_JOBS"); preserve_job_history = cgiGetTextfield("PRESERVE_JOB_HISTORY"); @@ -1325,10 +1325,12 @@ do_config_server(http_t *http) /* I - HTTP connection */ if (!max_jobs || atoi(max_jobs) < 0) max_jobs = "500"; - if (!preserve_job_history) - preserve_job_history = "On"; + if (!preserve_job_history || !preserve_job_history[0] || + (strcasecmp(preserve_job_history, "yes") && strcasecmp(preserve_job_history, "no") && !atoi(preserve_job_history))) + preserve_job_history = "Yes"; - if (!preserve_job_files) + if (!preserve_job_files || !preserve_job_files[0] || + (strcasecmp(preserve_job_files, "yes") && strcasecmp(preserve_job_files, "no") && !atoi(preserve_job_files))) preserve_job_files = "1d"; } else diff --git a/cgi-bin/var.c b/cgi-bin/var.c index 822f8b93c9..e97d2a8fca 100644 --- a/cgi-bin/var.c +++ b/cgi-bin/var.c @@ -191,7 +191,7 @@ cgiGetCheckbox(const char *name) /* I - Name of form field */ int ret; /* Return value */ - ret = value && !_cups_strcasecmp(value, "checkbox"); + ret = value && !_cups_strcasecmp(value, "checked"); if (!ret && value) { diff --git a/templates/add-printer.tmpl b/templates/add-printer.tmpl index 339fe662fc..7e4f559aa8 100644 --- a/templates/add-printer.tmpl +++ b/templates/add-printer.tmpl @@ -32,7 +32,7 @@ Sharing: - + diff --git a/templates/admin.tmpl b/templates/admin.tmpl index b8f5287372..a954f2b7f9 100644 --- a/templates/admin.tmpl +++ b/templates/admin.tmpl @@ -38,23 +38,23 @@

Advanced
- -
+ +
        Max clients\:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        Maximum jobs (0 for no limit)\:
        Retain Metadata\:
        Retain Documents\:
-
+
        Max log file size\:

@@ -62,12 +62,12 @@

Advanced
-
-         
-
- {have_gssapi?
:} -
-

+
+         
+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/da/add-printer.tmpl b/templates/da/add-printer.tmpl index ed206678b3..ed34c33f27 100644 --- a/templates/da/add-printer.tmpl +++ b/templates/da/add-printer.tmpl @@ -32,7 +32,7 @@ Deling: - + diff --git a/templates/da/admin.tmpl b/templates/da/admin.tmpl index 87f83e0ef0..de33275f3e 100644 --- a/templates/da/admin.tmpl +++ b/templates/da/admin.tmpl @@ -38,23 +38,23 @@

Avanceret
- -
+ +
        Maks. klienter\:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        Maksimum jobs (0 for ubegrænset)\:
        Bevar metadata\:
        Bevar dokumenter\:
-
+
        Maks. størrelse pÃ¥ logfil\:

@@ -62,12 +62,12 @@

Avanceret
-
-         
-
- {have_gssapi?
:} -
-

+
+         
+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/da/modify-printer.tmpl b/templates/da/modify-printer.tmpl index 9eb32af9d9..4e175194aa 100644 --- a/templates/da/modify-printer.tmpl +++ b/templates/da/modify-printer.tmpl @@ -26,7 +26,7 @@ Deling: - + diff --git a/templates/de/add-printer.tmpl b/templates/de/add-printer.tmpl index b54fb225fc..acb44d4f20 100644 --- a/templates/de/add-printer.tmpl +++ b/templates/de/add-printer.tmpl @@ -32,7 +32,7 @@ Freigabe: - + diff --git a/templates/de/admin.tmpl b/templates/de/admin.tmpl index bbfa2b0977..70fdc92b47 100644 --- a/templates/de/admin.tmpl +++ b/templates/de/admin.tmpl @@ -38,23 +38,23 @@

Erweitert
- -
+ +
        Maximale Anzahl an Clients\:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        Maximale Auftragsanzahl (0 für unbegrenzt)\:
        Metadaten aufbewahren\:
        Dokumente aufbewahren\:
-
+
        Maximale Protokoll-Dateigröße\:

@@ -62,12 +62,12 @@

Erweitert
-
-         
-
- {have_gssapi?
:} -
-

+
+         
+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/de/modify-printer.tmpl b/templates/de/modify-printer.tmpl index 8844bfa79e..57c70715c7 100644 --- a/templates/de/modify-printer.tmpl +++ b/templates/de/modify-printer.tmpl @@ -26,7 +26,7 @@ Freigabe: - + diff --git a/templates/es/add-printer.tmpl b/templates/es/add-printer.tmpl index 05bf421640..d67cda7789 100644 --- a/templates/es/add-printer.tmpl +++ b/templates/es/add-printer.tmpl @@ -32,7 +32,7 @@ Compartición: - + diff --git a/templates/es/admin.tmpl b/templates/es/admin.tmpl index d75c8adfe1..573ca51bde 100644 --- a/templates/es/admin.tmpl +++ b/templates/es/admin.tmpl @@ -38,23 +38,23 @@

Avanzada
- -
+ +
        Número máximo de clientes\:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        Número máximo de trabajos (0 sin límite)\:
        Retener metadatos\:
        Retener documentos\:
-
+
        Tamaño máximo del archivo de registro\:

@@ -62,12 +62,12 @@

Avanzada
-
-         
-
- {have_gssapi?
:} -
-

+
+         
+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/es/modify-printer.tmpl b/templates/es/modify-printer.tmpl index 1da5bb6fa4..e29cf62d4d 100644 --- a/templates/es/modify-printer.tmpl +++ b/templates/es/modify-printer.tmpl @@ -26,7 +26,7 @@ Compartida: - + diff --git a/templates/fr/add-printer.tmpl b/templates/fr/add-printer.tmpl index b3a35f5bd2..d18206d6a6 100644 --- a/templates/fr/add-printer.tmpl +++ b/templates/fr/add-printer.tmpl @@ -32,7 +32,7 @@ Partage : - + diff --git a/templates/fr/admin.tmpl b/templates/fr/admin.tmpl index a2dd617080..be68137cdf 100644 --- a/templates/fr/admin.tmpl +++ b/templates/fr/admin.tmpl @@ -38,23 +38,23 @@

Avancé
- -
+ +
        Nombre maximum de clients \:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        Nombre maximum de tâches (0 pour aucune limite)\:
        Conserver les méta-données \:
        Conserver les documents \:
-
+
        Taille maximum du journal système \:

@@ -62,12 +62,12 @@

Avancé
-
-         
-
- {have_gssapi?
:} -
-

+
+         
+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/fr/modify-printer.tmpl b/templates/fr/modify-printer.tmpl index 56376912cd..64cb588439 100644 --- a/templates/fr/modify-printer.tmpl +++ b/templates/fr/modify-printer.tmpl @@ -26,7 +26,7 @@ Partage : - + diff --git a/templates/ja/add-printer.tmpl b/templates/ja/add-printer.tmpl index 450624a398..f162a29f51 100644 --- a/templates/ja/add-printer.tmpl +++ b/templates/ja/add-printer.tmpl @@ -32,7 +32,7 @@ 共有: - + diff --git a/templates/ja/admin.tmpl b/templates/ja/admin.tmpl index 15faa9156e..a7055bff00 100644 --- a/templates/ja/admin.tmpl +++ b/templates/ja/admin.tmpl @@ -38,23 +38,23 @@

詳細
- -
+ +
        æœ€å¤§ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆæ•°\:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        æœ€å¤§ã‚¸ãƒ§ãƒ–æ•° (0 は無制限)\:
        ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’保持\:
        ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’保持\:
-
+
        æœ€å¤§ãƒ­ã‚°ãƒ•ァイルサイズ\:

@@ -62,12 +62,12 @@

詳細
-
-         
-
- {have_gssapi?
:} -
-

+
+         
+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/ja/modify-printer.tmpl b/templates/ja/modify-printer.tmpl index a3ac716440..0276c90a07 100644 --- a/templates/ja/modify-printer.tmpl +++ b/templates/ja/modify-printer.tmpl @@ -26,7 +26,7 @@ 共有: - + diff --git a/templates/modify-printer.tmpl b/templates/modify-printer.tmpl index 1aed9f39cc..ef4d094b97 100644 --- a/templates/modify-printer.tmpl +++ b/templates/modify-printer.tmpl @@ -26,7 +26,7 @@ Sharing: - + diff --git a/templates/pl/add-printer.tmpl b/templates/pl/add-printer.tmpl index cd2cc480e6..5cf9ebfc51 100644 --- a/templates/pl/add-printer.tmpl +++ b/templates/pl/add-printer.tmpl @@ -32,7 +32,7 @@ Udostępnianie: - + diff --git a/templates/pl/admin.tmpl b/templates/pl/admin.tmpl index d9e30ddc5d..6087c06fd3 100644 --- a/templates/pl/admin.tmpl +++ b/templates/pl/admin.tmpl @@ -38,23 +38,23 @@

Advanced
- -
+ +
        Maksymalna ilość klientów\:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        Maksymalna ilość zadań (0 dla bez limitu)\:
        Zachowaj metadane\:
        Zachowaj dokumenty\:
-
+
        Maksymalny rozmiar pliku logów\:

@@ -62,12 +62,12 @@

Zaawansowane
-
-         
-
- {have_gssapi?
:} -
-

+
+         
+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/pl/modify-printer.tmpl b/templates/pl/modify-printer.tmpl index fed5a827f5..3f3f74b3bf 100644 --- a/templates/pl/modify-printer.tmpl +++ b/templates/pl/modify-printer.tmpl @@ -26,7 +26,7 @@ Udostępnianie: - + diff --git a/templates/pt_BR/add-printer.tmpl b/templates/pt_BR/add-printer.tmpl index ce82480f6c..48ad278419 100644 --- a/templates/pt_BR/add-printer.tmpl +++ b/templates/pt_BR/add-printer.tmpl @@ -32,7 +32,7 @@ Compartilhamento: - + diff --git a/templates/pt_BR/admin.tmpl b/templates/pt_BR/admin.tmpl index 7dedf031c4..d6cf283fe3 100644 --- a/templates/pt_BR/admin.tmpl +++ b/templates/pt_BR/admin.tmpl @@ -38,23 +38,23 @@

Avançado
- -
+ +
        Máximo de clientes\:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        Máximo de trabalhos (0 para sem limite)\:
        Reter metadados\:
        Reter documentos\:
-
+
        Tamanho máximo do arquivo de log\:

@@ -62,12 +62,12 @@

Avançado
-
-         
-
- {have_gssapi?
:} -
-

+
+         
+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/pt_BR/modify-printer.tmpl b/templates/pt_BR/modify-printer.tmpl index f8d28c55ea..41a23287a0 100644 --- a/templates/pt_BR/modify-printer.tmpl +++ b/templates/pt_BR/modify-printer.tmpl @@ -26,7 +26,7 @@ Compartilhamento: - + diff --git a/templates/ru/add-printer.tmpl b/templates/ru/add-printer.tmpl index 9a6d043e1d..9b94964d71 100644 --- a/templates/ru/add-printer.tmpl +++ b/templates/ru/add-printer.tmpl @@ -32,7 +32,7 @@ Совместный доступ: - + diff --git a/templates/ru/admin.tmpl b/templates/ru/admin.tmpl index 0e7fa4dd8d..07d1369946 100644 --- a/templates/ru/admin.tmpl +++ b/templates/ru/admin.tmpl @@ -37,23 +37,23 @@

Дополнительные параметры
- -
+ +
        ÐœÐ°ÐºÑÐ¸Ð¼ÑƒÐ¼ клиентов\:
-         
-         
-
- {have_gssapi?
:} -
-
+         
+         
+
+ {have_gssapi?
:} +
+
        ÐšÐ¾Ð»Ð¸Ñ‡ÐµÑÑ‚во заданий (0 без ограничений)\:
        Ð—аписывать метаданные(Retain Metadata)\:
        Ð¡ÑƒÑ‰ÐµÑÑ‚вующие документы(Retain Documents)\:
-
+
        ÐœÐ°ÐºÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¹ размер журнала\:

@@ -61,13 +61,13 @@

Дополнительные параметры
-
-         

+
+ {have_gssapi?
:} +
+

}

diff --git a/templates/ru/modify-printer.tmpl b/templates/ru/modify-printer.tmpl index 811c2d8ccd..e381ca027b 100644 --- a/templates/ru/modify-printer.tmpl +++ b/templates/ru/modify-printer.tmpl @@ -26,7 +26,7 @@ Совместный доступ: - +