From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bernhard Bitsch To: development@lists.ipfire.org Subject: Re: [PATCH] webinterface: Add links to the configuration wiki Date: Mon, 20 Sep 2021 10:15:41 +0200 Message-ID: <88192664-02e2-c7f1-fa07-af436d46d5aa@ipfire.org> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0416101927232972940==" List-Id: --===============0416101927232972940== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Leo, hi *, Am 20.09.2021 um 10:05 schrieb hofmann(a)leo-andres.de: > Hi Bernhard, >=20 > Thanks for trying this out on such short notice! >=20 > 19. September 2021 21:30, "Bernhard Bitsch" schrieb: >=20 >> The enhancements function without problems for your examples. >> Two additional thoughts: >> - the manual_pages hash could be read global at the start of general-funct= ions >=20 > Would this improve the page load time? > The hash is only accessed once in the openpage() function. >=20 You're right ( for the moment? ). But the manualpages function could=20 also be called at other places. >> - is it possible to check the existence of the page? Doing the test manual= ly, I've copied the last >> line of manualpages with an error. So I landed on the oops page. >=20 > 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. >=20 Agreed. There is also the problem, that wiki editing, building of IPFire=20 and running of IPFire are independend processes. So the error can't be=20 prevented, only minimized by the build time check. >> >> Tested-by: Bernhard Bitsch >> >> 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 >>> --- >>> 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 CT= RL+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 fi= le 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 @@ $|=3D1; # line buffering >>> $General::version =3D 'VERSION'; >>> $General::swroot =3D 'CONFIG_ROOT'; >>> $General::noipprefix =3D 'noipg-'; >>> -$General::adminmanualurl =3D 'http://wiki.ipfire.org'; >>> + >>> +# Base URL of the user manual >>> +my $usermanual_base_url =3D '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) =3D @_; >>> + >>> + my %manual_pages =3D (); >>> + &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=3Dconfiguration/system/startpage >>> +pppsetup=3Dconfiguration/system/dial >>> +qos=3Dconfiguration/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 <>>
>>>
>>> -

$title

>>> +
>>> +

$title

>>> +END >>> +; >>> + >>> +# Print user manual link >>> +my $manual_url =3D &General::get_usermanual_url($scriptName); >>> +if($manual_url ne "") { >>> + print <>> + >> src=3D"/images/help-browser.png" alt=3D"$Lang::tr{'online help en'}">= >>> +END >>> +; >>> +} >>> + >>> +print <>> +
>>> END >>> ; >>> } --===============0416101927232972940==--