diff --git a/code/controllers/SilverStripeNavigator.php b/code/controllers/SilverStripeNavigator.php index 1ce2e17d..ef9de13e 100644 --- a/code/controllers/SilverStripeNavigator.php +++ b/code/controllers/SilverStripeNavigator.php @@ -82,7 +82,7 @@ class SilverStripeNavigator extends ViewableData { $text = $item->getHTML(); if($text) $html .= $text; $newMessage = $item->getMessage(); - if($newMessage) $message = $newMessage; + if($newMessage && $item->isActive()) $message = $newMessage; } return array( @@ -217,7 +217,7 @@ class SilverStripeNavigatorItem_StageLink extends SilverStripeNavigatorItem { $draftPage = $this->getDraftPage(); if($draftPage) { $this->recordLink = Controller::join_links($draftPage->AbsoluteLink(), "?stage=Stage"); - return "recordLink\">". _t('ContentController.DRAFTSITE', 'Draft Site') .""; + return "isActive() ? 'class="current" ' : '') ."href=\"$this->recordLink\">". _t('ContentController.DRAFTSITE', 'Draft Site') .""; } } @@ -265,7 +265,7 @@ class SilverStripeNavigatorItem_LiveLink extends SilverStripeNavigatorItem { $livePage = $this->getLivePage(); if($livePage) { $this->recordLink = Controller::join_links($livePage->AbsoluteLink(), "?stage=Live"); - return "recordLink\">". _t('ContentController.PUBLISHEDSITE', 'Published Site') .""; + return "isActive() ? 'class="current" ' : '') ."href=\"$this->recordLink\">". _t('ContentController.PUBLISHEDSITE', 'Published Site') .""; } } @@ -286,7 +286,7 @@ class SilverStripeNavigatorItem_LiveLink extends SilverStripeNavigatorItem { } public function isActive() { - return (!Versioned::current_stage() || Versioned::current_stage() == 'Live'); + return ((!Versioned::current_stage() || Versioned::current_stage() == 'Live') && !Versioned::current_archived_date()); } protected function getLivePage() { @@ -308,13 +308,12 @@ class SilverStripeNavigatorItem_ArchiveLink extends SilverStripeNavigatorItem { public function getHTML() { $this->recordLink = $this->record->AbsoluteLink(); - return "recordLink?archiveDate={$this->record->LastEdited}\" target=\"_blank\">". _t('ContentController.ARCHIVEDSITE', 'Preview version') .""; + return "isActive() ? ' current' : '') ."\" href=\"$this->recordLink?archiveDate={$this->record->LastEdited}\" target=\"_blank\">". _t('ContentController.ARCHIVEDSITE', 'Preview version') .""; } public function getMessage() { if($date = Versioned::current_archived_date()) { - $dateObj = Datetime::create(); - $dateObj->setValue($date); + $dateObj = DBField::create_field('Datetime', $date); return "
"; } } diff --git a/css/SilverStripeNavigator.css b/css/SilverStripeNavigator.css index 24d390cc..4b0b0d7a 100644 --- a/css/SilverStripeNavigator.css +++ b/css/SilverStripeNavigator.css @@ -16,7 +16,7 @@ #SilverStripeNavigator .bottomTabs a.current { font-weight: bold; text-decoration: none; } -#SilverStripeNavigatorMessage { font-family: 'Lucida Grande', Verdana, Arial, 'sans-serif'; position: absolute; right: 20px; top: 40px; padding: 10px; border-color: #c99; color: #fff; background-color: #c00; border: 1px solid #000; } +#SilverStripeNavigatorMessage { font-family: 'Lucida Grande', Verdana, Arial, 'sans-serif'; position: fixed; z-index: 1000; right: 20px; top: 40px; padding: 10px; border-color: #c99; color: #fff; background-color: #c00; border: 1px solid #000; } #SilverStripeNavigatorLinkPopup { display: none; position: absolute; top: -60px; height: 50px; width: 350px; left: 200px; background-color: white; border: 1px solid black; z-index: 100; color: black; padding: 5px; } diff --git a/scss/SilverStripeNavigator.scss b/scss/SilverStripeNavigator.scss index 029bc1bf..b10243c6 100644 --- a/scss/SilverStripeNavigator.scss +++ b/scss/SilverStripeNavigator.scss @@ -1,4 +1,3 @@ - #SilverStripeNavigator { position: fixed; bottom: 0; @@ -51,7 +50,8 @@ #SilverStripeNavigatorMessage { font-family: 'Lucida Grande', Verdana, Arial, 'sans-serif'; - position: absolute; + position: fixed; + z-index: 1000; right: 20px; top: 40px; padding: 10px;