1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-06-14 23:44:58 +02:00

Base menu ordering on natural ordering in the manifest.

Menu ordering was alphabetical which is not ideal for a user interface.

Contributed by Cynthia Shang.
This commit is contained in:
Cynthia Shang
2018-12-14 18:46:12 -05:00
committed by David Steele
parent 35bbb5bd68
commit b85e51d6d5
5 changed files with 19 additions and 14 deletions

View File

@ -178,6 +178,9 @@ sub new
next;
}
# Preserve natural order
push(@{$${oRenderHash}{stryOrder}}, $strKey);
$$oRenderOutHash{source} = $strSource;
# Get the filename

View File

@ -83,6 +83,7 @@ sub process
# Working variables
my $oPage = $self->{oDoc};
my $oRender = $self->{oManifest}->renderGet(RENDER_TYPE_HTML);
# Initialize page
my $strTitle = $oPage->paramGet('title');
@ -126,19 +127,11 @@ sub process
{
my $oMenuBody = $oHtmlBuilder->bodyGet()->addNew(HTML_DIV, 'page-menu')->addNew(HTML_DIV, 'menu-body');
if ($self->{strRenderOutKey} ne 'index' && defined($self->{oManifest}->renderOutGet(RENDER_TYPE_HTML, 'index', true)))
# Get the menu in the order listed in the manifest.xml
foreach my $strRenderOutKey (@{${$oRender}{stryOrder}})
{
my $oRenderOut = $self->{oManifest}->renderOutGet(RENDER_TYPE_HTML, 'index');
$oMenuBody->
addNew(HTML_DIV, 'menu')->
addNew(HTML_A, 'menu-link', {strContent => $$oRenderOut{menu}, strRef => '{[project-url-root]}'});
}
# ??? The sort order here is hokey and only works for backrest - will need to be changed
foreach my $strRenderOutKey (sort {$b cmp $a} $self->{oManifest}->renderOutList(RENDER_TYPE_HTML))
{
if ($strRenderOutKey ne $self->{strRenderOutKey} && $strRenderOutKey ne 'index')
# Do not output the menu item for the page the user is on (e.g. on Command page, the Command menu item will not appear)
if ($strRenderOutKey ne $self->{strRenderOutKey})
{
my $oRenderOut = $self->{oManifest}->renderOutGet(RENDER_TYPE_HTML, $strRenderOutKey);

View File

@ -112,7 +112,8 @@ sub process
# ??? Temp hack for underscores in filename
$strLatex =~ s/pgaudit\\\_doc/pgaudit\_doc/g;
foreach my $strPageId ($self->{oManifest}->renderOutList(RENDER_TYPE_PDF))
# Process the sources in the order listed in the manifest.xml
foreach my $strPageId (@{${$self->{oManifest}->renderGet(RENDER_TYPE_PDF)}{stryOrder}})
{
&log(INFO, " render out: ${strPageId}");

View File

@ -93,9 +93,9 @@
<render type="html">
<render-source key="index" menu="Home"/>
<render-source key="user-guide" menu="User Guide"/>
<render-source key="release" menu="Releases"/>
<render-source key="configuration" source="reference" menu="Configuration"/>
<render-source key="command" source="reference" menu="Commands"/>
<render-source key="release" menu="Releases"/>
</render>
<render type="pdf" file="{[pdf-file]}">

View File

@ -235,6 +235,14 @@
</release-improvement-list>
<release-development-list>
<release-item>
<release-item-contributor-list>
<release-item-contributor id="cynthia.shang"/>
</release-item-contributor-list>
<p>Base menu ordering on natural ordering in the manifest.</p>
</release-item>
<release-item>
<p>Replace keywords with more flexible if statements.</p>
</release-item>