Signed-off-by: Michael Weimann <mail@michael-weimann.eu>tags/v16.0.0alpha1
@@ -1,83 +0,0 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> | |||
* | |||
* @author Arthur Schiwon <blizzz@arthur-schiwon.de> | |||
* @author Joas Schilling <coding@schilljs.com> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
namespace OCA\Theming\Settings; | |||
use OCP\IL10N; | |||
use OCP\IURLGenerator; | |||
use OCP\Settings\IIconSection; | |||
class Section implements IIconSection { | |||
/** @var IL10N */ | |||
private $l; | |||
/** @var IURLGenerator */ | |||
private $url; | |||
/** | |||
* @param IURLGenerator $url | |||
* @param IL10N $l | |||
*/ | |||
public function __construct(IURLGenerator $url, IL10N $l) { | |||
$this->url = $url; | |||
$this->l = $l; | |||
} | |||
/** | |||
* returns the ID of the section. It is supposed to be a lower case string, | |||
* e.g. 'ldap' | |||
* | |||
* @returns string | |||
*/ | |||
public function getID() { | |||
return 'theming'; | |||
} | |||
/** | |||
* returns the translated name as it should be displayed, e.g. 'LDAP / AD | |||
* integration'. Use the L10N service to translate it. | |||
* | |||
* @return string | |||
*/ | |||
public function getName() { | |||
return $this->l->t('Theming'); | |||
} | |||
/** | |||
* @return int whether the form should be rather on the top or bottom of | |||
* the settings navigation. The sections are arranged in ascending order of | |||
* the priority values. It is required to return a value between 0 and 99. | |||
* | |||
* E.g.: 70 | |||
*/ | |||
public function getPriority() { | |||
return 30; | |||
} | |||
/** | |||
* {@inheritdoc} | |||
*/ | |||
public function getIcon() { | |||
return $this->url->imagePath('theming', 'app-dark.svg'); | |||
} | |||
} |
@@ -26,13 +26,11 @@ namespace OCA\Theming\Tests; | |||
use OCA\Theming\Capabilities; | |||
use OCA\Theming\Controller\ThemingController; | |||
use OCA\Theming\Settings\Admin; | |||
use OCA\Theming\Settings\Section; | |||
use OCA\Theming\ThemingDefaults; | |||
use OCA\Theming\Util; | |||
use OCP\AppFramework\App; | |||
use OCP\Capabilities\ICapability; | |||
use OCP\IL10N; | |||
use OCP\Settings\ISection; | |||
use OCP\Settings\ISettings; | |||
use Test\TestCase; | |||
@@ -72,8 +70,6 @@ class ServicesTest extends TestCase { | |||
// Settings | |||
[Admin::class], | |||
[Admin::class, ISettings::class], | |||
[Section::class], | |||
[Section::class, ISection::class], | |||
]; | |||
} | |||
@@ -1,77 +0,0 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> | |||
* | |||
* @author Joas Schilling <coding@schilljs.com> | |||
* @author Lukas Reschke <lukas@statuscode.ch> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
namespace OCA\Theming\Tests\Settings; | |||
use OCA\Theming\Settings\Section; | |||
use OCP\IL10N; | |||
use OCP\IURLGenerator; | |||
use Test\TestCase; | |||
class SectionTest extends TestCase { | |||
/** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */ | |||
private $url; | |||
/** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */ | |||
private $l; | |||
/** @var Section */ | |||
private $section; | |||
public function setUp() { | |||
parent::setUp(); | |||
$this->url = $this->createMock(IURLGenerator::class); | |||
$this->l = $this->createMock(IL10N::class); | |||
$this->section = new Section( | |||
$this->url, | |||
$this->l | |||
); | |||
} | |||
public function testGetID() { | |||
$this->assertSame('theming', $this->section->getID()); | |||
} | |||
public function testGetName() { | |||
$this->l | |||
->expects($this->once()) | |||
->method('t') | |||
->with('Theming') | |||
->willReturn('Theming'); | |||
$this->assertSame('Theming', $this->section->getName()); | |||
} | |||
public function testGetPriority() { | |||
$this->assertSame(30, $this->section->getPriority()); | |||
} | |||
public function testGetIcon() { | |||
$this->url->expects($this->once()) | |||
->method('imagePath') | |||
->with('theming', 'app-dark.svg') | |||
->willReturn('icon'); | |||
$this->assertSame('icon', $this->section->getIcon()); | |||
} | |||
} |
@@ -192,6 +192,7 @@ class Manager implements IManager { | |||
1 => [new Section('server', $this->l->t('Basic settings'), 0, $this->url->imagePath('core', 'actions/settings-dark.svg'))], | |||
5 => [new Section('sharing', $this->l->t('Sharing'), 0, $this->url->imagePath('core', 'actions/share.svg'))], | |||
10 => [new Section('security', $this->l->t('Security'), 0, $this->url->imagePath('core', 'actions/password.svg'))], | |||
30 => [new Section('theming', $this->l->t('Theming'), 0, $this->url->imagePath('settings', 'theming-dark.svg'))], | |||
50 => [new Section('groupware', $this->l->t('Groupware'), 0, $this->url->imagePath('core', 'places/contacts.svg'))], | |||
98 => [new Section('additional', $this->l->t('Additional settings'), 0, $this->url->imagePath('core', 'actions/settings-dark.svg'))], | |||
]; | |||
@@ -231,14 +232,16 @@ class Manager implements IManager { | |||
$forms[$form->getPriority()] = [$form]; | |||
$form = $this->container->query(Admin\Mail::class); | |||
$forms[$form->getPriority()] = [$form]; | |||
$form = $this->container->query(Admin\ServerInfo::class); | |||
$forms[$form->getPriority()] = [$form]; | |||
} | |||
if ($section === 'security') { | |||
/** @var ISettings $form */ | |||
$form = $this->container->query(Admin\Security::class); | |||
$forms[$form->getPriority()] = [$form]; | |||
} | |||
if ($section === 'theming') { | |||
$form = $this->container->query(Theming\ServerInfo::class); | |||
$forms[$form->getPriority()] = [$form]; | |||
} | |||
if ($section === 'sharing') { | |||
/** @var ISettings $form */ | |||
$form = $this->container->query(Admin\Sharing::class); |
@@ -26,7 +26,7 @@ | |||
namespace OC\Settings\Personal; | |||
use OC\Accounts\AccountManager; | |||
use OC\Settings\Admin\ServerInfo; | |||
use OC\Settings\Theming\ServerInfo; | |||
use OCA\FederatedFileSharing\AppInfo\Application; | |||
use OCP\App\IAppManager; | |||
use OCP\AppFramework\Http\TemplateResponse; | |||
@@ -217,7 +217,7 @@ class PersonalInfo implements ISettings { | |||
$userLang = $languages['commonlanguages'][$userLangIndex]; | |||
// search in the other languages | |||
if ($userLangIndex === false) { | |||
$userLangIndex = array_search($userConfLang, array_column($languages['languages'], 'code')); | |||
$userLangIndex = array_search($userConfLang, array_column($languages['languages'], 'code')); | |||
$userLang = $languages['languages'][$userLangIndex]; | |||
} | |||
// if user language is not available but set somehow: show the actual code as name |
@@ -20,7 +20,7 @@ | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
*/ | |||
namespace OC\Settings\Admin; | |||
namespace OC\Settings\Theming; | |||
use OCP\AppFramework\Http\TemplateResponse; | |||
use OCP\IConfig; | |||
@@ -104,7 +104,7 @@ class ServerInfo implements ISettings { | |||
* @return string | |||
*/ | |||
public function getSection() { | |||
return 'server-info'; | |||
return 'theming'; | |||
} | |||
/** | |||
@@ -115,7 +115,7 @@ class ServerInfo implements ISettings { | |||
* priority values. It is required to return a value between 0 and 100. | |||
*/ | |||
public function getPriority() { | |||
return 20; | |||
return 10; | |||
} | |||
} |
@@ -22,7 +22,7 @@ | |||
namespace OC\Settings\Controller; | |||
use OC\Settings\Admin\ServerInfo; | |||
use OC\Settings\Theming\ServerInfo; | |||
use OCP\AppFramework\Controller; | |||
use OCP\IConfig; | |||
use OCP\IRequest; |
@@ -0,0 +1 @@ | |||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.707 11.412l-.587-.587-.03-.03a.513.513 0 0 1-.074-.526L13.07 3.4l-1.5-1.498-.15.15-.708-.706.505-.505a.538.538 0 0 1 .224-.128c.04-.01.05-.01.087-.016h.087c.04.006.05.006.086.016.072.02.134.055.192.1.74.676 1.42 1.415 2.127 2.124a.503.503 0 0 1 .103.556l-3.053 6.87.344.343.49-.49 3.01 3.01a1.192 1.192 0 0 1-1.685 1.686l-3.012-3.01.49-.488zm-.533-10.217a.986.986 0 0 0-1.396 0l-7.582 7.58a.99.99 0 0 0 0 1.398l1.397 1.396a.986.986 0 0 0 1.396 0l7.58-7.583a.988.988 0 0 0 0-1.396l-1.396-1.395z" fill="#000"/></svg> |
@@ -57,7 +57,7 @@ | |||
placeholder="<?php p($l->t('company or person')); ?>"> | |||
</div> | |||
<div> | |||
<label class="label" for="providerWebsite"><?php p($l->t('Website')); ?></label> | |||
<label class="label" for="providerWebsite"><?php p($l->t('Provider website')); ?></label> | |||
<input | |||
class="form-input" | |||
id="providerWebsite" |
@@ -22,7 +22,7 @@ | |||
namespace Settings\Controller; | |||
use OC\Settings\Admin\ServerInfo; | |||
use OC\Settings\Theming\ServerInfo; | |||
use OC\Settings\Controller\ServerInfoSettingsController; | |||
use OCP\IConfig; | |||
use OCP\IRequest; |
@@ -72,13 +72,14 @@ class ManagerTest extends TestCase { | |||
$this->manager->registerSection('admin', \OCA\WorkflowEngine\Settings\Section::class); | |||
$this->url->expects($this->exactly(6)) | |||
$this->url->expects($this->exactly(7)) | |||
->method('imagePath') | |||
->willReturnMap([ | |||
['settings', 'admin.svg', '0'], | |||
['core', 'actions/settings-dark.svg', '1'], | |||
['core', 'actions/share.svg', '2'], | |||
['core', 'actions/password.svg', '3'], | |||
['settings', 'theming-dark.svg', '6'], | |||
['core', 'places/contacts.svg', '5'], | |||
['settings', 'help.svg', '4'], | |||
]); | |||
@@ -88,6 +89,7 @@ class ManagerTest extends TestCase { | |||
1 => [new Section('server', 'Basic settings', 0, '1')], | |||
5 => [new Section('sharing', 'Sharing', 0, '2')], | |||
10 => [new Section('security', 'Security', 0, '3')], | |||
30 => [new Section('theming', 'Theming', 0, '6')], | |||
50 => [new Section('groupware', 'Groupware', 0, '5')], | |||
55 => [\OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class)], | |||
98 => [new Section('additional', 'Additional settings', 0, '1')], | |||
@@ -124,13 +126,14 @@ class ManagerTest extends TestCase { | |||
->method('t') | |||
->will($this->returnArgument(0)); | |||
$this->url->expects($this->exactly(6)) | |||
$this->url->expects($this->exactly(7)) | |||
->method('imagePath') | |||
->willReturnMap([ | |||
['settings', 'admin.svg', '0'], | |||
['core', 'actions/settings-dark.svg', '1'], | |||
['core', 'actions/share.svg', '2'], | |||
['core', 'actions/password.svg', '3'], | |||
['settings', 'theming-dark.svg', '6'], | |||
['core', 'places/contacts.svg', '5'], | |||
['settings', 'help.svg', '4'], | |||
]); | |||
@@ -140,6 +143,7 @@ class ManagerTest extends TestCase { | |||
1 => [new Section('server', 'Basic settings', 0, '1')], | |||
5 => [new Section('sharing', 'Sharing', 0, '2')], | |||
10 => [new Section('security', 'Security', 0, '3')], | |||
30 => [new Section('theming', 'Theming', 0, '6')], | |||
50 => [new Section('groupware', 'Groupware', 0, '5')], | |||
98 => [new Section('additional', 'Additional settings', 0, '1')], | |||
], $this->manager->getAdminSections()); | |||
@@ -209,7 +213,7 @@ class ManagerTest extends TestCase { | |||
$this->manager->registerSection('personal', \OCA\WorkflowEngine\Settings\Section::class); | |||
$this->manager->registerSection('admin', \OCA\WorkflowEngine\Settings\Section::class); | |||
$this->url->expects($this->exactly(9)) | |||
$this->url->expects($this->exactly(10)) | |||
->method('imagePath') | |||
->willReturnMap([ | |||
['core', 'actions/info.svg', '1'], | |||
@@ -219,6 +223,7 @@ class ManagerTest extends TestCase { | |||
['core', 'actions/settings-dark.svg', '1'], | |||
['core', 'actions/share.svg', '2'], | |||
['core', 'actions/password.svg', '3'], | |||
['settings', 'theming-dark.svg', '6'], | |||
['core', 'places/contacts.svg', '5'], | |||
['settings', 'help.svg', '4'], | |||
]); | |||
@@ -235,6 +240,7 @@ class ManagerTest extends TestCase { | |||
1 => [new Section('server', 'Basic settings', 0, '1')], | |||
5 => [new Section('sharing', 'Sharing', 0, '2')], | |||
10 => [new Section('security', 'Security', 0, '3')], | |||
30 => [new Section('theming', 'Theming', 0, '6')], | |||
50 => [new Section('groupware', 'Groupware', 0, '5')], | |||
55 => [\OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class)], | |||
98 => [new Section('additional', 'Additional settings', 0, '1')], |