Hi Bernhard,
Am 06.10.2021 um 11:23 schrieb Bernhard Bitsch:
Hi,
I've just included the file into my system. There are no problems. So a new patch with this file can start the formal verification and test process.
The original patch has some flaws ( function name, location in source ) I will comment in an extra answer.
Have you had time to collect the issues yet? I'd like to continue working on them.
Best regards, Leo
Regards, Bernhard
Am 06.10.2021 um 05:18 schrieb Jon Murphy:
Leo,
This should be complete. But I don't know how to test.
Jon
On Oct 4, 2021, at 10:40 PM, Jon Murphy jcmurphy26@gmail.com wrote:
Here is a quick template to get started:
<manualpages>
I'll keep going tomorrow.
Jon
On Oct 4, 2021, at 12:42 PM, Leo Hofmann hofmann@leo-andres.de wrote:
Hi all,
@Bernhard, Thank you again for testing this patch!
@Jon, This is the file format of the manualpages configuration:
[cgi basename]=[path/to/page]
For example:
BASE_URL=https://wiki.ipfire.org index=configuration/system/startpage
Results in "index.cgi" linking to "https://wiki.ipfire.org/configuration/system/startpage". Please note that the path does not start with a slash, because the get_manualpage_url function always adds one between the base url and the path.
Unfortunately, I couldn't figure out how to include all this in the installer and I need help with that. So I would suggest we wait until this has been approved and integrated.
Regards, Leo
Am 28.09.2021 um 14:55 schrieb Bernhard Bitsch:
Reviewed-by: Bernhard Bitsch bbitsch@ipfire.org Tested-by: Bernhard Bitsch bbitsch@ipfire.org
Am 28.09.2021 um 13:09 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
config/cfgroot/header.pl | 20 +++++++++++++++++++ config/cfgroot/manualpages | 7 +++++++ html/html/themes/ipfire/include/css/style.css | 13 ++++++++++++ html/html/themes/ipfire/include/functions.pl | 17 +++++++++++++++- 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 config/cfgroot/manualpages
diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl index 79accbe8a..e97f90d67 100644 --- a/config/cfgroot/header.pl +++ b/config/cfgroot/header.pl @@ -91,7 +91,11 @@ if ( -d "/var/ipfire/langs/${language}/" ) { }; }; +### Initialize user manual +my %manualpages = (); +&General::readhash("${General::swroot}/main/manualpages", %manualpages); +### Load selected language and theme functions require "${swroot}/langs/en.pl"; require "${swroot}/langs/${language}.pl"; eval `/bin/cat /srv/web/ipfire/html/themes/ipfire/include/functions.pl`; @@ -553,3 +557,19 @@ sub colorize { return $string; } }
+# Get user manual URL for the specified configuration page, returns empty if no entry is configured +sub get_manualpage_url() { + my ($cgi_page) = @_;
+ # Ensure base url is configured + return unless($manualpages{'BASE_URL'});
+ # Return URL + if($cgi_page && defined($manualpages{$cgi_page})) { + return "$manualpages{'BASE_URL'}/$manualpages{$cgi_page}"; + }
+ # No manual page configured, return nothing + return; +} diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages new file mode 100644 index 000000000..e5ab1a13c --- /dev/null +++ b/config/cfgroot/manualpages @@ -0,0 +1,7 @@ +# User manual base URL (without trailing slash) +BASE_URL=https://wiki.ipfire.org
+# Assign manual page URL path to CGI file ([cgi basename]=[path/to/page]) +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..18931428e 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 = &Header::get_manualpage_url($scriptName); +if($manual_url) { + 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 ; }