summaryrefslogtreecommitdiffstats
path: root/settings/Controller/AdminSettingsController.php
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2017-05-16 01:38:12 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2017-06-23 12:36:17 +0200
commit247b305b79e16ef1e26b374a4efed7e44c241e91 (patch)
tree6accae85266a7fc48b2006160d9463b5143f7bd9 /settings/Controller/AdminSettingsController.php
parentd9beeaec90303e909bca574e489817739b9be869 (diff)
downloadnextcloud-server-247b305b79e16ef1e26b374a4efed7e44c241e91.tar.gz
nextcloud-server-247b305b79e16ef1e26b374a4efed7e44c241e91.zip
add route and controller. consolidate common settings functions in a trait.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'settings/Controller/AdminSettingsController.php')
-rw-r--r--settings/Controller/AdminSettingsController.php56
1 files changed, 7 insertions, 49 deletions
diff --git a/settings/Controller/AdminSettingsController.php b/settings/Controller/AdminSettingsController.php
index 6c915be6f94..fb8b65d93aa 100644
--- a/settings/Controller/AdminSettingsController.php
+++ b/settings/Controller/AdminSettingsController.php
@@ -28,15 +28,15 @@ use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\INavigationManager;
use OCP\IRequest;
-use OCP\Settings\IIconSection;
use OCP\Settings\IManager as ISettingsManager;
-use OCP\Settings\ISection;
use OCP\Template;
/**
* @package OC\Settings\Controller
*/
class AdminSettingsController extends Controller {
+ use CommonSettingsTrait;
+
/** @var INavigationManager */
private $navigationManager;
/** @var ISettingsManager */
@@ -67,12 +67,7 @@ class AdminSettingsController extends Controller {
*/
public function index($section) {
$this->navigationManager->setActiveEntry('admin');
-
- $templateParams = [];
- $templateParams = array_merge($templateParams, $this->getNavigationParameters($section));
- $templateParams = array_merge($templateParams, $this->getSettings($section));
-
- return new TemplateResponse('settings', 'admin/frame', $templateParams);
+ return $this->getIndexResponse($section);
}
/**
@@ -80,19 +75,13 @@ class AdminSettingsController extends Controller {
* @return array
*/
private function getSettings($section) {
- $html = '';
+ // PhpStorm shows this as unused, but is required by CommonSettingsTrait
$settings = $this->settingsManager->getAdminSettings($section);
- foreach ($settings as $prioritizedSettings) {
- foreach ($prioritizedSettings as $setting) {
- /** @var \OCP\Settings\ISettings $setting */
- $form = $setting->getForm();
- $html .= $form->renderAs('')->render();
- }
- }
+ $formatted = $this->formatSettings($settings);
if($section === 'additional') {
- $html .= $this->getLegacyForms();
+ $formatted['content'] .= $this->getLegacyForms();
}
- return ['content' => $html];
+ return $formatted;
}
/**
@@ -125,36 +114,5 @@ class AdminSettingsController extends Controller {
return $out->fetchPage();
}
- /**
- * @param string $currentSection
- * @return array
- */
- private function getNavigationParameters($currentSection) {
- $sections = $this->settingsManager->getAdminSections();
- $templateParameters = [];
- /** @var \OC\Settings\Section[] $prioritizedSections */
- foreach($sections as $prioritizedSections) {
- foreach ($prioritizedSections as $section) {
- if (empty($this->settingsManager->getAdminSettings($section->getID()))) {
- continue;
- }
-
- $icon = '';
- if ($section instanceof IIconSection) {
- $icon = $section->getIcon();
- }
-
- $templateParameters[] = [
- 'anchor' => $section->getID(),
- 'section-name' => $section->getName(),
- 'active' => $section->getID() === $currentSection,
- 'icon' => $icon,
- ];
- }
- }
- return [
- 'forms' => $templateParameters
- ];
- }
}