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 ; }