FIX Ensure tab states are reflected when switching on page edit screen

This commit is contained in:
Robbie Averill 2017-07-16 22:46:11 +12:00
parent 732bdd2734
commit dd4d5740b8
2 changed files with 18 additions and 3 deletions

View File

@ -350,6 +350,21 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
} }
} }
/**
* Decide which is the active primary tab in a CMS edit screen
*
* @return string
*/
public function getActiveTab()
{
if ($this instanceof CMSPageSettingsController) {
return 'settings';
} elseif ($this instanceof CMSPageHistoryController) {
return 'history';
}
return 'edit';
}
public function LinkWithSearch($link) public function LinkWithSearch($link)
{ {
// Whitelist to avoid side effects // Whitelist to avoid side effects

View File

@ -10,17 +10,17 @@
<div class="cms-content-header-tabs cms-tabset"> <div class="cms-content-header-tabs cms-tabset">
<ul class="cms-tabset-nav-primary nav nav-tabs"> <ul class="cms-tabset-nav-primary nav nav-tabs">
<li class="nav-item content-treeview<% if $class == 'SilverStripe\\CMS\\Controllers\\CMSPageEditController' %> ui-tabs-active<% end_if %>"> <li class="nav-item content-treeview<% if $ActiveTab == 'edit' %> ui-tabs-active<% end_if %>">
<a href="$LinkPageEdit" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageEdit"> <a href="$LinkPageEdit" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageEdit">
<% _t('SilverStripe\CMS\Controllers\CMSMain.TabContent', 'Content') %> <% _t('SilverStripe\CMS\Controllers\CMSMain.TabContent', 'Content') %>
</a> </a>
</li> </li>
<li class="nav-item content-listview<% if $class == 'SilverStripe\\CMS\\Controllers\\CMSPageSettingsController' %> ui-tabs-active<% end_if %>"> <li class="nav-item content-listview<% if $ActiveTab == 'settings' %> ui-tabs-active<% end_if %>">
<a href="$LinkPageSettings" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageSettings"> <a href="$LinkPageSettings" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageSettings">
<% _t('SilverStripe\CMS\Controllers\CMSMain.TabSettings', 'Settings') %> <% _t('SilverStripe\CMS\Controllers\CMSMain.TabSettings', 'Settings') %>
</a> </a>
</li> </li>
<li class="nav-item content-listview<% if $class == 'SilverStripe\\CMS\\Controllers\\CMSPageHistoryController' %> ui-tabs-active<% end_if %>"> <li class="nav-item content-listview<% if $ActiveTab == 'history' %> ui-tabs-active<% end_if %>">
<a href="$LinkPageHistory" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageHistory"> <a href="$LinkPageHistory" class="nav-link cms-panel-link" title="Form_EditForm" data-href="$LinkPageHistory">
<% _t('SilverStripe\CMS\Controllers\CMSMain.TabHistory', 'History') %> <% _t('SilverStripe\CMS\Controllers\CMSMain.TabHistory', 'History') %>
</a> </a>