Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>tags/v13.0.0beta1
@@ -420,6 +420,11 @@ class Manager implements IManager { | |||
$form = new Personal\SyncClients($this->config, $this->defaults); | |||
$forms[$form->getPriority()] = [$form]; | |||
} | |||
if ($section === 'additional') { | |||
/** @var ISettings $form */ | |||
$form = new Personal\Additional($this->config); | |||
$forms[$form->getPriority()] = [$form]; | |||
} | |||
} catch (QueryException $e) { | |||
// skip | |||
} |
@@ -0,0 +1,59 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> | |||
* | |||
* @author Arthur Schiwon <blizzz@arthur-schiwon.de> | |||
* | |||
* @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 OC\Settings\Personal; | |||
use OCP\AppFramework\Http\TemplateResponse; | |||
use OCP\Settings\ISettings; | |||
class Additional implements ISettings { | |||
/** | |||
* @return TemplateResponse returns the instance with all parameters set, ready to be rendered | |||
* @since 9.1 | |||
*/ | |||
public function getForm() { | |||
return new TemplateResponse('settings', 'settings/empty'); | |||
} | |||
/** | |||
* @return string the section ID, e.g. 'sharing' | |||
* @since 9.1 | |||
*/ | |||
public function getSection() { | |||
return 'additional'; | |||
} | |||
/** | |||
* @return int whether the form should be rather on the top or bottom of | |||
* the admin section. The forms are arranged in ascending order of the | |||
* priority values. It is required to return a value between 0 and 100. | |||
* | |||
* E.g.: 70 | |||
* @since 9.1 | |||
*/ | |||
public function getPriority() { | |||
return '5'; | |||
} | |||
} |
@@ -108,7 +108,7 @@ class AdminSettingsController extends Controller { | |||
); | |||
}, $forms); | |||
$out = new Template('settings', 'admin/additional'); | |||
$out = new Template('settings', 'settings/additional'); | |||
$out->assign('forms', $forms); | |||
return $out->fetchPage(); |
@@ -28,6 +28,7 @@ use OCP\AppFramework\Http\TemplateResponse; | |||
use OCP\INavigationManager; | |||
use OCP\IRequest; | |||
use OCP\Settings\IManager as ISettingsManager; | |||
use OCP\Template; | |||
class PersonalSettingsController extends Controller { | |||
use CommonSettingsTrait { | |||
@@ -68,6 +69,40 @@ class PersonalSettingsController extends Controller { | |||
private function getSettings($section) { | |||
// PhpStorm shows this as unused, but is required by CommonSettingsTrait | |||
$settings = $this->settingsManager->getPersonalSettings($section); | |||
return $this->formatSettings($settings); | |||
$formatted = $this->formatSettings($settings); | |||
if($section === 'additional') { | |||
$formatted['content'] .= $this->getLegacyForms(); | |||
} | |||
return $formatted; | |||
} | |||
/** | |||
* @return bool|string | |||
*/ | |||
private function getLegacyForms() { | |||
$forms = \OC_App::getForms('personal'); | |||
$forms = array_map(function ($form) { | |||
if (preg_match('%(<h2(?P<class>[^>]*)>.*?</h2>)%i', $form, $regs)) { | |||
$sectionName = str_replace('<h2' . $regs['class'] . '>', '', $regs[0]); | |||
$sectionName = str_replace('</h2>', '', $sectionName); | |||
$anchor = strtolower($sectionName); | |||
$anchor = str_replace(' ', '-', $anchor); | |||
return array( | |||
'anchor' => $anchor, | |||
'section-name' => $sectionName, | |||
'form' => $form | |||
); | |||
} | |||
return array( | |||
'form' => $form | |||
); | |||
}, $forms); | |||
$out = new Template('settings', 'settings/additional'); | |||
$out->assign('forms', $forms); | |||
return $out->fetchPage(); | |||
} | |||
} |
@@ -0,0 +1,26 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> | |||
* | |||
* @author Arthur Schiwon <blizzz@arthur-schiwon.de> | |||
* | |||
* @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/>. | |||
* | |||
*/ | |||
?> | |||
<!-- temporarily, until we have content for Personal/Additional settings --> |