@ -33,6 +33,7 @@ use OCP\Group\ISubAdmin;
use OCP\IGroupManager ;
use OCP\INavigationManager ;
use OCP\IUserSession ;
use OCP\Settings\IIconSection ;
use OCP\Settings\IManager as ISettingsManager ;
use OCP\Settings\ISettings ;
@ -54,28 +55,31 @@ trait CommonSettingsTrait {
private $subAdmin ;
/**
* @ param string $currentSection
* @ return array
* @ return array { forms : array { personal : array , admin : array }}
*/
private function getNavigationParameters ( $currentType , $currentSection ) {
private function getNavigationParameters ( string $currentType , string $currentSection ) : array {
$templateParameters = [
'personal' => $this -> formatPersonalSections ( $currentType , $currentSection ),
'admin' => []
];
$templateParameters [ 'admin' ] = $this -> formatAdminSections (
$currentType ,
$currentSection
);
$currentType ,
$currentSection
);
return [
'forms' => $templateParameters
];
}
/**
* @ param IIconSection [][] $sections
* @ psam - param 'admin' | 'personal' $type
* @ return list < array { anchor : string , section - name : string , active : bool , icon : string } >
*/
protected function formatSections ( array $sections , string $currentSection , string $type , string $currentType ) : array {
$templateParameters = [];
/** @var \OCP\Settings\IIconSection[] $prioritizedSections */
foreach ( $sections as $prioritizedSections ) {
foreach ( $prioritizedSections as $section ) {
if ( $type === 'admin' ) {
@ -105,21 +109,17 @@ trait CommonSettingsTrait {
protected function formatPersonalSections ( string $currentType , string $currentSections ) : array {
$sections = $this -> settingsManager -> getPersonalSections ();
$templateParameters = $this -> formatSections ( $sections , $currentSections , 'personal' , $currentType );
return $templateParameters ;
return $this -> formatSections ( $sections , $currentSections , 'personal' , $currentType );
}
protected function formatAdminSections ( string $currentType , string $currentSections ) : array {
$sections = $this -> settingsManager -> getAdminSections ();
$templateParameters = $this -> formatSections ( $sections , $currentSections , 'admin' , $currentType );
return $templateParameters ;
return $this -> formatSections ( $sections , $currentSections , 'admin' , $currentType );
}
/**
* @ param array < int , list < \OCP\Settings\ISettings >> $settings
* @ return array
* @ return array { content : string }
*/
private function formatSettings ( array $settings ) : array {
$html = '' ;
@ -133,11 +133,15 @@ trait CommonSettingsTrait {
return [ 'content' => $html ];
}
private function getIndexResponse ( $type , $section ) {
private function getIndexResponse ( string $type , string $section ) : TemplateResponse {
$this -> navigationManager -> setActiveEntry ( 'settings' );
$templateParams = [];
$templateParams = array_merge ( $templateParams , $this -> getNavigationParameters ( $type , $section ));
$templateParams = array_merge ( $templateParams , $this -> getSettings ( $section ));
$activeSection = $this -> settingsManager -> getSection ( $type , $section );
if ( $activeSection ) {
$templateParams [ 'pageTitle' ] = $activeSection -> getName ();
}
return new TemplateResponse ( 'settings' , 'settings/frame' , $templateParams );
}