Hi Leo!

I have just been notified by Patchwork that this feature has been accepted!

Yay!  Glad to hear it was accepted!

Do you want to do it yourself, or do you want me to check the file and submit it for you?

Yes, please do the submit for me.

Best regards,
Jon


On Dec 4, 2021, at 2:41 AM, hofmann@leo-andres.de wrote:

Hello Jon,
I have just been notified by Patchwork that this feature has been accepted!
So now you could submit your completed manualpages file as a patch.
Do you want to do it yourself, or do you want me to check the file and submit it for you?
Best regards,
Leo

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