-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
NEW Show CWP version underneath SilverStripe version in CMS help menu
- Loading branch information
1 parent
ea0cae8
commit 0a472cc
Showing
6 changed files
with
148 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<?php | ||
|
||
namespace CWP\Core\Extension; | ||
|
||
use SilverStripe\Core\Extension; | ||
use SilverStripe\Core\Manifest\VersionProvider; | ||
|
||
class CWPVersionExtension extends Extension | ||
{ | ||
/** | ||
* Gets the version of cwp/cwp-core and returns the major.minor version from it | ||
* | ||
* @return string | ||
*/ | ||
public function getCWPVersionNumber() | ||
{ | ||
/** @var VersionProvider $versionProvider */ | ||
$versionProvider = $this->owner->getVersionProvider(); | ||
|
||
$modules = $versionProvider->getModuleVersionFromComposer(['cwp/cwp-core']); | ||
if (empty($modules)) { | ||
return ''; | ||
} | ||
|
||
// Example: "2.2.x-dev" | ||
$cwpCore = $modules['cwp/cwp-core']; | ||
return (string) substr($cwpCore, 0, strpos($cwpCore, '.', 2)); | ||
} | ||
} |
37 changes: 37 additions & 0 deletions
37
templates/SilverStripe/Admin/Includes/LeftAndMain_MenuToggle.ss
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
<%-- See silverstripe/admin:templates/SilverStripe/Admin/Includes/LeftAndMain_MenuToggle.ss --%> | ||
<div class="cms-help__toggle"> | ||
<button class="cms-help__menu" type="button" title="<%t SilverStripe\Admin\LeftAndMain.HelpMenu "Help menu" %>" aria-label="<%t SilverStripe\Admin\LeftAndMain.HelpMenu "Help menu" %>" aria-expanded="false"> | ||
<span class="cms-help__logo font-icon-silverstripe"></span> | ||
<span class="cms-help__toggle-title"> | ||
$ApplicationName | ||
<%-- Modification from core template --%> | ||
<span class="cms-help__toggle-cwp-title text-sm"> | ||
CWP $CWPVersionNumber | ||
</span> | ||
<%-- End modification from core template --%> | ||
</span> | ||
<span class="cms-help__badge badge badge-info"> | ||
<% if $CMSVersionNumber %> | ||
<span class="cms-sitename__version" title="$ApplicationName (<%t SilverStripe\Admin\LeftAndMain.Version "Version" %> - $CMSVersion)">$CMSVersionNumber.LimitCharacters(3, '')</span> | ||
<% end_if %> | ||
</span> | ||
<span class="cms-help__caret font-icon-caret-down-two"></span> | ||
</button> | ||
<% if $HelpLinks %> | ||
<div class="cms-help__links"> | ||
<% loop $HelpLinks %> | ||
<% if $URL %> | ||
<a class="cms-help__link" href="$URL" target="_blank" rel="noopener noreferrer">$Title</a> | ||
<% end_if %> | ||
<% end_loop %> | ||
</div> | ||
<% end_if %> | ||
</div> | ||
|
||
<div class="sticky-toggle"> | ||
<button class="sticky-toggle__button" type="button" title="<%t SilverStripe\Admin\LeftAndMain.MenuToggleStickyNav "Sticky nav" %>"><%t SilverStripe\Admin\LeftAndMain.MenuToggleStickyNav "Sticky nav" %></button> | ||
<span class="sticky-toggle__status sticky-status-indicator"><%t SilverStripe\Admin\LeftAndMain.MenuToggleAuto "Auto" %></span> | ||
</div> | ||
|
||
<a class="toggle-expand" href="#" data-toggle="tooltip" title="<%t SilverStripe\Admin\LeftAndMain.ExpandPanel "Expand panel" %>" aria-label="<%t SilverStripe\Admin\LeftAndMain.ExpandPanel "Expand panel" %>"><span>»</span></a> | ||
<a class="toggle-collapse" href="#" data-toggle="tooltip" title="<%t SilverStripe\Admin\LeftAndMain.CollapsePanel "Collapse panel" %>" aria-label="<%t SilverStripe\Admin\LeftAndMain.CollapsePanel "Collapse panel" %>"><span>«</span></a> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
<?php | ||
|
||
namespace CWP\Core\Tests\Extension; | ||
|
||
use CWP\Core\Extension\CWPVersionExtension; | ||
use PHPUnit_Framework_MockObject_MockObject; | ||
use SilverStripe\Admin\LeftAndMain; | ||
use SilverStripe\Core\Manifest\VersionProvider; | ||
use SilverStripe\Dev\SapphireTest; | ||
|
||
class CWPVersionExtensionTest extends SapphireTest | ||
{ | ||
/** | ||
* @var VersionProvider|PHPUnit_Framework_MockObject_MockObject | ||
*/ | ||
protected $versionProvider; | ||
|
||
/** | ||
* @var LeftAndMain|PHPUnit_Framework_MockObject_MockObject | ||
*/ | ||
protected $leftAndMain; | ||
|
||
protected function setUp() | ||
{ | ||
parent::setUp(); | ||
|
||
$this->versionProvider = $this->createMock(VersionProvider::class); | ||
$this->leftAndMain = $this->createMock(LeftAndMain::class); | ||
|
||
$this->leftAndMain | ||
->expects($this->atLeastOnce()) | ||
->method('getVersionProvider') | ||
->willReturn($this->versionProvider); | ||
} | ||
|
||
/** | ||
* @param array $modules | ||
* @param string $expected | ||
* @dataProvider getVersionProvider | ||
*/ | ||
public function testGetVersion($modules, $expected) | ||
{ | ||
$this->versionProvider->expects($this->once()) | ||
->method('getModuleVersionFromComposer') | ||
->willReturn($modules); | ||
|
||
$extension = new CWPVersionExtension(); | ||
$extension->setOwner($this->leftAndMain); | ||
|
||
$result = $extension->getCWPVersionNumber(); | ||
$this->assertSame($expected, $result); | ||
} | ||
|
||
/** | ||
* @return array | ||
*/ | ||
public function getVersionProvider() | ||
{ | ||
return [ | ||
'dev version' => [['cwp/cwp-core' => '2.3.x-dev'], '2.3'], | ||
'stable version' => [['cwp/cwp-core' => '2.2.0'], '2.2'], | ||
'not found' => [[], ''], | ||
]; | ||
} | ||
} |