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