This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de ---
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org'; + +# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
@@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() { + my ($config_page) = @_; + + my %manual_pages = (); + &readhash("${General::swroot}/main/manualpages", %manual_pages); + + if($config_page && defined($manual_pages{$config_page})) { + return $usermanual_base_url . '/' . $manual_pages{$config_page}; + } + + return ""; +} + 1; diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * { + display: inline-block; + vertical-align: baseline; +} + +#main_header > span { + margin-left: 0.8em; +} + +#main_header img { + padding: 0; +} + #footer { height: 2.5em; margin-bottom: 1em; diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END <div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; }
Good idea! More comments, possibly, after review and test.
Acked-by: Bernhard Bitsch bbitsch@ipfire.org
Am 19.09.2021 um 16:34 schrieb Leo-Andres Hofmann:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
@@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
- 1;
diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
- #footer { height: 2.5em; margin-bottom: 1em;
diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; }
Reviewed-by: Bernhard Bitsch bbitsch@ipfire.org
Am 19.09.2021 um 16:34 schrieb Leo-Andres Hofmann:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
A quick search shows, that this object isn't used anymore. So it is okay, to delete it.
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
@@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
- 1;
diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
- #footer { height: 2.5em; margin-bottom: 1em;
diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; }
Excellent!
What do you think, would this get more people to read the wiki?
I think it would help! Anything that pushes more eyeballs to the wiki is very helpful!
Collect and match all wiki pages to the CGIs.
I’d be happy to help with this.
Is the new file "manualpages" a link to the wiki? Or a text file full of info? Or?
And how is a new "manualpages" file installed into a Core Update?
Jon
On Sep 19, 2021, at 9:34 AM, Leo-Andres Hofmann hofmann@leo-andres.de wrote:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
@@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
1; diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
#footer { height: 2.5em; margin-bottom: 1em; diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; } -- 2.27.0.windows.1
Hi Jon,
Am 19.09.2021 um 20:18 schrieb Jon Murphy:
Excellent!
What do you think, would this get more people to read the wiki?
I think it would help! Anything that pushes more eyeballs to the wiki is very helpful!
I'm glad you like the idea too!
Collect and match all wiki pages to the CGIs.
I’d be happy to help with this.
Thank you! I'll get in touch when the file format is finalized.
Is the new file "manualpages" a link to the wiki? Or a text file full of info? Or?
It is a configuration file which links a wiki page to a CGI page:
[name of the cgi]=/path/to/wikipage
I'll document this better.
And how is a new "manualpages" file installed into a Core Update?
I don't know that either. So far I have only submitted code and let the maintainers do the rest :D
Jon
Regards, Leo
On Sep 19, 2021, at 9:34 AM, Leo-Andres Hofmann hofmann@leo-andres.de wrote:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
@@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
1; diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
#footer { height: 2.5em; margin-bottom: 1em; diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; } -- 2.27.0.windows.1
The enhancements function without problems for your examples. Two additional thoughts: - the manual_pages hash could be read global at the start of general-functions - is it possible to check the existence of the page? Doing the test manually, I've copied the last line of manualpages with an error. So I landed on the oops page.
Tested-by: Bernhard Bitsch bbitsch@ipfire.org
Am 19.09.2021 um 16:34 schrieb Leo-Andres Hofmann:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
@@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
- 1;
diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
- #footer { height: 2.5em; margin-bottom: 1em;
diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; }
Hi Bernhard,
Thanks for trying this out on such short notice!
19. September 2021 21:30, "Bernhard Bitsch" bbitsch@ipfire.org schrieb:
The enhancements function without problems for your examples. Two additional thoughts:
- the manual_pages hash could be read global at the start of general-functions
Would this improve the page load time? The hash is only accessed once in the openpage() function.
- is it possible to check the existence of the page? Doing the test manually, I've copied the last
line of manualpages with an error. So I landed on the oops page.
Good idea! But I think this should only be checked once by the build script e.g. "make manualpages", to avoid excess http requests to the Wiki.
Tested-by: Bernhard Bitsch bbitsch@ipfire.org
Am 19.09.2021 um 16:34 schrieb Leo-Andres Hofmann:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file. Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de
Hi all, This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki? To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache. Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs. Kind regards Leo config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl"; @@ -1421,4 +1423,18 @@ sub running_on_gcp() {
return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured
+sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
- return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
1; diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
#footer { height: 2.5em; margin-bottom: 1em; diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; }
Hi Leo, hi *,
Am 20.09.2021 um 10:05 schrieb hofmann@leo-andres.de:
Hi Bernhard,
Thanks for trying this out on such short notice!
- September 2021 21:30, "Bernhard Bitsch" bbitsch@ipfire.org schrieb:
The enhancements function without problems for your examples. Two additional thoughts:
- the manual_pages hash could be read global at the start of general-functions
Would this improve the page load time? The hash is only accessed once in the openpage() function.
You're right ( for the moment? ). But the manualpages function could also be called at other places.
- is it possible to check the existence of the page? Doing the test manually, I've copied the last
line of manualpages with an error. So I landed on the oops page.
Good idea! But I think this should only be checked once by the build script e.g. "make manualpages", to avoid excess http requests to the Wiki.
Agreed. There is also the problem, that wiki editing, building of IPFire and running of IPFire are independend processes. So the error can't be prevented, only minimized by the build time check.
Tested-by: Bernhard Bitsch bbitsch@ipfire.org
Am 19.09.2021 um 16:34 schrieb Leo-Andres Hofmann:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file. Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de
Hi all, This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki? To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache. Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs. Kind regards Leo config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl"; @@ -1421,4 +1423,18 @@ sub running_on_gcp() {
return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured
+sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
- return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
1; diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
#footer { height: 2.5em; margin-bottom: 1em; diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; }
Just another problem (description inline):
Am 19.09.2021 um 16:34 schrieb Leo-Andres Hofmann:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
@@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
- 1;
diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
- #footer { height: 2.5em; margin-bottom: 1em;
diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span>
$Lang::tr{'online help en'} translates to 'Onlinehilfe in Deutsch' for German WUI language. Other languages generate similiar texts, I suppose. Because our wiki is in english only the hint should read 'Onlinehilfe' ( the adequate term in the WUI language ) only.
+END +; +}
+print <<END
END ; }</div>
Hi Leo,
I tried it out on my testbed vm system and it is working fine.
I updated the manualpages file to include all the entries that are visible in my System menu - no wireless client option as I don't have that on my vm install. You just have to keep an eye out for changes in the url as I found for the fireinfo wiki page which is not under configuration/system so I got an oops couldn't find that page message but was able to quickly fix it.
My manualpages file now looks like:-
------------------------
index=configuration/system/startpage pppsetup=configuration/system/dial qos=configuration/services/qos mail=configuration/system/mail_service remote=configuration/system/ssh backup=configuration/system/backup gui=configuration/system/userinterface fireinfo=fireinfo vulnerabilities=configuration/system/vulnerabilities shutdown=configuration/system/shutdown credits=configuration/system/credits
------------------------
Regards,
Adolf.
On 19/09/2021 16:34, Leo-Andres Hofmann wrote:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de------------------------
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
@@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; }
+# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() {
- my ($config_page) = @_;
- my %manual_pages = ();
- &readhash("${General::swroot}/main/manualpages", %manual_pages);
- if($config_page && defined($manual_pages{$config_page})) {
return $usermanual_base_url . '/' . $manual_pages{$config_page};
- }
- return "";
+}
- 1;
diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; }
+#main_header > * {
- display: inline-block;
- vertical-align: baseline;
+}
+#main_header > span {
- margin-left: 0.8em;
+}
+#main_header img {
- padding: 0;
+}
- #footer { height: 2.5em; margin-bottom: 1em;
diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END
<div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +; + +# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +} + +print <<END + </div> END ; }
Hi Adolf,
thank you for trying this and providing a new configuration file! This is great! Since you have also come across missing pages, I should realize Bernhard's idea and build a test script.
I'll implement all suggestions and submit again soon :)
Regards, Leo
Am 20.09.2021 um 15:06 schrieb Adolf Belka:
Hi Leo,
I tried it out on my testbed vm system and it is working fine.
I updated the manualpages file to include all the entries that are visible in my System menu - no wireless client option as I don't have that on my vm install. You just have to keep an eye out for changes in the url as I found for the fireinfo wiki page which is not under configuration/system so I got an oops couldn't find that page message but was able to quickly fix it.
My manualpages file now looks like:-
index=configuration/system/startpage pppsetup=configuration/system/dial qos=configuration/services/qos mail=configuration/system/mail_service remote=configuration/system/ssh backup=configuration/system/backup gui=configuration/system/userinterface fireinfo=fireinfo vulnerabilities=configuration/system/vulnerabilities shutdown=configuration/system/shutdown credits=configuration/system/credits
Regards,
Adolf.
On 19/09/2021 16:34, Leo-Andres Hofmann wrote:
This patch adds a little "help" icon to the page header. If a manual entry exists for a configuration page, the icon appears and offers a quick way to access the wiki. Wiki pages can be configured in the "manualpages" file.
Signed-off-by: Leo-Andres Hofmann hofmann@leo-andres.de------------------------
Hi all,
This patch is not yet complete, but I would like to present the idea. What do you think, would this get more people to read the wiki?
To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to refresh the CSS cache.
Still -to do- and where I could use some help: Add "manualpages" file to the updater/installer - how, and should this file be read-only? Collect and match all wiki pages to the CGIs.
Kind regards Leo
config/cfgroot/general-functions.pl | 18 +++++++++++++++++- config/cfgroot/manualpages | 3 +++ html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index de608e38b..54e23a535 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -24,7 +24,9 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://wiki.ipfire.org';
+# Base URL of the user manual +my $usermanual_base_url = 'https://wiki.ipfire.org'; require "${General::swroot}/network-functions.pl"; @@ -1421,4 +1423,18 @@ sub running_on_gcp() { return 0; } +# Get user manual url for the specified configuration page, returns "" if no entry is configured +sub get_usermanual_url() { + my ($config_page) = @_;
+ my %manual_pages = (); + &readhash("${General::swroot}/main/manualpages", %manual_pages);
+ if($config_page && defined($manual_pages{$config_page})) { + return $usermanual_base_url . '/' . $manual_pages{$config_page}; + }
+ return ""; +}
1; diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..02dac5be6 --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,3 @@ +index=configuration/system/startpage +pppsetup=configuration/system/dial +qos=configuration/services/qos diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css index b92f476c4..661773675 100644 --- a/html/html/themes/ipfire/include/css/style.css +++ b/html/html/themes/ipfire/include/css/style.css @@ -169,6 +169,19 @@ iframe { margin-bottom: 1em; } +#main_header > * { + display: inline-block; + vertical-align: baseline; +}
+#main_header > span { + margin-left: 0.8em; +}
+#main_header img { + padding: 0; +}
#footer { height: 2.5em; margin-bottom: 1em; diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9f12bbe59..d352a7d96 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -170,7 +170,22 @@ END print <<END <div class="bigbox fixed"> <div id="main_inner" class="fixed"> - <h1>$title</h1> + <div id="main_header"> + <h1>$title</h1> +END +;
+# Print user manual link +my $manual_url = &General::get_usermanual_url($scriptName); +if($manual_url ne "") { + print <<END + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> +END +; +}
+print <<END + </div> END ; }